首页 > 其他分享 >gdb 环境问题:Backtrace stopped: previous frame identical to this frame (corrupt stack?)

gdb 环境问题:Backtrace stopped: previous frame identical to this frame (corrupt stack?)

时间:2024-04-06 10:32:28浏览次数:22  
标签:identical 问题 Backtrace frame stripped gdb so 32 2.22

背景

虽然才刚进入新环境,但是由于项目交付节点临近,领导主要让我分析、解决以前遗留的问题,保证软件的稳定性。

其中有一个问题现象是:片间通信进程(负责SOC和MCU交互的服务)偶现阻塞问题。经过短暂的分析,我怀疑是因为资源竞争导致的死锁问题。针对死锁问题,我认为有两种分析方式。

  • 分析代码。分析各线程、进程之间的临界资源,在时序上,是否存在死锁的情况。若对代码架构比较熟悉,该方式应该是不错的方式。
  • gdb调试。当时出现死锁时,肯定是存在了2个以上的线程在等待资源的释放,此时,我们可以通过gdb -p查看对应进程、线程的堆栈信息,在wait哪一个临界资源。这样能够很快的定位到资源竞争的逻辑,但是需要问题复现。

因为是偶现问题,理论上应该采取方式一。但是因为此时我还有别的问题需要处理,于是选择了方式二:准备一个拷机环境,当问题复现时,直接用gdb调试分析,应该能节约很多时间。

计划是美好的,但是在搭建拷机环境中,遇到了gdb使用的问题,一直会提示Backtrace stopped: previous frame identical to this frame (corrupt stack?)错误,导致无法查看完整的堆栈信息,心想:若gdb无法使用,及时问题复现,也不能定位到阻塞点,应该优先解决该问题

最终经过查阅资料以及咨询模组供应商,最终解决了。这个过程包括分析的思路,以及和供应商之间的battle。希望能给遇到的朋友一些建议、帮助

标签:identical,问题,Backtrace,frame,stripped,gdb,so,32,2.22
From: https://blog.csdn.net/xieyihua1994/article/details/137422382

相关文章

  • 记一次dlopen使用问题导致Framework重启,tombstones、pmap与反汇编分析(上)
    关键词:AndroidFramework动态库动态链接Binder1、事件起因AndroidStudio一次更新后发现installApp,设备就重启了,跑了一遍开机动画但不是从开机第一屏开始重启,tombstones内容查看发现是surfaceflinger挂在libbinder.so,那installapp做了什么这个不得而知,理论上有问题应该挂的......
  • Quasar framework build if not a root path
    build:{target:{browser:['es2019','edge88','firefox78','chrome87','safari13.1'],node:'node16'},vueRouterMode:'hash',//availablevalues:......
  • Metasploit Framework 6.4 (macOS, Linux, Windows) - 开源渗透测试框架
    MetasploitFramework6.4(macOS,Linux,Windows)-开源渗透测试框架Rapid7Penetrationtesting请访问原文链接:https://sysin.org/blog/metasploit-framework-6/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org世界上最广泛使用的渗透测试框架知识就是力量,尤......
  • Pandas Dataframe合并连接Join和merge 参数讲解
    文章目录函数与参数分析otheronhowlsuffix,rsuffix,suffixesleft_index,right_index函数与参数分析在pandas中主要有两个函数可以完成table之间的joinJoin的函数如下:DataFrame.join(other,on=None,how=‘left’,lsuffix=‘’,rsuffix=‘’,sort=False,va......
  • EntityFramework Core Scaffolding
    EntityFrameworkCodeFirst是从代码生成数据库,叫做数据迁移。EntityFrameworkDatabaseFirst是从数据库生成代码,叫做脚手架(Scaffold)。本文介绍脚手架入门。用数据库图形界面(如SQLiteStudio)生成数据库模式,插入数据等,已经发展成熟,标准化了,非常直观,即使是生手也很容易掌握。......
  • Microservice - Solution Selection for Distributed Transaction Framework
      ......
  • Camstar : IFrame菜单挂一个外部网站的页面
     如果设置变量传参: 这个是页面定义了两个固定变量:VP上的不同VP共用一个class。还有传递当前登录用户的: ......
  • Radio Frameworks 启动流程
    RadioFrameworks收音机服务进程在Android中在frameworks/base/services/java/com/android/server/SystemServer.java/startOtherServices中被调用启动一、加载Radio权限配置文件SystemConfig在构造函数中加载权限配置文件时,会在多个文件目录下找权限配置文件,比如环......
  • mongo Cannot autogenerate id of type java.lang.Object for entity of type com.tyc
    1、mongo集群存入实体类数据报错:  Cannotautogenerateidoftypejava.lang.Objectforentityoftypecom.tycoon.frame.entity.Transaction!2、通过排查实体类 Transaction的定义的Object为java ClassObjectistherootoftheclasshierarchy.Everyclasshas......
  • PHP debug_backtrace() 函数
    定义和用法debug_backtrace()函数生成backtrace。该函数显示由debug_backtrace()函数代码生成的数据。返回一个关联数组。下面是可能返回的元素:名称类型描述functionstring当前的函数名。lineinteger当前的行号。filestring当前的文件名。classstring当......