2014-01-05 3 views
2

코어 덤프를 분석하기위한 스크립트를 작성하려고합니다. 지금까지 나는이 대본을 생각 해냈다. 나는 그것을 실행하려고 할 때bash를 이용한 Gdb 스크립팅

#!/bin/bash 

# 
# A script to extract core-file informations 
# 

#Binary image 
binimg=$1 

# Today and yesterdays cores 
core=$2 

gdblogfile="$core-gdb.log" 
rm -f $gdblogfile 

gdb -batch \ 
    -ex "set logging file $gdblogfile" \ 
    -ex "set logging on" \ 
    -ex "set pagination off" \ 
    -ex "file $binimg" \ 
    -ex "core-file $core" \ 
    -ex "bt" \ 
    -ex "quit" 

,이 오류가 발생합니다 : 파일 존재하지 않거나 일반 파일을지지 않습니다 '종료'가.

내가 잘못하고있는 것을 알려주시겠습니까?

답변

4

사용중인 gdb 버전에 문제가있을 수 있습니까? gdb 6.3에서 오류를 재현 할 수 있지만 7.6에서는 오류를 재현 할 수 없습니다. 어쨌든, gdb는 일괄 처리 모드로 시작했지만 여전히 마지막 인자 인 "quit"이 이미지의 파일 이름이라고 생각합니다 (그리고로드하려고 시도하고 찾을 수 없다고 불평하는) 것 같습니다. 따라서 gdb가 기대하는 것과 함께 게임을하기 위해서는 평소처럼 이미지와 코어 파일을 전달하면됩니다 (또한 "ex file""ex core-file" 인수를 제거하십시오). 다음과 같이 작동하는지 확인하십시오.

gdb -batch \ 
    -ex "set logging file $gdblogfile" \ 
    -ex "set logging on" \ 
    -ex "set pagination off" \ 
    -ex bt \ 
    -ex quit \ 
    "$binimg" \ 
    "$core"