我在我的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
)上使用标准的./configure ; make ; make install
命令安装了C libxml2 version 2.9.4 library。在试图运行testXPath
命令时,在没有前缀的XPATH上使用-tree
选项时,出现分段错误。在XPATH(libxml2)中省略前缀会导致分段错误
~/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中有一个前缀不会导致错误。难道我做错了什么?
不知道为什么,这是得到downvoted。 – ShivanKaul
不幸的是,SO允许你在没有任何理由的情况下进行倒退。有时候,这只意味着有人在度过糟糕的一天。 –