我在我的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允許你在沒有任何理由的情況下進行倒退。有時候,這隻意味着有人在度過糟糕的一天。 –