在 vsc 中使用 gdb 无法调试,大约是 gdb 的 bug。
具体表现为调试突然中断,vsc 调试控制台中出现类似 Debugger exit unexpectedly
字样(我英语不好不要为难我(悲
报错内容如下:
/build/gdb-wIRHdd/gdb-12.0.90/gdb/value.c:1731: internal-error: value_copy: Assertion `arg->contents != nullptr' failed.
根据错误报告,应该修改上面的 value.c
就能修复这个 bug。但是我找不到这个文件,因此暂时没法修。
可以换成 gdb-11。
update on 8.12
value.c 是 gdb 源码中的文件,不过该 bug 在 gdb-12.1 已修复(虽然目前不能用 apt 安装),可以手动去下载源码编译安装,具体流程略有些麻烦(懒得写
并且如果要安装 gdb-11 也要手动下载源码(大约?)所以不如直接安装新版本。
可以自行去网上查询教程,这里贴出我参考的文章和我在安装中遇到的问题供大家参考。
不过这个 bug 大约过段时间(不知多长时间)就可以 apt 更新修复了。因此电脑上是旧版本 gdb 的同学们可以过段时间再更新,防止出现 bug。
文章 & 网站
注:这是 GNU 相关软件的链接,gdb 和 gmp 在里面找就行了,注意尽量选最新版本。
问题
1. gdb 编译报错?
检查 g++、gcc 是否为最新版本。如果还出现此问题,尝试安装 gmp 库。
2. gmp 编译报错?
大概率是由于没有 m4 库(看报错提示而定),m4 可以用 apt 安装,直接安装后编译就没有问题了。
3. 出现其它错误
尝试用 sudo 运行指令。如果还是不行,就进行 Baidu/Bing First Search 罢(无慈悲
完成后
执行 gdb -v
后,如果版本显示 gdb-12.1 就证明安装成功了。接下来就可以快乐地享受没有 bug 的 gdb 了。
因为写某 @Star 的题线段树太难调所以花了点时间把这个修了。
共 2 条回复
而且最后放弃了(不过大家好像都是 NOI Linux 用户所以不存在这个问题那我不相当于白发