gdb调试过程中出现行号错位 您所在的位置:网站首页 vue3调试行号不准 gdb调试过程中出现行号错位

gdb调试过程中出现行号错位

2024-06-29 16:22| 来源: 网络整理| 查看: 265

gdb调试过程中出现行号错位的情况,原因一般有两个:

1. 编译器的优化可能把某些语句给优化掉了。

解决这种情况很简单,makefile中-O2这类的编译优化去掉,换成最简单的g++ -g $^ -o $@ $(INCLUDES) $(LIBS)

2.文件格式转换问题。dos格式文件传输到unix系统时,会在每行的结尾多一个^M,造成文件格式混乱,换行错误,由此导致gdb调试中行号错误。

dos,unix格式处理的差别:DOS是回车+换行,而在UNIX下,只有回车,无换行!

用脚本来判断文件是哪种格式:

file filname|grep -qv ^M && echo file is unix formart || echo file is dos formart

其他方式判断文件格式:vim打开

这种有[dos]的为dos文件格式

这种即unix文件格式

解决方式

   vi  dos.txt            :set fileformat=unix     :w 

       这样文件就转换成unix格式文件了, 一般在windows机器上编写好了文件传到unix下就可能会出现这样的情况.   用命令:set ff?   可以看到dos或unix的字样.    用:set ff=unix把它强制为unix格式       也可以用sed 这样的工具来做:   sed 's/^M//' filename > tmp_filename   其中^M是同时Ctrl+V+M按出来的,表示回车。         

最简单的方式:dos2unix filename



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有