다른 행에 return
수있는 긴 C 함수가 있습니다. 함수를 통해 GDB를 실행하고 어떤 라인에 함수를 출력 할 수 있습니까? return
ed? 지금까지 나는 한 번에 한 줄씩 (n
을 사용하여) 가고 있었고, 이것은 지루해졌습니다.신속하게 함수 반환 위치를 결정하십시오.
동적으로 GDB를 사용하여 함수를 호출하고 반환 된 행을 알 수 있습니까?
다른 행에 return
수있는 긴 C 함수가 있습니다. 함수를 통해 GDB를 실행하고 어떤 라인에 함수를 출력 할 수 있습니까? return
ed? 지금까지 나는 한 번에 한 줄씩 (n
을 사용하여) 가고 있었고, 이것은 지루해졌습니다.신속하게 함수 반환 위치를 결정하십시오.
동적으로 GDB를 사용하여 함수를 호출하고 반환 된 행을 알 수 있습니까?
당신은 GCC로 컴파일하고 있고 코드가 매크로를하고 검색 + 편집기에있는 모든 수익을 대체하는 것입니다 편집 할 수있는 경우 하나의 더러운 트릭 ...
int global_return_lineno;
#define return2(x) {global_return_lineno=__LINE__;return(x);}
그런 다음 함수를 호출 전역 변수를 검사하십시오.
+1 항상 디버깅 단계에서이 작업을 수행하십시오. –
모든 return 문에 중단 점을 추가하십시오. 필자는 보통 사용자가 설명하는 것과 같은 문제를 디버깅 할 목적으로 함수 규칙 당 하나의 return 문을 정확히 따르려고합니다. –
정확히 일치하는 중복이 있습니다 : http://stackoverflow.com/questions/3649468/setting-breakpoint-in-gdb-where-the-function-returns 그 질문은 좋은 대답을 가지고 있습니다 : http://stackoverflow.com/a/3649698/16509 – jjrv
@jjrv : 고맙지 만 임베디드 장치로 작업하고 있으므로'reverse-step '이 없습니다. – Randomblue