valgrind 的 Log 爆漲? - Linux

Hamiltion avatar
By Hamiltion
at 2013-03-31T19:39

Table of Contents

敝人在 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 的嗎?

謝謝!

--
Bencrie:很多應該都是 gtk 或相依 library 相關的 error 吧 XD 03/31 20:37
Bencrie:--leak-check=full 應該是含抓 leaks,所以訊息比較多? 03/31 20:38
hpps:不加--leak-check=full看看? 04/01 00:24

不加的話,就只是個 SUMMARY 報表,所以不加不行...
如果是用 --leak-check=yes 的話,也是接近 5000 行,還是太多了。

Bencrie:那 valgrind -v 呢 XD 不加通常是比較嚴重的錯誤才會報 04/01 17:31

用 valgrind -v 則是 5,540 行。差不多...

Nt1:試試 intel inspector, 個人覺得很好用 04/03 16:37
danielsig727:大推 Intel 的,Linux 版免費 04/04 09:44

咦?趕快去試用看看!

※ 編輯: Tetralet 來自: 114.32.201.46 (04/04 18:08)

Tags: Linux

All Comments

Olive avatar
By Olive
at 2013-04-02T01:48
很多應該都是 gtk 或相依 library 相關的 error 吧 XD
Ingrid avatar
By Ingrid
at 2013-04-03T08:31
--leak-check=full 應該是含抓 leaks,所以訊息比較多?
Zora avatar
By Zora
at 2013-04-04T07:52
不加--leak-check=full看看?
Rachel avatar
By Rachel
at 2013-04-05T23:17
那 valgrind -v 呢 XD 不加通常是比較嚴重的錯誤才會報
Victoria avatar
By Victoria
at 2013-04-09T17:15
試試 intel inspector, 個人覺得很好用
Mary avatar
By Mary
at 2013-04-11T20:56
大推 Intel 的,Linux 版免費

MK808B改BT下載機

Poppy avatar
By Poppy
at 2013-03-30T23:24
※ [本文轉錄自 Android 看板 #1HLlo9RX ] 作者: caiin (這個世界瘋了...) 看板: Android 標題: [請益] MK808B改BT下載機 時間: Sat Mar 30 22:53:58 2013 最近敗了一隻MK808B 除了偶而拿來當看電影以外 想要改成BT下載機來 ...

Ubuntu 12.04 無法連線Google網站(已解決)

Tracy avatar
By Tracy
at 2013-03-30T18:41
如主旨 小弟的電腦是Acer 4810T 同時安裝原本的Win Vista還有Ubuntu 12.04 這幾天電腦連到家中的網路的時候 原本很順的Ubuntu不支為何,開始無法連線到Google還有相關網站其服務 而Facebook的速度則明顯便慢 (但其他網站沒有問題) 剛開始以為是家中網路問題 但是切換 ...

cross compiler的問題

Rosalind avatar
By Rosalind
at 2013-03-30T15:36
最近在fedora 6 上做cross tool,但是一直卡在一個地方 /glibc-2.2.3/manual//creature.texi:220: warning: atstrong{Note...} produces a spurious cross-reference in Info; rewor ...

Re: 更改副檔名

Tom avatar
By Tom
at 2013-03-29T13:39
※ 引述《soem (流水)》之銘言: : ※ 引述《and#34;kolmogolovatgmail.comand#34; andlt;kolmogolovatgmail.comandgt;, 看板: Linux》之銘言: : 看看有沒有 /usr/X11R6/bin/rename 這個程式。 : 試試: ...

C語言編好的執行檔在Ubuntu無法直接執行?

Anthony avatar
By Anthony
at 2013-03-29T12:08
各位板友大家好, 小弟是Linux的初學者, 目前使用Ubuntu 12.04LTS版本, 有安裝圖形介面及C::B, 在C::B直接編譯執行的程式, 都會直接跳出terminal視窗出來執行, 或者是在terminal視窗輸入執行檔的路徑,也能執行.. 不過在圖形介面下,點兩下編譯好的執行檔, 卻都沒反 ...