当前位置: 首页 > wzjs >正文

巴顿品牌设计公司seo关键技术有哪些

巴顿品牌设计公司,seo关键技术有哪些,深圳开发微信公众号,分销网站方案一、栈回溯 1.1 栈回溯的原理 调试程序时,经常发生这类错误: 1.读写某个地址,导致程序崩溃 2.调用某个空函数,导致程序崩溃在异常处理函数中,可以打印出”发生错误瞬间”的所有寄存器。 我们调试时,可以…

一、栈回溯

1.1 栈回溯的原理

调试程序时,经常发生这类错误:

1.读写某个地址,导致程序崩溃
2.调用某个空函数,导致程序崩溃

在异常处理函数中,可以打印出”发生错误瞬间”的所有寄存器。

我们调试时,可以根据这些寄存器,知道发生错误的位置。

但是,光知道发生错误的位置还不够! 比如,根据打印信息知道在C函数里发生错误,但是你无法确定是在哪个调用链上出错:

1.A > B > C时出错?
2.D > C时出错?

image.png

C语言函数的返回地址,保存在栈里:

image.png

栈内容示例:

image.png

1.2 修改异常处理函数打印栈内容

发生错误时,异常函数如何处理?

image.png

发生错误时,栈的使用情况:

image.png

修改HardFault_Handler:

IMPORT rt_hw_hard_fault_exceptionEXPORT HardFault_Handler
HardFault_Handler    PROC; get current contextTST     lr, #0x04               ; if(!EXC_RETURN[2])ITE     EQMRSEQ   r0, msp                 ; [2]=0 ==> Z=1, get fault context from handler.MRSNE   r0, psp                 ; [2]=1 ==> Z=0, get fault context from thread.STMFD   r0!, {r4 - r11}         ; push r4 - r11 registerSTMFD   r0!, {lr}               ; push exec_return registerTST     lr, #0x04               ; if(!EXC_RETURN[2])ITE     EQMSREQ   msp, r0                 ; [2]=0 ==> Z=1, update stack pointer to MSP.MSRNE   psp, r0                 ; [2]=1 ==> Z=0, update stack pointer to PSP.PUSH    {lr}BL      rt_hw_hard_fault_exceptionPOP     {lr}ORR     lr, lr, #0x04BX      lrENDP

打印寄存器和栈:

image.png

image.png

1.3 分析栈找出函数调用关系

要分析栈,需要得到程序的反汇编码:

image.png

fromelf  --text  -a -c  --output=all.dis    F103_Moduel\F103_Moduel.axf

根据PC值在反汇编文件中找到发生错误的位置:

image.png

发现函数C太简单,它根本没有使用栈,函数C执行完,直接返回到LR。

在打印的信息中,LR=0x08000383,去掉bit0,就是:0x08000382

根据这个值,在反汇编文件中找到函数C的调用者,是函数B:

image.png

在函数B的入口处,发现使用了8字节的栈,并且保存了LR:

image.png

分析函数B的栈:确定返回地址LR=0x08000355,bit0清零后就是0x08000354:

image.png

image.png

在反汇编中搜0x08000354 ,确定函数B的返回地址是函数A:

image.png

在函数A的入口处,发现使用了8字节的栈,并且保存了LR:

image.png

分析函数A的栈:确定返回地址LR=0x08001d99,bit0清零后就是0x08001d98。

这是TestDebug函数。

image.png

最终,调用链为:

image.png

二、修改bin文件实现断点

点击深入解析栈回溯技术:如何通过异常处理精准定位程序崩溃点查看全文

http://www.dtcms.com/wzjs/121998.html

相关文章:

  • 重庆市城乡建设委员会门户网站电商代运营公司十强
  • 长春长春网站建设网搜索排行榜
  • 企业网站网页设计有哪些广州seo网站推广公司
  • 如何做微网站企业推广软件
  • 常德网站建设网站企业网站多少钱一年
  • 济南网站建设培训学校店铺推广软文300字
  • 手机门户网站网站关键词排名优化
  • 虚拟空间能建多个网站广告软文200字
  • 网站建设程序网站seo分析工具
  • 网站建设人员组成web网页模板
  • 响应网站怎么做教学视频云南疫情最新消息
  • 辽宁专业网站建设应用商店搜索优化
  • 第一ppt官网入口石家庄seo全网营销
  • wordpress数据备份插件网站排名优化培训
  • 网站弹出网络营销推广方案ppt
  • 北京交友最好的网站建设自己制作一个网页
  • 官方网站建设的四个步骤企业网站推广的方法有
  • excel做网站页面布局sem竞价是什么
  • 阿里云最低服务器可以做几个网站seo排名查询
  • 宁波网站建设公司代理深圳市社会组织总会
  • 制作个人网站的软件淘宝指数查询官网
  • 网站域名被注销在哪个平台做推广比较好
  • 深圳图派做的网站后台加什么赣州seo公司
  • 高创园网站建设方案怎样打百度人工客服热线
  • 做360全景的网站360广告推广平台
  • 普洱做网站的报价百度网盘客服电话人工服务
  • 深圳网站开发建设培训机构网页分析报告案例
  • 物流行业网站建设市场分析暴风seo论坛
  • 做向日葵的专业网站福州seo扣费
  • 网站建设优化规划书系统优化软件有哪些