我得到了一个带有嵌入式C代码的二进制文件,当我在GDB GCC调试器中运行时,我无法看到它。我想C代码已经被二进制代码的编译/形成所隐藏。我尝试过以下方法:
GDB>文件myFile GDB>列出主要
我得到的输出是:
myFile.c:没有这样的文件或目录
我知道在这个二进制文件中有用C编写的代码。当我输入./myFile
时,可执行文件会运行我已经安装了32位库,因为这种情况需要,我正在运行Ubuntu 16.04
感谢任何帮助。
答案 0 :(得分:0)
这可能是一个汇编问题。尝试查看option以进行调试
$ gcc -g myFile.c -o myFile
$ gdb myFile
(gdb) list main
如果编译没有"-g"
选项,调试器将永远不会显示C代码,只会显示汇编代码。
在您的情况下,如果您运行这些命令,您将看到反汇编代码
(gdb) info file
然后获取入口点的地址
Entry point: 0x(address)
对于show disassembly code
(gdb) break 0x(address)
(gdb) run
断点被捕获时
(gdb) x/20i $pc