linux的静态编译elf无法调试,macos-运行arm-elf-gcc编译代码时出现段错误
使用MacPorts,我剛剛在我的MacBook Pro上安裝了arm-elf-gcc.這項工作完美無缺,并且一切運行正常.
但是,在用C和C編譯了一個簡單的hello world測試程序并嘗試在目標板(運行Debian Linux的基于ARM9的板)上運行之后,它們立即出現故障.
由于目標板的可用工具有限且沒有gdb,我對如何進行調試感到有些困惑.我已經使用Linux托管的交叉編譯器成功構建并運行了其他代碼,因此它應該可以工作.
有任何想法嗎?
按照我已經構建并運行gdbserver的建議,我在主機上的gdb中獲得了以下內容:
程序收到信號SIGSEGV,分段故障.
0x00000000 in ?? ()
我認為這可能是標準c庫的問題,因此我刪除了所有調用,只剩下一個返回0的空main,使用-Wall -g hello-arm.cpp -static進行了編譯.作為測試,我使用Linux托管的交叉編譯器編譯了相同的源,并且可以正常運行并退出.我可以看到的唯一區別是Linux編譯版本的大小超過兩倍,并且file命令的輸出有所不同:
arm-elf-gcc:ELF 32位LSB可執行文件,ARM,版本1,靜態鏈接,未剝離
arm-*-linux:ELF 32位LSB可執行文件,ARM,版本1,靜態鏈接,用于GNU / Linux 2.4.18,未剝離
總結
以上是生活随笔為你收集整理的linux的静态编译elf无法调试,macos-运行arm-elf-gcc编译代码时出现段错误的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《热血仙域》装备升星系统全解 高手进阶指
- 下一篇: 龙高股份是做什么的