问题及思路
本人用的 ubuntu 18.04版本,默认安装的 gdb 是 8.1.1版本的,在多进程调试是会报错 。
lsb_release -a
查看 系统版本
gdb -v
查看 gdb 版本
Warning:
Cannot insert breakpoint 1.
Cannot access memory at address 0x794
Cannot insert breakpoint 2.
Cannot access memory at address 0x7f3
查资料说 gdb 8.x的版本 多线程调试有问题。
尝试去 在当前系统环境下 降低gdb 版本,百度找不到办法,因为指定安装版本会报 “找不到指不定版本的问题”。
所以尝试安装新的 Ubuntu系统,从而安装不同的 gdb版本,因为默认安装版本不同。
下边是 Ubuntu各个版本的下载源:
下载 Ubuntu 16.4版本的镜像文件 或者各个版本的镜像文件地址
中国科学技术大学
http://mirrors.ustc.edu.cn/ubuntu-releases/16.04/
阿里云
http://mirrors.aliyun.com/ubuntu-releases/16.04/
兰州大学
http://mirror.lzu.edu.cn/ubuntu-releases/16.04/
北理工
http://mirror.bit.edu.cn/ubuntu-releases/16.04/
浙大
http://mirrors.zju.edu.cn/ubuntu-releases/16.04/
下面链接为Ubuntu各个版本服务器,可自行下载
http://mirrors.melbourne.co.uk/ubuntu-releases/
参考自:下载 Ubuntu 16.4版本的镜像文件 或者各个版本的镜像文件地址
安装新的系统版本,安装新的 gdb版本,判断是否可以解决问题
确实可以解决多进程调试的问题,不会出现如下问题
没图,不过确实可以。
后话:不过同一个虚拟机下安装了两个 Ubuntu系统,同时启动,想要 通过Windows连接,还是出现了问题,包括通过 VS code同时连接。但是多进程的调试可以。
问题是这样的:
就是又安装了 16.4的Ubuntu版本后,在18版本的终端 ifconfig 发现找不到 ens33了,只有 docker 和 lo。
解决方法
-
ifconfig -a
出现 ens33 不过分配的以太网,没有想要的 inet
-
sudo dhclient ens33
通过 dhclient 命令来获取ip地址。 -
sudo ifconfig ens33
就分配了 ip 地址
参考自:添加链接描述