如何使用gdb调试native应用

如何使用gdb调试native应用

HarmonyOS
2024-05-28 21:35:00
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
fujiang1981

静态GDB下载链接

下载对应的gdb,放到开发板的bin目录下:

:: 设置目录可写 
hdc_std shell mount -o rw,remount / 
 
:: 32位 
hdc_std file send  .\gdb-7.10.1-arm6v /bin/gdb 
:: 64位 
hdc_std file send  .\gdb-8.3.1-aarch64-le /bin/gdb 
 
hdc_std shell chmod u+x /bin/gdb 
hdc_std shell rm -rf /system/lib/libsystem_filter.z.so 
echo reboot device !!! 
pause

可以通过两种方式调试应用:

  • 启动应用之后,gdb attach已经运行的应用。

# 通过bundle name查询应用pid 
 
ps -ef | grep 'ohos.example.myapplication' 
 
  -f  会列出完整的应用进程信息: 
字段信息从左到右依次是: 
USER:12=UID, PID, PPID, C, STIME, TTY, TIME, ARGS=CMD 
第二个字段信息就是PID 
 
# gdb 挂载对应的进程 
 
gdb attach PID 
 
# 加载完成之后, 按c应用继续运行程序 
c
  • 启动应用调试

所有应用的父进程都是 appspawn, 通过attach到父进程上,然后通过设置 set follow-fork-mode child,来调试子进程。

# 查询 appspawn的进程号 
ps -ef | grep 'appspawn' 
 
gdb attach PID 
 
# 设置gdb在fork之后,调试子进程 
set follow-fork-mode child 
 
# 按c 继续程序 
c 
 
# 桌面上点击图标,启动应用
分享
微博
QQ
微信
回复
2024-05-29 22:48:35
相关问题
如何在HarmonyOS 进行GDB调试?
671浏览 • 1回复 待解决
NAPI介绍(九) - gdb调试
158浏览 • 1回复 待解决
如何使用远程真机调试和运行应用
3679浏览 • 1回复 待解决
native如何使用类的静态方法
457浏览 • 1回复 待解决
Native如何使用hilog打印出日志信息
875浏览 • 1回复 待解决
native使用fork函数,出现cppcrash
411浏览 • 1回复 待解决
DevEco有没有清理调试应用缓存的功能
2430浏览 • 1回复 待解决
Native工程中如何使用其他三方so库
808浏览 • 1回复 待解决
DevEco Studio怎么使用真机进行调试
6821浏览 • 1回复 待解决
如何调试引用的外部so
345浏览 • 1回复 待解决
鸿蒙应用如何判断是否使用debug签名?
1799浏览 • 1回复 待解决
使用Native、XComponent和EGL绘制图形
467浏览 • 1回复 待解决
如何对Serviceabbility进行调试
1440浏览 • 1回复 待解决