[問題] valgrind 的 Log 爆漲?

看板Linux作者 (Tetralet)時間12年前 (2013/03/31 19:39), 編輯推噓4(402)
留言6則, 4人參與, 最新討論串1/1
敝人在 Linux 下是使用 GTK+ 來開發程式, 然後使用 valgrind 這個神器來找出程式中有關記憶體存取的潛在問題。 但從 valgrind 3.6.0 開始,valgrind 的 Log 就大爆漲, 比如說,以下程式 gtk.c: #include <gtk/gtk.h> int main(int argc, char **argv) { gtk_init(&argc, &argv); GtkWidget *window = gtk_window_new(GTK_WINDOW_TOPLEVEL); g_signal_connect(G_OBJECT(window), "delete_event", G_CALLBACK(gtk_main_quit), NULL); gtk_widget_show_all(window); gtk_main(); return 0; } 您可以用以下指令來編譯這個程式: (GTK2) gcc -Wall -g gtk.c -o gtk `pkg-config --cflags --libs gtk+-2.0` (GTK3) gcc -Wall -g gtk.c -o gtk `pkg-config --cflags --libs gtk+-3.0` 然後使用以下指令,用 valgrind 來執行這個程式: valgrind --leak-check=full ./gtk 理論上,這個小程式應該不會有什麼記憶體存取的潛在問題吧? 也就是說,valgrind 應該抓不到什麼問題才對。 在 Debian Lenny (valgrind 3.3.1 + GTK2) 下, 產生的 Log 是 53 行,瞄幾眼就看完了,的確是沒抓到什麼大問題。 但在 Debian Squeeze (valgrind 3.6.0 + GTK2) 下,所產生的 Log 竟然有 6,295 行; 而在 Debian Wheezy (valgrind 3.7.0 + GTK3) 下,所產生的 Log 則為 5,927 行。 說實在話,5、6 千行的 Log 基本上是看不完的,且因為資訊太多太雜亂,根本沒辨法用來除錯。 請問,有什麼辨法能讓新版的 valgrind 的 Log 像舊版一樣精簡呢? 或者,有其它工具能取代 valgrind 的嗎? 謝謝! --

03/31 20:37, , 1F
很多應該都是 gtk 或相依 library 相關的 error 吧 XD
03/31 20:37, 1F

03/31 20:38, , 2F
--leak-check=full 應該是含抓 leaks,所以訊息比較多?
03/31 20:38, 2F

04/01 00:24, , 3F
不加--leak-check=full看看?
04/01 00:24, 3F
不加的話,就只是個 SUMMARY 報表,所以不加不行... 如果是用 --leak-check=yes 的話,也是接近 5000 行,還是太多了。

04/01 17:31, , 4F
那 valgrind -v 呢 XD 不加通常是比較嚴重的錯誤才會報
04/01 17:31, 4F
用 valgrind -v 則是 5,540 行。差不多...

04/03 16:37, , 5F
試試 intel inspector, 個人覺得很好用
04/03 16:37, 5F

04/04 09:44, , 6F
大推 Intel 的,Linux 版免費
04/04 09:44, 6F
咦?趕快去試用看看! ※ 編輯: Tetralet 來自: 114.32.201.46 (04/04 18:08)
文章代碼(AID): #1HM21lBy (Linux)