gdb调试过程中出现行号错位 | 您所在的位置:网站首页 › vue3调试行号不准 › gdb调试过程中出现行号错位 |
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 实验室设备网 版权所有 |