WDS2期第31课 2 app调试strace 应用调试gdb,另外的-安装某些库提示未定义找不到时处理 -I没有去编译库里找 根据结果修改头文件

本文介绍strace和gdb的使用方法,strace作为调试工具,通过跟踪应用程序的系统调用来诊断问题,gdb则用于源代码级别的调试,两者结合能有效提升程序调试效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章目录

strace

strace是一种调试工具,需要自己下载 打补丁 编译然后生成可执行文件。用可执行文件跟踪app输出到日志。
应用程序调试之使用strace strace -o log.txt rmmod app trace父进程创建app子进程记录日志

strace 原理

在使用时是这样: strace -o log.txt rmmod app,跟踪某个app
strace本身是父进程,通过上面会创建app子进程,app在进行系统调用时,read write open时会发生swi异常(软中断异常),在异常处理函数中判断是否被跟踪,若被跟踪则休眠等待父进程处理结束再往下执行。(通常父进程记录子进程调用的系统函数等等)

gdb

gdb在pc运行,
gdb-server在ARM 板子上运行,gdb-server是arm app的父进程。

  1. 设置 host target

  2. 编译gdb

  3. 安装 到 tmp
    默认安装到pc机,可以改变安装目录,查看vi Makefile,修改默认安装目录的前缀,prefix

  4. 编译gdb-server,进入server目录,
    头文件在 -I选项里找,还会在编译工具的库里找,如果提示在-I中找不到,查看系统变量编译工具库在哪里echo $PATH,然后进入编译工具所在的库,查找找不到的东西grep ”XXX“ * -nR,根据结果修改头文件就ok了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值