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) {