gdb에서 디스어셈블시 C와 어셈코드를 한눈에 볼수있는방법이...

toy의 이미지

VC++에서는 디스어셈하면....
C와 어셈코드가 한눈에 들어오도록 나오는것을 보고 감동받은적이있습니다...
즉 씨한라인나오고 어셈코드 한라인나오고 ..이런식으로요...
gdb에서 디스어셈하면 어셈코드만 쫙나오니까
세그폴트난부분을 찾았다고 해도 거기에 해당하는 C코드찾는게 귀찮더군요..
물론 못찾는건 아니지만요..
혹시 아시는분 계신지요?

sjpark의 이미지

컴파일 할때 gdb로 디버깅 할것이라고 옵션을 넣어주세요, 그리고, 바이너리와
소스를 한곳에 두고, 바이너리를 디버깅 하시면서, gdb의 list명령인가?
머 비스무레한..(오래되서;;) 명령을 이용하시면, 수행중인 부분의 C코드를
확인 하 실 수 있 습 니 다.

참 컴파일 옵션은 -ggdb 입니다. gdb를 생략해도 된다고 기억하고 있습니다.

DDD라고 아시나요?
gdb 프론트 엔드 격인데요, 물론, X를 써야 하지만, gdb를 비쥬얼(?)하게 보여주는 디버깅 툴이랍니다.

toy의 이미지

답변감사합니다.^^

물론 gdb를 사용해서 세그폴트난부분은 찾을수있는데요....
일단 VC++에서는 씨한라인당 거기에 해당되는 어셈코드가
바로바로출력되니까 전체 소스를 분석하기가 더 쉽운것같아서요.
아시겠지만 VC++에서는 이런식으로 나오죠..
if( x> y)
{
------------ 어셈코드 ---------
max = x ;
--------------어셈코드 --------
}else {
max = y ;
-------------어셈코드 --------
}

이런식으로 거의 1:1로 매칭되게 나오거든요...
gdb에서는 이렇게 할수없을까요....

lacovnk의 이미지

가능하지 않을까요?

gdb의 front-end인 ddd를 방금 깔아서 쓰고 있는데,

여기에 machine code를 볼수 있는 창도 띄울 수 있습니다.

어딘가 옵션에 있으려나 -_-;;

help나 info로 잘 뒤져보세요 ~~

toy의 이미지

결국 RTFM이군요.... -.- ^^
찾아서 알게되면 올리져..흐흐흐 :wink:

choissi의 이미지

objdump -S 바이너리

이런게 있기는 합니다.

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

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.