2016-08-16 8 views
0

먼저 모든 영어가 좋지 않다는 사과를합니다. gtk_builder_add_from_files (builder, "interface.xml"& err)를 사용하여 GTK 위젯을 부팅 할 때 오류가 발생하지만 다음과 같은 메모리 누수가 발생합니다.글레이드로 만든 파일을로드 할 때 GTK 빌더 메모리 누수가 발생합니다.

이틀 동안 솔루션을 검색했지만 헛된 일이 있습니다. 아니면 누군가가 이미 문제에 직면 해있는 아이디어를 가지고 있을까요?

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)" 

나는이 맥 OS X 엘 캐피 탄의 "누수"프로그램을 기록 얻고 난 Valgrind의를 사용할 수 없습니다. 그는 프로그램을 시작하려고 할 때 충돌합니다. :(

당신의 시간과 좋은 일에 감사드립니다.

+0

응용 프로그램의 수명 동안 할당 된 채로 남아있을뿐만 아니라 이러한 누출이 확실합니까? 응용 프로그램이 전체 수명 동안 필요로하는 메모리를 명시 적으로 해제하는 것은 더 효율적입니다. 종료 될 때 OS는 모든 것을 할당 해제합니다. Gtk + 참조 설명서를보십시오. 그것은 누출 검사기를 행복하게 만들기 위해 명시 적으로 모든 것을 해제하는 선택적 디버깅 모드를 가질 수 있습니다. – zwol

답변

0

그것은이 적절한 사전 검사 또는 오류 처리 및 오류 수 있으며 않고, 그대로로드? 당신의 .gtkbuilder의 XML은 처음부터 올바른인가 리턴 코드가 gtk_builder_add_from_file()인지 확인하십시오 .0 인 경우 (오류를 의미 함)

또한 GtkBuilder에 대한 포인터를 잃지 않도록하십시오. 그것을 제거하고 싶다면 g_object_unref()

걱정하지 않아도됩니다. GtkBuilder가 메모리를 관리하는 방법.

+0

안녕하세요, 이미 내 코드에서 gtk_builder_add_from_file()의 반환 코드를 확인하고 위젯을 생성 한 후 g_object_unref()를 사용했습니다. 어쩌면 Glade로 XML을 생성하는 것은 잘못된 것입니다 ... 그놈 GTK + 3 문서에서 잘못된 파일이 메모리 누수의 원인이 될 수 있다고 읽었습니다. 귀하의 회신과 귀하의 시간에 감사드립니다. – tiboitel