Serach

2013년 10월 10일 목요일

GDB 명령어

실행방법

    gdb 프로그램명
    gdb 프로그램명 PID
    gdb 프로그램명 덤프파일


인자
    set args --
    show args


역추적.
    bt    


멀티스레드 디버깅

    info threads   스레드 정보 확인
    t [n]   스레드 변경


브레이크 포인트
    info break,  info b    브레이크 포인트 목록

    break n
    b file:n
    tb  한번만 사용하는 브레이크 포인트

    clear  브레이크 포인트 제거
    cl   브레이크 포인트 제거



디버깅 스텝
    s(step)  step in
    n(next)  step out
    c(continue)  next breakpoint
    finish : 현재 함수를 수행하고 빠져나감
    ret (return) : 현재 함수를 수행하지 않고 빠져나감



변수값 출력
    print 변수명

    p/t var : var 변수를 2진수로 출력
    p/o var : var 변수를 8진수로 출력
    p/d var : var 변수를 부호가 있는 10진수로 출력 (int)
    p/u var : var 변수를 부호가 없는 10진수로 출력 (unsigned int)
    p/x var : var 변수를 16진수로 출력
    p/c var : var 변수를 최초 1바이트 값을 문자형으로 출력
    p/f var : var 변수를 부동 소수점 값 형식으로 출력
    p/a addr : addr주소와 가장 가까운 심볼의 오프셋을 출력 ( ex_ main + 15 )
    p (char*)vstr : 실제 컴파일 시에 (void *)형으로 되어있었다고
    하더라도 (char *)로 캐스팅 하여 보여줌 (타입이 틀릴 경우 타입을 변환하여 출력)
    p lstr + 4 : 예를 들어 lstr = "I like you." 라는 문자열은 "ke you."가 출력된다.
    (특정한 위치 지정)


스택 프레임
    frame n   지정된 프레임으로 이동
    up  상위 프레임으로
    down 하위 프레임으로

    info frame : 현재 스택 프레임 정보를 출력
    info args : 현재 스택 프레임의 함수가 호출될 때 인자를 출력






현재 위치한 행에서 접근 가능한 지역변수들 목록 확인

    (gdb) info locals

현재 위치한 행에서 접근 가능한 전역변수들 목록 확인

    (gdb) info variables

댓글 없음:

댓글 쓰기