gdb 调试 TuMediaService

github地址

起因

  • 首先需要有 armgdb 环境
  • 运行 ./armgdb ./TuMediaService 进入 gdb 模式
  • b hi3531_trcod_interface.cc:98 打断点
  • r 运行程序
  • print this->vdec_config_path_ 打印关键值

在这里我们关注的值已经被修改,由于程序中没有刻意对这一块内存进行修改,所以一开始怀疑是不是其他线程改写的,当把其他线程都禁掉,在单线程的情况下跑,还是存在这个问题.由于这边是基类的最后一个变量,分析基类和派生类的代码后,大致定位在这里:

问题可能出现在最后一行的数组,当索引为负数才可能出现向前面内存写入的情况,而且多处地方给数组内部赋值为 -1 ,和错误相符合,但是在所有地方都加了判断和保护,打印出来也没有异常,而且

进一步定位是在这里的 for 循环出了问题,执行完 for 循环,值发生了变化,刚开始以为是最后一次产生了问题,但是单步调试下,在 124 次,关注值发生了改变。查看了这个数组中的值是一个结构体,会不会问题出现在这个结构体,最后发现原来是有人更新了这个结构体却没有上传导致,数据结构发生了变化,这个问题还是值得谨记的。以后要避免这类问题,库和头文件的上传和下载尽量使用脚本,不要手动拷贝。

gdb 调试 TuMediaService相关推荐

  1. 使用 GDB 调试多进程程序

    使用 GDB 调试多进程程序 来源 https://www.ibm.com/developerworks/cn/linux/l-cn-gdbmp/index.html GDB 是 linux 系统上常 ...

  2. GDB调试--以汇编语言为例

    #rpm -qa |grep  gdb 下载: 安装 #tar -zxvf #./configure #make 使用GDB 以汇编语言调试为例 汇编语言实现CPUID指令 CPUID cpuid是I ...

  3. GDB 调试 Mysql 实战(二)GDB 调试打印

    背景 在 https://mengkang.net/1328.html 实验中,我们通过optimizer_trace发现group by会使用intermediate_tmp_table,而且里面的 ...

  4. 用gdb调试mpi程序的一些心得

    Linux下MPI (Message Passage Interface) 的程序不太好调试,在windows下vs2005以上的IDE有集成的简便MPI调试工具,没有用过,有兴趣的可以试验一下.下面 ...

  5. gdb php-fpm,使用 gdb 调试 php-fpm 异常错误

    相关资源下载GDB简介 GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具.如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具有比VC.BCB的图形化调试器更强大的功能. 问题 ...

  6. Linux基础 30分钟GDB调试快速突破

    引言 Linus心灵鸡汤 在*nix开发中有道卡叫gdb调试,不管你怎么搞. 它依然在那丝毫不会松动.今天致敬一个 活着的传奇 Linus Torvalds Unix 始于上个世纪60年代,在70年代 ...

  7. SLAM工具|GDB调试从入门到精通

    前言 对于windows平台下,VS下调试简单又方便,那么在linux系统下,该如何进行代码的调试呢? gdb是linux下非常好用的一个调试工具,虽然它是命令行模式的调试工具,但是它的功能非常强大, ...

  8. gdb调试 print打印不出变量值或者不准确

    编译选项加了 -O,即便是-O0,也不能正常显示,需要加上-gstabs+这个编译选项, -gdwarf-2这个编译选项会与-gstabs+冲突,去掉-gstabs+,只保留-gdwarf-2选项可以 ...

  9. 比较全面的gdb调试命令

    用GDB调试程序  GDB是一个强大的命令行调试工具.大家知道命令行的强大就是在于,其可以形成执行序 列,形成脚本.UNIX下的软件全是命令行的,这给程序开发提代供了极大的便利,命令行 软件的优势在于 ...

最新文章

  1. java各种包的用途
  2. 线下活动 | 揭秘大数据背后的京东虚拟平台(免费报名中)
  3. JAVA 串口编程 (三)
  4. 数据量太大?用数据库水平切分搞定!
  5. WCF并发连接数的问题
  6. BZOJ4372 烁烁的游戏(动态点分治+线段树)
  7. win8.1使用及优化
  8. 第二季-专题17-触摸屏显身手
  9. 自抗扰控制(ADRC)仿真系统(matlab/simulink)的搭建
  10. 2022年某市新型智慧城市一网统管顶层设计方案(WORD)
  11. C. Anton and Fairy Tale
  12. Unity Obi插件修改到支持URP
  13. iOS home键直接退出
  14. 一个人生活,如何摆脱孤独提升幸福感?
  15. 安全合规/GDPR--27--我们通过了GDPR合规认证
  16. SOA、SOI和SOE
  17. l28n和开发版_*** am335x开发板的疑问以及解答
  18. 抖音信号干扰特效怎么做?手把手教你AE制作
  19. 登录用户信息存session中
  20. VMware vRealize Automation 8.2安装

热门文章

  1. 微信公众平台网站开发JS_SDK遇到的bug——wx.config注册提示成功,但部分接口注册失败问题
  2. linux 挂在iso文件,linux 挂载iso文件安装文件 与 网络yum的搭建
  3. java拉丁正方形_LeetCode JAVA解题---824. 山羊拉丁文
  4. leetcode261. 以图判树
  5. UNIX(进程间通信):16深入理解Socket
  6. 《Java8实战》笔记(12):新的日期和时间API
  7. LInux学习笔记(四)-----实操排雷
  8. live555 接收rtsp视频流流程分析
  9. 写博客的好处,专家告诉你
  10. gcc编译流程及中间表示层RTL的探索