programing

모든 글로벌 변수/로컬 변수를 인쇄하시겠습니까?

sourcetip 2022. 7. 16. 09:04
반응형

모든 글로벌 변수/로컬 변수를 인쇄하시겠습니까?

모든 글로벌 변수/로컬 변수를 인쇄하려면 어떻게 해야 합니까?그게 gdb로 가능한가요?

"All global 및 static variable name"(대규모 목록)을 나열하려면 입력합니다.

해당 함수의 정적 변수를 포함하여 "현재 스택 프레임의 로컬 변수"(이름 및 값)를 나열하려면 입력합니다.

"현재 스택 프레임의 인수"(이름 및 값)를 나열하려면 입력합니다.

호출함수 사용의 로컬 변수를 보고 싶은 경우select-frame전에info locals

예:

(gdb) bt
#0  0xfec3c0b5 in _lwp_kill () from /lib/libc.so.1
#1  0xfec36f39 in thr_kill () from /lib/libc.so.1
#2  0xfebe3603 in raise () from /lib/libc.so.1
#3  0xfebc2961 in abort () from /lib/libc.so.1
#4  0xfebc2bef in _assert_c99 () from /lib/libc.so.1
#5  0x08053260 in main (argc=1, argv=0x8047958) at ber.c:480
(gdb) info locals
No symbol table info available.
(gdb) select-frame 5
(gdb) info locals
i = 28
(gdb) 

게다가 그 이후로는info locals현재 함수에 대한 인수를 표시하지 않습니다.

(gdb) info args

예를 들어 다음과 같습니다.

int main(int argc, char *argv[]) {
    argc = 6*7;    //Break here.
    return 0;
}

argc그리고.argv에 의해 표시되지 않음info locals메시지는 '현지인 출입금지'입니다.

참조: info locals 명령어.

언급URL : https://stackoverflow.com/questions/6261392/printing-all-global-variables-local-variables

반응형