gdb无法逐语句调试
起因
事情原因是这样的,上个月一直在学习汇编语言,看的书是<<X64汇编语言:从新手到AVX专家>>,主要在Linux环境中练习和调试汇编的.大多数是使用腾讯的轻量云(买了三年,一直没怎么使用过),安装了NASM和GCC/GDB等软件,NASM编译汇编源文件到目标文件,在用GCC编译成可执行程序.有一天在用XShell连接服务器时,看到提示可以升级内核(升级前使用Ubuntu 20.04,内核版本:5.4.0),于是有了手欠的操作,便是升级了内核(Ubuntu升级后:22.04LTS,内核版本: 5.15.0).升级后发现GDB无法逐语句调试汇编代码了.刚开始还以为是升级导致了.升级后GCC和GDB都更新了版本.在卸载GDB之后,重新安装后,依然无法逐语句调试.在准备重新安装系统的时候,突然想起是不是NASM编译器的问题.便去下载了最新的NASM源码:
#下载最新的nasm,这里只是学习,所以使用rc版本,也没什么问题
curl -O https://www.nasm.us/pub/nasm/releasebuilds/2.16.02rc7/nasm-2.16.02rc7.tar.gz
源码安装:
#解压nasm
tar -xvzf nasm-2.16.02rc7.tar.gz
#进入nasm目录
cd nasm-2.16.02rc7/
#执行configure
./configure
#安装
make && make install
查看nasm版本:
在通过GDB调试汇编语言的可执行程序:

说说当时为什么手欠升级系统,其实主要想看看五点多的linux是否支持龙芯的Loongarch架构:
在Linux五点多的内核版本支持的CPU架构,还没有包含Loongarch架构
秋风
2024-01-17