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

开家网站建设培训原神网页制作素材

开家网站建设培训,原神网页制作素材,做购物网站支付需要怎么做,建设公司网站账务处理1 Debugging programs using gdb 1.1 gdb简介 gdb是一个功能强大的调试工具#xff0c;可以用来调试C程序或C程序。在使用这个工具进行程序调试时#xff0c;主要涉及下面几个方面的操作#xff1a; 启动程序:在启动程序时#xff0c;可以设置程序运行环境。设置断点:程序…1 Debugging programs using gdb 1.1 gdb简介 gdb是一个功能强大的调试工具可以用来调试C程序或C程序。在使用这个工具进行程序调试时主要涉及下面几个方面的操作 启动程序:在启动程序时可以设置程序运行环境。设置断点:程序会在断点处停止以便于用户 查看程序的运行情况。查看信息:在断点停止后可以查看程序的运行信息和显示程序变量的值。分步运行:可以让程序一个语句一个语句地执行这时可以及时查看程序的信息。改变环境:可以在程序运行时改变程序的运行环境和程序变量。 1.2 gdb常用指令 listl 行号显示binFile源代码接着上次的位置往下列每次列10行。listl 函数名列出某个函数的源代码。r或run运行程序。n 或 next单条执行。s或step进入函数调用break(b) 行号在某一行设置断点break 函数名在某个函数开头设置断点info break 查看断点信息。finish执行到当前函数返回然后挺下来等待命令print(p)打印表达式的值通过表达式可以修改变量的值或者调用函数p 变量打印变量值。set var修改变量的值continue(或c)从当前位置开始连续而非单步执行程序run(或r)从开始连续而非单步执行程序delete breakpoints删除所有断点delete breakpoints n删除序号为n的断点disable breakpoints禁用断点enable breakpoints启用断点info(或i) breakpoints参看当前设置了哪些断点display 变量名跟踪查看一个变量每次停下来都显示它的值undisplay取消对先前设置的那些变量的跟踪until X行号跳至X行breaktrace(或bt)查看各级函数调用及参数infoi) locals查看当前栈帧局部变量的值quit退出gdb 1.3 示例 1示例程序源码 编译源码时加上调试选项 2运行gdb 3在gdb中查看代码 4在程序中加入断点查看断点信息 5运行程序输出断点处的堆栈信息 6单步运行输出变量值 2 Analyzing coredump file by gdb 2.1 coredump文件简介 在Linux中当进程崩溃或异常终止时系统会将进程的内存状态写入一个coredump文件中这个文件包含了进程崩溃时的内存映像可以用于分析进程崩溃的原因。 2.2 coredump文件的存储路径 执行如下指令查询coredump文件的存储路径: cat /proc/sys/kernel/core_pattern 注意默认值是core表示当前目录否则就是在指定目录下。 2.3 coredump产生的原因 造成程序coredump的原因有很多这里总结一些常见情况 (1) 内存访问越界 这种错误最常遇见例如向strcmp函数中传入空指针导致的coredump (2) 多线程程序使用了线程不安全的函数 多线程程序应该使用可重入的函数(带有_r后缀的函数) (3) 多线程读写的数据未加锁保护 对于会被多个线程同时访问的全局数据应该注意加锁保护否则很容易造成coredump (4) 非法指针 随意使用指针转换。一个指向一段内存的指针除非确定这段内存原先就分配为某种结构或类型否则不要将它转换为这种结构或类型的指针而应该将这段内存拷贝到一个这种结构或类型中再访问这个结构或类型。 (5) 堆栈溢出 不要使用大的局部变量因为局部变量都分配在栈上这样容易造成堆栈溢出破坏系统的栈和堆结构导致出现莫名其妙的错误。 2.4 使用gdb分析coredump文件 gdb是Linux中一个强大的调试工具也可以用于分析coredump文件。使用gdb命令打开coredump文件然后运行backtrace(bt)命令可以查看崩溃时的函数调用堆栈信息。 gdb -c [core_file] [exec_file] # -c 指定转储的 core 文件 (gdb) bt # 查看当前堆栈断点所在的调用栈 注意需要在Makefile中添加调试选项 2.5 实例Mint mesh组网期间of_controller进程异常终止 2.5.1 在Makefile中添加调试选项如下图所示共修改了三处 1添加”-g3”编译选项 ① “-g1”, 不包含局部变量和与行号有关的调试信息只能够用于回溯跟踪和堆栈转储之用。 ② “-g2”, 此时产生的调试信息包括扩展的符号表、行号、局部或外部变量信息。 ③ “-g3”, 包含g2中的所有调试信息以及源代码中定义的宏。 2将”-O1”选项修改为”-O0” 使用”-O”选项时编译器会尝试减小代码尺寸并去除相关的调试信息因此这里修改为”-O0”即不进行优化。 3屏蔽strip语句 strip经常用来去除目标文件中的一些符号表、调试符号表信息以减小静态库、动态库和程序的大小。这里屏蔽strip语句即不对生成的bin文件执行strip操作。 2.5.2 使用gdb分析生成的coredump文件 1查看coredump文件的存储路径 2将coredump文件拿到编译环境的server上放在of_controller生成的目录下 3进入dockertoolchain安装在docker中然后执行: gdb -c [core_file] [exec_file] 4在gdb中执行bt 指令输出断点处的栈帧信息进程崩溃时的栈帧信息 结论通过进程崩溃时的栈帧信息可知进程在of_ctrl_user_dm_update_iad2.c文件第881行的of_ctrl_user_dm_ap_update()函数中发生异常。最上面的栈帧表示最后调用的函数
http://www.hkea.cn/news/14445100/

相关文章:

  • 一级域名和二级域名做两个网站建设网站公司联系方式
  • 怎样做外贸网站推广微信 wordpress php7
  • 网站建设怎么wordpress采集微信公众文章
  • 专门做定制化的网站企业网站软件下载
  • 响应式网站公司移动互联网开发技术有哪些
  • 东莞网站建设员wordpress播放纯音乐
  • 门户网站建设的特点设计网络网站建设
  • 凡科自助建站平台杭seo网站建设排名
  • 景德镇陶瓷学院校友做网站的上海设计公司排名前十强20
  • 不良网站举报中心官网龙岩关键词优化排名
  • 广东企业网站建设策划安卓上搭建wordpress
  • 大良营销型网站设计公司一分钟做网站
  • 潘家园做网站的公司网站外链建设的策略分析
  • 国外建站程序有没有淄博张店做兼职工作的网站
  • 做网站的怎样找客户做电商网站要服务器吗
  • 深圳东风大厦 网站建设.网站链接策略
  • 网站导航页怎么做怎样才能制作网站
  • 青海制作网站优化大师 win10下载
  • 青岛网站建设迅优域名不变修改网站怎么做
  • 襄阳市建设局网站百度电脑版网页
  • 属于网络营销特点的是北京seo排名服务
  • wordpress设置网站导航建造师人才网交流平台
  • 网站制作的英文建设一个网站花多少钱
  • 山东省建设工程 评估中心网站用discuz建设企业网站
  • 空投糖果网站开发网站发展阶段怎么做
  • 祥云网站建设网站建设 python
  • 企业vi设计公司旅游公司logo百度推广优化技巧
  • 网站维护模式ipv6网站如何做
  • 汕头网站开发定制网页设计与制作考试试题及答案
  • 那个旅游网站可以做行程国内h5网站欣赏