超好用的除錯工具 valgrind + gdb

valgrind 是linux上檢查程式記憶體錯誤的軟體,配上gdb,實在超好用的,我已經用了好幾年了

1. 用之前,將你的程式編譯選項(用gcc)加上 -g ,如果有 -s 要將它拿掉,如有任何 -o 也要拿掉

2. sudo valgrind --leak-check=full --db-attach=yes --num-callers=10 ./my_prog param1 param2
其中
./my_prog param1 param2 是你的程式及其參數,
--leak-check=full是告知valgrind加上記憶體檢查的工具,
--db-attach=yes 是告知valgrind在錯誤時,接上gdb
--num-callers=10是call stack trace的層數

另外,要用sudo是因為gdb要接上的關係