valgrind 的 Log 爆漲? - Linux
By Hamiltion
at 2013-03-31T19:39
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 的嗎?
謝謝!
--
不加的話,就只是個 SUMMARY 報表,所以不加不行...
如果是用 --leak-check=yes 的話,也是接近 5000 行,還是太多了。
用 valgrind -v 則是 5,540 行。差不多...
咦?趕快去試用看看!
※ 編輯: Tetralet 來自: 114.32.201.46 (04/04 18:08)
然後使用 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
By Olive
at 2013-04-02T01:48
at 2013-04-02T01:48
By Ingrid
at 2013-04-03T08:31
at 2013-04-03T08:31
By Zora
at 2013-04-04T07:52
at 2013-04-04T07:52
By Rachel
at 2013-04-05T23:17
at 2013-04-05T23:17
By Victoria
at 2013-04-09T17:15
at 2013-04-09T17:15
By Mary
at 2013-04-11T20:56
at 2013-04-11T20:56
Related Posts
MK808B改BT下載機
By Poppy
at 2013-03-30T23:24
at 2013-03-30T23:24
Ubuntu 12.04 無法連線Google網站(已解決)
By Tracy
at 2013-03-30T18:41
at 2013-03-30T18:41
cross compiler的問題
By Rosalind
at 2013-03-30T15:36
at 2013-03-30T15:36
Re: 更改副檔名
By Tom
at 2013-03-29T13:39
at 2013-03-29T13:39
C語言編好的執行檔在Ubuntu無法直接執行?
By Anthony
at 2013-03-29T12:08
at 2013-03-29T12:08