【发布时间】:2017-08-31 14:25:27
【问题描述】:
我在我的 Mac (Darwin <hostname> 16.7.0 Darwin Kernel Version 16.7.0: Thu Jun 15 17:36:27 PDT 2017; root:xnu-3789.70.16~2/RELEASE_X86_64 x86_64) 上安装了C libxml2 version 2.9.4 library,使用标准的./configure ; make ; make install 三连发命令。在尝试在没有前缀的 XPATH 上运行带有 -tree 选项的 testXPath 命令时,我遇到了分段错误。
~/home/libxml2-2.7.2 $ ./testXPath -tree "/abcde"
In testXPath function...
Compiled Expression : 0 elements
END
END
END
END
END
END
END
END
END
END
END
END
END
END
END
END
END
END
END
END
END
END
END
END
END
END
END
END
END
END
END
...etc until:
Segmentation fault: 11
我深入研究了testXPath.c 代码,XPATH 的编译似乎有问题。
comp = xmlXPathCompile(BAD_CAST str);
如果我不提供前缀,返回的xmlXPathCompExprPtr 的last 成员设置为-1。这会导致对xmlXPathDebugDumpCompExpr() 的调用出现故障。
在 xpath 中有前缀不会导致错误。我做错了吗?
【问题讨论】:
-
不知道为什么这会被否决。
-
遗憾的是,SO 允许您在不说明任何理由的情况下投反对票。有时这只是意味着某人今天过得很糟糕。
标签: c xml xpath segmentation-fault libxml2