물론 gdb를 사용해서 세그폴트난부분은 찾을수있는데요....
일단 VC++에서는 씨한라인당 거기에 해당되는 어셈코드가
바로바로출력되니까 전체 소스를 분석하기가 더 쉽운것같아서요.
아시겠지만 VC++에서는 이런식으로 나오죠..
if( x> y)
{
------------ 어셈코드 ---------
max = x ;
--------------어셈코드 --------
}else {
max = y ;
-------------어셈코드 --------
}
컴파일 옵션으로
컴파일 할때 gdb로 디버깅 할것이라고 옵션을 넣어주세요, 그리고, 바이너리와
소스를 한곳에 두고, 바이너리를 디버깅 하시면서, gdb의 list명령인가?
머 비스무레한..(오래되서;;) 명령을 이용하시면, 수행중인 부분의 C코드를
확인 하 실 수 있 습 니 다.
참 컴파일 옵션은 -ggdb 입니다. gdb를 생략해도 된다고 기억하고 있습니다.
DDD라고 아시나요?
gdb 프론트 엔드 격인데요, 물론, X를 써야 하지만, gdb를 비쥬얼(?)하게 보여주는 디버깅 툴이랍니다.
https://nicesj.com
https://blog.nicesj.com
답변감사합니다.^^물론 gdb를 사용해서 세그폴트난부분은 찾을수있
답변감사합니다.^^
물론 gdb를 사용해서 세그폴트난부분은 찾을수있는데요....
일단 VC++에서는 씨한라인당 거기에 해당되는 어셈코드가
바로바로출력되니까 전체 소스를 분석하기가 더 쉽운것같아서요.
아시겠지만 VC++에서는 이런식으로 나오죠..
if( x> y)
{
------------ 어셈코드 ---------
max = x ;
--------------어셈코드 --------
}else {
max = y ;
-------------어셈코드 --------
}
이런식으로 거의 1:1로 매칭되게 나오거든요...
gdb에서는 이렇게 할수없을까요....
가능하지 않을까요?
가능하지 않을까요?
gdb의 front-end인 ddd를 방금 깔아서 쓰고 있는데,
여기에 machine code를 볼수 있는 창도 띄울 수 있습니다.
어딘가 옵션에 있으려나 -_-;;
help나 info로 잘 뒤져보세요 ~~
결국 RTFM이군요.... -.- ^^찾아서 알게되면 올리져..흐
결국 RTFM이군요.... -.- ^^
찾아서 알게되면 올리져..흐흐흐 :wink:
objdump -S 바이너리이런게 있기는 합니다.
objdump -S 바이너리
이런게 있기는 합니다.
울랄라~ 호기심 천국~!!
http://www.ezdoum.com
댓글 달기