問題は、いくつかのdll関数、これと同じdllからの他の関数を呼び出すデバッグコードにあります。
EdsGetCameraList(&l);
この行を中断してnext
コマンドを発行すると、
(gdb) n
0x1000e620 in ?? ()
0x1000e620
EdsGetCameraListのアドレスです:
(gdb) disas find_cam,+20
Dump of assembler code from 0x401783 to 0x401797:
0x00401783 <find_cam+0>: push ebp
0x00401784 <find_cam+1>: mov ebp,esp
0x00401786 <find_cam+3>: sub esp,0x48
=> 0x00401789 <find_cam+6>: lea eax,[ebp-0x14]
0x0040178c <find_cam+9>: mov DWORD PTR [esp],eax
0x0040178f <find_cam+12>: mov eax,ds:0x4092dc
0x00401794 <find_cam+17>: call eax
0x00401796 <find_cam+19>: sub esp,0x4
End of assembler dump.
(gdb) x 0x4092dc
0x4092dc <_imp__EdsGetCameraList@4>: 0x1000e620
next
もう一度入力しても不思議ではありません。
(gdb) n
Cannot find bounds of current function
何が起こっている?