GDB无法设置断点
问题描述:
我使用G ++ 4.1.2和GDB 7.2GDB无法设置断点
我调试使用Xerces,这是我使用相同的工具内置的代码,但想必无需调试。
GDB逐步通过我的代码很好,但当然不通过Xerces,因为它可能没有调试信息,并且肯定不知道源目录的位置。但我想要的是当Xerces(一个回调解析器)调用一个回调对象时设置一个断点。
其基类的DefaultHandler
我有一个类ContentHandlerBase:公众的DefaultHandler 然后叶类从ContentHandlerBase继承。这些叶子类在命名空间A内部,例如
in gdb我尝试设置一个断点。
B A :: LeafContentHandler :: LeafContentHandler B A :: LeafContentHandler ::的endElement
第一断点作品因为代码是内联(在报头中定义的)。
第二个断点不起作用,这意味着gdb声称不存在这样的符号,即使它明显存在。这是一个在Xerces库中定义的虚拟函数,如果这有所作为。在我重新编译Xerces之前,它是用g ++ 3.4.6编译的,我在gdb中找不到符号。现在,gdb找到了符号(我可以打开制表符),但它说它不存在,我应该等待库加载。
任何人都可以告诉我要做些什么吗?我不想用调试来构建所有的xerces。请注意,在某些情况下,使用.cpp文件中的构造函数,它也出于某种原因起作用,然后,因为它位于同一个文件中,所以我可以在linenumber中设置一个后续断点,并且工作正常。
是这样吗?似乎gdb不适合宏。 – g24l 2015-11-24 11:39:55