0
고려하십시오 :은 GDB에서 다른 하나의 함수에서 통과 포인터를 추적하는 방법
void bar (int* ptr3)
{
printf ("\n*ptr3 =%d\n",*ptr3);
}
void foo (int* ptr2)
{
*ptr2 +=5;
bar (ptr2);
}
int main()
{
int numb = 5;
int *ptr = &numb;
foo (ptr);
printf("\nHello !!!\n");
return 0;
}
어떤 시점에서 내가의 역 추적을 찾을 수있는 방법으로, ptr
을 추적하는 것이 가능 변수, 같은 : 대략
bar() : ptr3
foo() : *ptr2 +=5;
main(): int *ptr = &numb;
: 우리는 몇 가지 방법을 통해 GDB에서 포인터 기록을 얻을 수 있습니다.
실제로 이것은 Purify를 통해보고 된 메모리 누수/UMR을 수정하는 데 도움이 될 수 있습니다.
감사합니다.
값을 추적하지 않습니다. 그러나 어떤 시점에서 백 포인터 (포인터 변수에 해당)를 볼 수 있습니다. 가능한가? -- 감사. –
미안하지만, 나는 당신이 무엇을 요구하고 있는지 완전히 이해하지 못하고 있습니다. –
ptr이 다음과 같이 전달된다고 가정하십시오. func1 {* ptr defined, func2_called (ptr)} ... func2 (* ptr) {값을 수정하고 ptr을 func3()에 전달합니다. PTR 자체에서 역 추적을 수행하여 func3() -> func2() -> func (1)과 같은 추적을 얻을 수 있습니까? –