我有一个dos可执行文件,我需要了解。所以我想调试它以理解算法并以另一种语言重现它。我的操作系统是Linux。
我首先尝试winedbg dosProgram.exe
:它启动了程序(出现了一个新的终端窗口),该程序保持空白,直到我在winedbg提示符下键入next
或cont
或{{ 1}} ...然后按预期的方式运行了dos程序,但是winedbg窗口什么也没有显示,直到我按Ctrl-c导致出现step
。所以没有什么有趣的事情。
当程序在winedbg中运行时,我还尝试发出stopping debuggee
来获取正在运行的dos程序的pid,然后尝试了info proc
,但是我得到了“ ltrace:不允许操作”(我读有关如何解决这一问题的一些帖子)。我没有进一步研究,因为我不确定该方法(winedbg中报告的pid代表的进程与gdb看到的进程相同)。
我终于尝试了gdb -P thePidInfoProcGaveMe
,但似乎什么也没有发生,没有窗口出现,只显示了以下文本:
winedbg --gdb dosProgram.exe
根据我对winedbg手册的了解,0027:0028: create process 'Z:\home\helloworld\dosProgram.exe'/0x1108a0 @0x401870 (0<0>)
0027:0028: create thread I @0x401870
应该会自动打开gdb。
所以我的问题是:
感谢任何帮助和建议!