我发布了一个经过编辑的问题,因为原始问题中的段错误和第三方库的整个业务只是分散了注意力。
我所拥有的是一个使用 xerces-c 和 segfaults 的程序(在该过程中创建一个核心转储)。我想要做的是启动 gdb 并从核心转储遍历创建的 DOMDocument。
例如,我想获取给定 DOMElement 或其子节点的属性等等。有没有人有任何我可以阅读的文章来描述 DOMElements 的内部结构等等?或者甚至指向我关于 xerces-c 源代码的一些资源,因为我无法在我的源 tarball 中找到 DOMElement 的源代码。(从那时起,拥有源代码可能会有所帮助,因为我确切地知道 DOMElement 是如何实现的,允许我遍历它)。
正如我所说,我对 xerces-c 代码库不太熟悉,而 apache 文档显然很糟糕。
原始问题:-
我正在使用第三方库,而该库又使用 xercesc 进行 xml 解析,这会导致段错误。如何检查核心转储中的 xerces-c 元素?
我可以访问库源代码,并且它在使用 DOMElement 引用作为函数参数的函数中出现段错误。就像是
void func (DOMElement& e, ...) {
}
我想从核心转储中检查这个 DOMElement(如打印出它的名称、标签、子元素等。基本上遍历这个 DOMElement 下面的 DOMDocument)但我不熟悉 xerces-c 代码库。
知道我该怎么做吗?
附加信息:- 我正在使用 gdb。