gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 08:04:41 25 4
gpt4 key购买 nike

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

我拥有的是一个使用 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。

最佳答案

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

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

关于c++ - 如何从核心转储遍历 xerces-c DOMDocument?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10537470/

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