首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从核心转储遍历xerces-c DOMDocument?

如何从核心转储遍历xerces-c DOMDocument?
EN

Stack Overflow用户
提问于 2012-05-10 23:35:42
回答 1查看 533关注 0票数 0

我发布了一个经过编辑的问题,因为原始问题中的segfaults和第三方库的整个业务只是让人分心。

我所拥有的是一个使用xerces-c和segfaults的程序(在进程中创建一个核心转储)。我想要做的是启动gdb并从核心转储遍历创建的DOMDocument。

例如,我想要获取给定DOMElement或它的子节点的属性,等等。有没有我能读到的描述DOMElements内部结构等内容的文章?或者甚至给我一些关于xerces-c源代码的参考资料,因为我在我的源代码tarball中找不到DOMElement的源代码。(拥有源代码可能会有所帮助,因为我确切地知道了DOMElement是如何实现的,从而允许我遍历它)。

正如我所说的,我不太熟悉xerces-c代码库,apache文档显然很糟糕。

原问题:

我使用的是一个第三方库,它反过来使用xercesc在某个地方进行xml解析,这就是segfaulting。如何从core-dump检查xerces-c元素?

我可以访问库源代码,它在一个使用DOMElement引用作为函数参数的函数中出现了分段错误。就像这样

代码语言:javascript
复制
void func (DOMElement& e, ...) {
}

我想从核心转储中检查这个DOMElement (就像在打印它的名称、标记、子元素等。基本上遍历这个DOMElement下面的DOMDocument ),但是我不熟悉xerces-c代码库。

你知道我该怎么做吗?

附加信息:-我正在使用gdb。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-05-11 00:56:51

如果您使用的是gdb,我假设您使用的是linux,对吗?然后,您应该安装libexerces-c++-dev (或libexerces-c++-devel,取决于您的发行版)包和源代码。这将允许您甚至在xerces代码中设置断点。

我过去经常使用xerces,当它崩溃时,问题通常不是在库本身,而是在“调用者”。在您的例子中,我将使用外部库创建一个非常简单的项目,并尝试解析一个简单的已知工作的XML文件,因为即使您能找到崩溃指令,我也怀疑它是否有帮助,因为xerces不是由您直接使用的,而是由另一个库使用的

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10537470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档