GDB에 포인터가 있는데, 힙에 처음 할당 된 위치를 어떻게 알 수 있습니까?GDB에서 malloc을 사용하여 힙에 누가 주소를 찾았습니까?
를 WinDBG에서,이 메모리가 할당된다 (이것은 약간의 누수를 감지 할 때), 나는이 가능하다 생각 말해 줄 수 Valgrind의 때문에 gflags /i <*exe> +ust
켠 후 !heap -p -a <0x12345678>
하여 수행 할 수 있습니다?
GDB에서 역 디버깅을 사용하는 것은 매우 새로운 방법이고 아마도 올바른 방법으로이 문제를 해결할 수 있습니다. GDB 7.1에서 가장 최근의 안정 버전 인이 접근 방식에 몇 가지 문제점이 있습니다. 역 디버깅은 GDB의 다소 새로운 기능이므로 HEAD (7.2)를 수정해야합니다.
GDB 접근 방식의 성숙도에 대해서는 아마 분명하지만 좀 더 성숙해지면 확실히 사용해야한다고 생각합니다. (굉장한 기능!)
감사! 접근 방식과 ks1322가 모두 유효 해 보입니다. mtrace 및 glib 할당 디버깅에 대해 알아두면 도움이됩니다. 다른 한편으로, 나는 ks1332의 접근 방식이 좀 더 영리하고 아마도 GDB에 가까울 것이라고 생각한다 (따라서 질문 제목). 두 가지를 모두 시험해보고 정답을 선택하기 전에 실제로 어느 것이 더 나은지 확인합니다. – kizzx2