我目前正在开发一个包装器库,以便从我的应用程序启动GDB并让它调试程序。
我正在使用MinGW32,因为我正在使用Ada Gnat编译器,该编译器仅在Windows上以32位提供。我的操作系统是Windows Server 2008R2 64位。
我无法在后台使用" run&"在调试器中启动应用程序。 GDB报告我的配置无法进行后台处理。
我对GDB相对较新,这是我的理解,我的测试证实了这一点,我在调试运行时不能向GDB发送新命令而且不在后台模式。这意味着我无法中断调试对象,换句话说,如果我忘记设置断点,就无法中断它,设置断点并继续。除非它在后台模式下运行,这意味着GDB在调试对象运行时接受命令。
我的问题是:这通常是在Windows上还是来自我的特定设置? 应该在哪些系统上进行后台处理?
答案 0 :(得分:1)
后台处理需要" target-async"功能,仅由远程和Linux本机目标实现。所以,如果您的gdb正在使用gdbserver,它可能会起作用。在大多数情况下,将目标移植到异步功能并不是很难,但是没有人为Windows本机目标做过这项工作。
请注意,其他评论是正确的。在Windows上使用MI时,有一些方法可以中断gdb。不幸的是,我不是Windows专家,我不知道那是什么。然而,你不需要目标异步来做到这一点。