GDB调试No symbol “a“ in current context.问题笔记

 (这里博主是个初见程序设计一个月的大学牲,个人经验仅供参考,如有错误欢迎指正)

这个问题出现在使用watch命令监视变量a的时候

最最重要的第一个检查!

你的程序有没有在跑?

没有开始跑的时候是不能够开始监视的!

当程序没有在跑的时候,上下文也就没有相关变量信息

这是我这样的菜比初学者容易犯的一个错误

编译选项是否包含-g

-g是为了让你的exe文件包含调试信息,是为了调试而存在的

关于其他优化选项可以参考这篇:http://t.csdn.cn/K04L5

检查GDB版本

GDB 4.8以后的版本可以在GCC编译时,使用-gdwarf-2或者-gdwarf-3选项调试信息格式

从这位大佬的文章里读到:

编译的时候,如果使用了-g选项,GCC4.8及其以上的版本默认使用-gdwarf-4 -fno-debug-types-section选项,也就是使用DWARF4调试信息格式。而这之前的版本只支持DWARF2或者DWARF3。GDB 7.5,Valgrind 3.8.0和elfutils 0.154这些版本及其以上版本的工具默认使用DWARF4调试信息格式。要确保可执行文件调试信息格式与调试工具所支持的是一致的。如果gdb的版本只支持DWARF2或者DWARF3,在使用gcc编译的时候可以使用-gdwarf-2或-gdwarf-3选项来指定调试信息格式,已和gdb保持一致。

使用readelf PROCESS_NAME --debug-dump=info命令可把可执行文件(elf)中的调试信息格式dump出来
————————————————
版权声明:本文为CSDN博主「春日绿野」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sj_djw/article/details/91958035

目前能想到的就这么多,后面慢慢学吧。。。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 当出现"No symbol in current context"的提示时,意味着当前上下文中没有该符号的定义。这可能是因为程序执行到了一个新的作用域,而该符号只在之前的作用域中定义。举个例子,如果程序从函数func1进入函数func2执行,那么在func2中使用print func1中的变量时,就会出现"No symbol"的提示,因为func1的作用域仅限于func1内部。在你提供的示例代码中,当程序执行到main函数的abort()语句时,当前的作用域已经超出了len变量的定义范围,因此在此时使用print len命令会出现"No symbol in current context"的提示。\[3\] #### 引用[.reference_title] - *1* *3* [出现GDB No symbol "xxx" in current context的几种原因分析](https://blog.csdn.net/sj_djw/article/details/91958035)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [GDB调试入门与“No symbol in current context问题](https://blog.csdn.net/qq_44272681/article/details/122333778)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值