Programing

모든 전역 변수 / 지역 변수를 인쇄 하시겠습니까?

lottogame 2020. 3. 14. 10:03
반응형

모든 전역 변수 / 지역 변수를 인쇄 하시겠습니까?


모든 전역 변수 / 로컬 변수를 인쇄하려면 어떻게해야합니까? gdb에서 가능합니까?


info variables"모든 전역 및 정적 변수 이름"을 나열하려면 입력 하십시오.

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

info args"현재 스택 프레임의 인수"(이름 및 값)를 나열하려면 입력 하십시오.


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;
}

argcargv가 표시되지 않습니다 info locals. 메시지는 "No locals"입니다.

참조 : 정보 지역 주민이 명령 .

참고 URL : https://stackoverflow.com/questions/6261392/printing-all-global-variables-local-variables

반응형