vs2013调试源码错位问题最新解决方法

最近调试某个.h里的inline函数时,调试器的当前调试行,和实际代码功能总是不符(用汇编窗口可以清楚的看到),正好差两行

这个问题还以为是大文件特有的,这个.h有一千多行

其实这个问题已经存在几个月了,今天实在忍不住,写了个简单的test函数到处插入,最终定位到一个函数有问题

template<typename T>
  static bool get(lua_State* L, LuaType<Type_Bool>*, int index, T& value)
  {
   bool ok = lua_isboolean(L, index) != 0;
   if (ok)
    value = lua_toboolean(L, index) != 0;
   else
   {
    bool ok = lua_tointeger(L, index) != 0;
    if (ok)
     value = lua_tointeger(L, index) != 0;
    else
     value = false;
   }
   return ok;
  }

本以为是里面的行末注释有问题,删了注释发现还不行,所以就想看看这段函数的编码有没有问题,用UltraEdit打开,想找那个隐藏字符显示的功能一时没找到

换EditPlus,还是一时没找到,但是此时突然发现两个编辑器的行号不对应,再仔细一看,发现EditPlus里有几个行居然没换行显示在同一行里了!而UltraEdit是换行的

在EditPlus里重新把这个函数换行好,回到VS再调试再也没有源码调试错位问题了!

看来问题就在于调试器或者说链接器对文本的解析,跟VS Editor的解析,还是稍微有一点差距的


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值