2016-08-16 81 views
0

我會先向所有我的英語道歉並不好。當我啓動我的GTK構件與gtk_builder_add_from_files(建設者,「interface.xml」 & ERR)我沒有錯誤,但我有出現這些內存泄漏:加載用Glade創建的文件時GTK-Builder內存泄漏

兩天我搜索的解決方案,但徒勞無功。或者有人會有一個想法已經面臨這個問題?

Leak: 0x7fa3c9d49dd0 size=16 zone: DefaultMallocZone_0x109274000  length: 3 "hfs" 
Leak: 0x7fa3c9e25a20 size=16 zone: DefaultMallocZone_0x109274000  length: 7 "<ctrl>v" 
    Leak: 0x7fa3c9e28280 size=16 zone: DefaultMallocZone_0x109274000 length: 7 "<ctrl>F" 
    Leak: 0x7fa3c9e569f0 size=16 zone: DefaultMallocZone_0x109274000 length: 14 "<shift><ctrl>a" 
    Leak: 0x7fa3c9e5d5f0 size=16 zone: DefaultMallocZone_0x109274000 length: 7 "<ctrl>x" 
    Leak: 0x7fa3c9e5f910 size=16 zone: DefaultMallocZone_0x109274000 length: 14 "<shift><ctrl>a" 
    Leak: 0x7fa3c9e6e930 size=16 zone: DefaultMallocZone_0x109274000 length: 7 "<ctrl>a" 
    Leak: 0x7fa3c9e76400 size=16 zone: DefaultMallocZone_0x109274000 length: 7 "<ctrl>a" 
    Leak: 0x7fa3c9e8c3f0 size=16 zone: DefaultMallocZone_0x109274000 length: 7 "<ctrl>a" 
Leak: 0x7fa3c9ea84c0 size=16 zone: DefaultMallocZone_0x109274000 length: 14 "<shift><ctrl>a" 
Leak: 0x7fa3c9ea9df0 size=16 zone: DefaultMallocZone_0x109274000 length: 7 "<ctrl>a" 
Leak: 0x7fa3c9eaadf0 size=16 zone: DefaultMallocZone_0x109274000 length: 7 "<ctrl>F" 
Leak: 0x7fa3c9eaf990 size=16 zone: DefaultMallocZone_0x109274000 length: 14 "<shift><ctrl>a" 
Leak: 0x7fa3c9eaf9a0 size=16 zone: DefaultMallocZone_0x109274000 length: 7 "<ctrl>a" 
Leak: 0x7fa3c9eaf9f0 size=16 zone: DefaultMallocZone_0x109274000 length: 14 "<shift><ctrl>a" 
Leak: 0x7fa3c9eb0030 size=16 zone: DefaultMallocZone_0x109274000 length: 7 "<ctrl>v" 
Leak: 0x7fa3c9eb1540 size=16 zone: DefaultMallocZone_0x109274000 length: 7 "<ctrl>c" 
Leak: 0x7fa3c9eb21f0 size=16 zone: DefaultMallocZone_0x109274000 length: 7 "<ctrl>f" 
Leak: 0x7fa3c9eb2460 size=16 zone: DefaultMallocZone_0x109274000 length: 7 "<ctrl>a" 
Leak: 0x7fa3c9eb25f0 size=16 zone: DefaultMallocZone_0x109274000 length: 7 "<ctrl>a" 
Leak: 0x7fa3c9eb2df0 size=16 zone: DefaultMallocZone_0x109274000 length: 14 "<shift><ctrl>a" 
Leak: 0x7fa3c9eb49f0 size=16 zone: DefaultMallocZone_0x109274000 length: 14 "<shift><ctrl>a" 
Leak: 0x7fa3c9eb75f0 size=16 zone: DefaultMallocZone_0x109274000 length: 7 "<ctrl>v" 
Leak: 0x7fa3c9eb7bf0 size=16 zone: DefaultMallocZone_0x109274000 length: 7 "<ctrl>f" 
Leak: 0x7fa3c9eb83f0 size=16 zone: DefaultMallocZone_0x109274000 length: 7 "<ctrl>a" 
Leak: 0x7fa3c9ec11f0 size=16 zone: DefaultMallocZone_0x109274000 length: 7 "<ctrl>a" 
Leak: 0x7fa3c9ec25f0 size=16 zone: DefaultMallocZone_0x109274000 length: 14 "<shift><ctrl>a" 
Leak: 0x7fa3c9ec31f0 size=16 zone: DefaultMallocZone_0x109274000 length: 7 "<ctrl>c" 
Leak: 0x7fa3c9ec3df0 size=16 zone: DefaultMallocZone_0x109274000 length: 7 "<ctrl>c" 
Leak: 0x7fa3c9ecab90 size=16 zone: DefaultMallocZone_0x109274000 length: 7 "<ctrl>c" 
Leak: 0x7fa3c9ecd5f0 size=16 zone: DefaultMallocZone_0x109274000 length: 14 "<shift><ctrl>a" 
Leak: 0x7fa3c9ecd9f0 size=16 zone: DefaultMallocZone_0x109274000 length: 7 "<ctrl>a" 
Leak: 0x7fa3c9edc9f0 size=16 zone: DefaultMallocZone_0x109274000 length: 7 "<ctrl>x" 
Leak: 0x7fa3c9f07fb0 size=16 zone: DefaultMallocZone_0x109274000 length: 12 "/dev/disk0s2" 
Leak: 0x7fa3c9f9c500 size=16 zone: DefaultMallocZone_0x109274000 length: 10 "(646, 267)" 

我在mac os X El Capitan上用「leaks」程序得到這個日誌,我無法使用valgrind。他試圖啓動該程序時,他崩潰了。 :(

謝謝您的時間和良好的一天。

+0

你確定這些是_true_ leaks,而不僅僅是在應用程序的整個生命週期內保持分配的內存嗎?對於應用程序來說,在整個生命週期內不需要明確釋放內存,這對於應用程序來說更加高效 - 當它退出時,操作系統將會釋放所有內容。查看Gtk +參考手冊;它可能有一個可選的調試模式,它可以明確地釋放所有的東西使泄漏檢查器開心。 – zwol

回答

0

是您.gtkbuilder XML是擺在首位正確的嗎?這是加載是,沒有適當的前檢查或錯誤處理和任何錯誤可能與會導致泄漏或崩潰,請考慮檢查gtk_builder_add_from_file()的返回碼,如果它爲零(表示錯誤),那麼你有問題

還要確保你不會丟失指向你的GtkBuilder的指針。想刪除它你必須做g_object_unref()

除此之外,你不應該擔心關於GtkBuilder如何管理內存。

+0

你好,我已經檢查了我的代碼gtk_builder_add_from_file()的返回代碼,並且在生成我的小部件後我使用了g_object_unref()。也許用Glade生成XML是不正確的...我讀了GNOME GTK + 3文檔,而不正確的文件會導致內存泄漏。感謝您的回覆和您的時間。 – tiboitel