しかし、私は窓の視覚的なスタジオ、ソースコードの リスト1行に見ることができるもののように表示したい、それに対応する 解体(数行)をリスト
あなたはone of gdb TUI layoutsを使用できます。ここでlayout asm
と/usr/bin/ls
のためのサンプルデバッグセッションは次のとおりです。
[[email protected] ~]$ gdb -q /usr/bin/ls
Reading symbols from /usr/bin/ls...Reading symbols from /usr/lib/debug/usr/bin/ls.debug...done.
done.
(gdb) start
Temporary breakpoint 1 at 0x39a0: file ../src/ls.c, line 1249.
Starting program: /usr/bin/ls
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Temporary breakpoint 1, main (argc=1, argv=0x7fffffffdde8) at ../src/ls.c:1249
1249 {
Missing separate debuginfos, use: dnf debuginfo-install pcre-8.39-3.fc24.x86_64
(gdb) layout asm
ここでは、GDBでどのように見えるかです:
┌─────────────────────────────────────────────────────────────────┐
>│0x5555555579a0 <main> push %r15 │
│0x5555555579a2 <main+2> push %r14 │
│0x5555555579a4 <main+4> mov %edi,%r15d │
│0x5555555579a7 <main+7> push %r13 │
│0x5555555579a9 <main+9> push %r12 │
│0x5555555579ab <main+11> mov %rsi,%r14 │
│0x5555555579ae <main+14> push %rbp │
│0x5555555579af <main+15> push %rbx │
│0x5555555579b0 <main+16> sub $0x3a8,%rsp │
│0x5555555579b7 <main+23> mov (%rsi),%rdi │
│0x5555555579ba <main+26> mov %fs:0x28,%rax │
│0x5555555579c3 <main+35> mov %rax,0x398(%rsp) │
│0x5555555579cb <main+43> xor %eax,%eax │
│0x5555555579cd <main+45> callq 0x555555562ed0 <set_progra│
│0x5555555579d2 <main+50> lea 0x15e7c(%rip),%rsi │
│0x5555555579d9 <main+57> mov $0x6,%edi │
│0x5555555579de <main+62> callq 0x5555555578a8 │
│0x5555555579e3 <main+67> lea 0x1302d(%rip),%rsi │
│0x5555555579ea <main+74> lea 0x1300c(%rip),%rdi │
│0x5555555579f1 <main+81> callq 0x5555555576d8 │
│0x5555555579f6 <main+86> lea 0x13000(%rip),%rdi │
│0x5555555579fd <main+93> callq 0x5555555576b8 │
│0x555555557a02 <main+98> lea 0x21b7cf(%rip),%rax │
│0x555555557a09 <main+105> lea 0x7c60(%rip),%rdi #│
│0x555555557a10 <main+112> movl $0x2,(%rax) │
│0x555555557a16 <main+118> callq 0x555555569020 <atexit> │
│0x555555557a1b <main+123> movabs $0x8000000000000000,%rax │
└─────────────────────────────────────────────────────────────────┘
Thread 0x7ffff7fd78 In: main L1249 PC: 0x5555555579a0
(gdb)
layout asm
以外の他のレイアウトがあります。おそらくあなたのニーズに合ったlayout split
も参照してください。
gdbである必要がありますか?なぜ 'objdump -dS'や' gcc -S'? – a3f
私は、Visual Studioで見ることができるような、各行のアセンブリコードを知っている間に、デバッグ中にソースコードをデバッグすることができます。ありがとう。 –
コンパイラの出力が入力を連続的または線形的に一致させると仮定する理由はありません。最適化されていないコードに対してのみ、これは有用でもあります。そうでなければ、必ずしもサイド・バイ・サイドの関係が存在するとは考えられません。いくつかの単純な関数/プログラムは確かですが、一般的ではありません。 –