2015年7月20日 星期一

Ubuntu下使用GDB給Eigen除錯

Eigen是個好用的c++數學庫,有很多矩陣、向量等工具可以使用

但對我而言稍微麻煩的就是它在預設狀況下無法使用GDB除錯

說是沒辦法有點不太對,就是顯示出來的資訊很混亂不清楚,基本上就是難以用人工去除錯

上網查詢後,找到了使用官方提供的pretty-print方法,但按照它上頭的解說仍無法順利使用,會出現以下錯誤

Python Exception <class 'TypeError'> 'map' object is not subscriptable:
原本以為是我什麼地方搞錯了,還跑去官網去查文件一篇一篇讀,根本....

最後根據這篇的解答,我確認了自己的python版本,確定問題是我這用apt-get 下載的gdb使用的是python3.4版本,而Eigen提供的版本是使用python2所撰寫的,也難怪沒辦法跑。

於是只好移除現有的gdb,重新從官方網站下載來編譯,關於參數我參考了別人的網誌,在編譯完成後總算是成功能 print 出矩陣的內容了。

雖然最後解決了,但這件事真的讓人挺煩躁的,沒事預設3.4版本做什麼啦,python2是過期了膩?明明還很多人在用阿......連gdb網站中的Extending gdb using Python條目都還在用python2耶......

沒有留言:

張貼留言