gpt4 book ai didi

c++ - 命中 GDB 断点时自动调用应用程序代码中的函数

转载 作者:太空宇宙 更新时间:2023-11-04 13:05:51 29 4
gpt4 key购买 nike

我有多个不同的进程通过 IPC 进行通信,当使用 gdb 调试单个进程时,每当遇到断点时,我都会尝试向其他进程发送消息。有没有一种方法可以自动在遇到断点时自动调用一个函数/一段代码(NotifyAll())无需手动运行命令并调用gdb 控制台中的函数。

基本上,每当 gdb 调试器附加到这些进程之一时,我希望 gdb 知道它应该在遇到断点(应用程序范围)时调用 NotifyAll()

最佳答案

是的,这可以使用 gdb 中的 Python 脚本功能来完成。

特别是您想要向 gdb.events.stop 添加一个监听器来检查断点停止事件,然后调用您的函数。有可能(我不知道)您必须通过将事件发布到 gdb 事件循环来推迟函数的调用。

为了尽可能减少手动干预,请使用 gdb 脚本自动加载功能将此 Python 脚本与您的应用程序相关联。这将要求用户信任该脚本(阅读有关 add-auto-load-safe-path 的信息),仅此而已。

请注意,这样做可能会使试图调试您的应用程序的人感到困惑。例如,除非您的脚本格外小心,否则在 RPC 代码中设置断点会导致问题。

关于c++ - 命中 GDB 断点时自动调用应用程序代码中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42445377/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com