gdb 유닉스와 리눅스의 차이점(?)

하하의 이미지

안녕하세요~ :D

저는 유닉스에서 gdb를 사용하려 합니다

gdb 기능중 attach 라는 옵션이 있어 현재 실행 중인

PID를 지정하여 디버깅을 할 수 있습니다.

실행 중인 프로세스를 컴파일 할때 -g 옵션을 주었습니다.

그런데 attach 를 하고 b (function name) 을 하면

리눅스 같은 경우 잘 먹는데 유닉스는 Function "function name" not defined.

이런식으로 선언문을 찾지 못하여 디버깅을 할 수가 없습니다.

유닉스에서 굳이 할려면 현재 떠있는 프로세스를 죽인후 gdb (실행 파일)

이런식으로 하면 잘 됩니다. 하지만 여간 불편한게 아니라서 왜 그런걸까요?

아시는 분 있으시면 답변 주시면 고맙겠습니다. ^^;

saxboy의 이미지

어떤 플랫폼에서 어느 유닉스의 어느 버전에 gdb무슨 버전을 gcc무슨 버전과 함께 사용해서 컴파일 옵션을 어떻게 넣었는지를 적으셔서 다시 질문을 올려보신다면 대답하실 분이 계실지도 모르겠는데요. 역시 이대로는 어렵지요. ;-)

또는 ask google!

choissi의 이미지

(gdb) symbol-file /바이너리/파일의/절대경로

이걸 한번 해보시죠.

울랄라~ 호기심 천국~!!
http://www.ezdoum.com