arm的編譯和調試
1
gcc -g test_gdb.c -o test_gdb
只有加入選項-g才能被gdb調試。
使用quit命令,輸入: quit 即可。
list:顯示10源代碼,再次輸入該命令顯示接下來的10行。
list1,10:顯示從第一行到第10行的代碼。
在gdb中最簡單的設置方式是:break 行號 在這一行設置斷點。比如break9 會在代碼的第9行設置斷點。當程序執行到第9行會自動暫停,此時,第9行代碼還未執行。
你也可以使用:break 函數名 的方式在某個函數處設置斷點,程序運行到這個函數內的第一條語句處會自動暫停。
使用命令:clear 行號 即可刪除。
兩種命令:next和step。兩者均可以一句一句的查看語句。但不同的是,next命令將函數調用看作一條語句,而step則會進入函數,一步步的執行函數內的代碼。
輸入命令:continue。它可以讓程序繼續運行,直到程序運行完畢或者遇到下一個斷點為止。
11.當程序在斷點處暫停執行時,如何查看當前變數的值?
使用print命令。
這時我總結的linux gdb,希望對你有幫助
Ⅱ 現在ARM編譯連接模擬調試用什麼軟體比較好
就用ADS就行,AXD沒用過,其他的如 IAR EWARM 也可以,或者RealView的MDK也行。
IAR里可以設置Options選項的Debugger的Simulator中的Driver為Simulator軟體模擬模式,然後一步一步跟蹤代碼。
以上那些軟體編譯通過後,生成的bin文件,可以載入Protues電路模擬軟體中使用,Protues中可以選擇你編程使用的Arm晶元型號,然後設置arm的屬性,選擇bin文件載入後,在這個虛擬的arm上跑你的程序。你也可以添加上相關的外圍電路。
Ⅲ ARM中C語言調用匯編程序,如何用ARM編譯器調試啊,急!!!求大家幫助
編程的時候用ADS1.2就可以了,新建一個工程,把匯編的.s和C程序的.c都加進去,注意好程序的入口位置,然後編譯,用AXD進行調試,查看內存,寄存器等值很方面
Ⅳ 用arm-linux-gcc編譯後的文件如何才能調試呢
arm-linux-gcc編出來的是用在 ARM 架構下的執行代碼,當然要在ARM CPU上才能運行了,PC上無法執行。
Ⅳ Arm常見調試方法有哪幾種呢。。
ARM應用軟體的開發工具根據功能的不同,分別有編譯軟體、匯編軟體、鏈接軟體、調試軟體、嵌入式實時操作系統、函數庫、評估板、JTAG模擬器、在線模擬器等,目前世界上約有四十多家公司提供以上不同類別的產品。下面就由福州卓躍教育具體介紹。
使用集成開發環境開發基於ARM的應用軟體,包括編輯、編譯、匯編、鏈接等工作全部在PC機上即可完成,調試工作則需要配合其他的模塊或產品方可完成,目前arm培訓班常見的調試方法有以下幾種:
1、 指令集模擬器
部分集成開發環境提供了指令集模擬器,可方便用戶在PC機上完成一部分簡單的調試工作,但是由於指令集模擬器與真實的硬體環境相差很大,因此即使用戶使用指令集模擬器調試通過的程序也有可能無法在真實的硬體環境下運行,用戶最終必須在硬體平台上完成整個應用的開發
2、 駐留監控軟體
駐留監控軟體(Resident Monitors)是一段運行在目標板上的程序,集成開發環境中的調試軟體通過乙太網口、並行埠、串列埠等通訊埠與駐留監控軟體進行交互,由調試軟體發布命令通知駐留監控軟體控製程序的執行、讀寫存儲器、讀寫寄存器、設置斷點等。駐留監控軟體是一種比較低廉有效的調試方式,不需要任何其他的硬體調試和模擬設備。ARM公司的Angel就是該類軟體,大部分嵌入式實時操作系統也是採用該類軟體進行調試,不同的是在嵌入式實時操作系統中,駐留監控軟體是作為操作系統的一個任務存在的。
3、 JTAG模擬器
JTAG模擬器也稱為JTAG調試器,是通過ARM晶元的JTAG邊界掃描口進行調試的設備。JTAG模擬器比較便宜,連接比較方便,通過現有的JTAG邊界掃描口與 ARM CPU 核通信,屬於完全非插入式(即不使用片上資源)調試,它無需目標存儲器,不佔用目標系統的任何埠,而這些是駐留監控軟體所必需的。另外,由於JTAG調試的目標程序是在目標板上執行,模擬更接近於目標硬體,因此,許多介面問題,如高頻操作限制、AC和DC參數不匹配,電線長度的限制等被最小化了。使用集成開發環境配合JTAG模擬器進行開發是目前採用最多的一種調試方式。
Ⅵ gnu arm程序在Linux上怎麼去編譯,怎麼debug呢
交叉編譯(不依賴第三方庫)類似於 gcc hello.c,如下:
akae@akae:~$ /opt/usr/local/arm/4.4.1/bin/arm-linux-gcc hello.c
前面是路徑+arm-linux-gcc.
Ⅶ 敘說ARM 調試環境和ADS的使用實驗中設置項目相關編譯參數的原因
任何一種開發環境,都可以設置參數,
諸如預定義的宏,連接地址,頭文件所在包含路徑之類的東西
都可以被稱為工程項目的參數。
////////////////////////////////////////////////////////////////////////////////////////////////
就專業程度和實在程度而言,杭州巨立安(JulianTec)
是您在arm架構下學習嵌入式Linux研發的上佳指導!
Ⅷ windows下如何調試准備在arm板上跑的程序
你ARM上跑的程序是基於linux系統嗎
你沒有板子就只能模擬下 skyeye可以模擬不少開發板 或者你乾脆只調試下算了
裝個虛擬機 在虛擬機上裝個系統 半個小時就弄好了
配置下編譯環境 裝下ARM-LINUX-tools
用VIM 或其他工具編譯調試
Ⅸ 如何使用arm-eabi-gdb調試android c/c++程序
1.獲取gdbserver
prebuilt/android-arm/gdbserver
2.獲取arm-eabi-gdb
prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin
3.啟動emulator(即qemu虛擬機,調式linux內核時用到)
$adb remount && adb push gdbserver /system/bin
adb shell
#gdbserver 10.0.2.2:1234 /system/bin/ping
$telnet localhost 5554
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Android Console: type 'help' for a list of commands
OK
]
KO: unknown command, try 'help'
**cmd**redir add tcp:1234:1234
OK
exit
Connection closed by foreign host.
$cdout/target/proct/generic/symbols/system/bin && arm-eabi-gdb ping
(gdb) r
Starting program:
Don't know how to run. Try "help target".
(gdb) target remote localhost:1234
Remote debugging using localhost:1234
0xb0000100 in ?? ()
(gdb) l
1779 usage();
1780 if (argc > 5)
1781 usage();
1782 } else {
1783 if (argc > 10)
1784 usage();
1785 options |= F_SOURCEROUTE;
1786 }
1787 }
1788 while (argc > 0) {