一般嵌入式板子上的程序都是交叉编译出来的,PC负责编译,板子负责运行。

板子上不可直接进行gdb调试

当执行l指令时,会报找不到源文件错误。

原因:在pc上编译时,gcc会加一个-g参数用来支持adb调试,会记录编译目录到程序中。
https://blog.csdn.net/nicholas_duan/article/details/117515155

如果在pc上编译,在pc上使用gdb调试是正常的,但是如果在板子上进行gdb调试就会报错。

gdbserver的基本使用

https://blog.csdn.net/dong__ge/article/details/126322091

1.clion调试android平台
调试步骤

1.在目标板上启动gdbserver
gdbserver64 :1234 程序,注意android平台要使用gdbserver64,如果用gdbserver会报错:com.jetbrains.cidr.execution.debugger.backend.gdb.GDBDriver$GDBCommandException: Invalid hex digit 59
2.clion里attach上:

调试问题
  • so库的断点无法调试:
    gdbserver: Unable to determine the number of hardware watchpoints available.
    gdbserver: Unable to determine the number of hardware breakpoints available.

将调试程序编译成32位,使用32位的gdbserver调试没有报这个错,但是断点仍然catch不上。

分类: gdb

0 条评论

发表回复

您的电子邮箱地址不会被公开。