debug的小妙招

  • 如果要debug一个特定的方法,第一种办法就是把不需要用到的部分全部当做注释。第二种办法就是在方法的后面加一个判断语句,如果判断结果为失败,则直接return 函数结果(函数的结果可以和main函数的类型不同)
  • 当程序出现错误的时候,首先需要判断一下是什么类型的错误,如果是连接类错误,则需要查看相关的库的配置是否完善。如果是代码报错,第一步查日志、若其需要连接到服务器中去,则抓包查看是不是网络原因引起的。如果还是找不到原因,去看程序的堆栈。再查不到就只能看源码了
  • 不能忽视warning:我之前有一段代码在windows下运行良好,但是在linux下报错,用了很多方法都报错,后来大佬帮我看了一下,是warning中提示的一个文件不存在导致的,因此在debug的时候别忘了看看warning
  • vs调试库的方法
    • 生成库的解决方案
    • 运行main函数,指定main函数的exe文件输出到库的dll文件下面
    • 然后点击exe文件,在库文件的vs界面点击工具---附加到进程----选择进程(需要在main函数中sleep几秒,保证在程序运行前附加到进程)
    • 在调试的时候,可以将断点加入到main函数
    • 若断点提示为源文件与原始版本不匹配,则工具->选项->调试->"要求与原始版本完成匹配"去掉勾选
  • 在vs查找函数的方法
    • ctrl+f逐个查看
    • 将光标放到函数上,点击最上方的文件夹标志,查看所有
  • vs中的调试快捷键
    • f10:单步,不进入其他函数
    • f11:单步,进入其他函数,在没有进入调试的时候点f11可以进入调试模式中的第一句
    • f12转到文件定义
    • f5,运行到下一个断点,在没有进入调试的时候点f5可以进入调试模式中的第一个断点
    • ctrl+shift+f5重新开始调试,若存在断点,则在断点处停止
    • shift+f11,跳出当前函数的执行
    • 光标插入某一行,Ctrl+shift+f10,程序运行到这一行
    • 光标插入函数,Ctrl-f查找函数,点对上面的文件图标,查找所有的函数
    • ctrl+G转到某一行
  • vs上的调试工具小番茄:visual assistx
    • Ctrl+shift+f10,快速查找文件、禁用(启用)断点
    • alt+shift+S,快速查找函数
  • 文件的调试方法
    • 当程序设计到文件读写时,打开调试,在下面的窗口选择内存
    • 让光标悬浮于文件流之上,可以看到文件指针的地址
    • 复制地址,在下面的窗口搜索这个地址,得到相应文件流的数据
    • 可以在搜索时加减数字,得到偏移后的地址
  • 在调试时查找调用某个函数的函数
    • 查看堆栈
  • 调试多线程的方法
    • 查看线程
  • 调试视图
    • 打开调试-窗口-选择需要的视图
  • 调试会话的可执行文件
    • 在调试test程序的时候出现这个对话框
    • 项目->属性->常规->配置类型 修改为 应用程序(.exe)
  • 调试-窗口
    • vs中断点调试之后点击调试-窗口之后会有很多选项
      • 反汇编
        • 用来显示汇编语言
      • 堆栈
        • 用来显示函数的调用关系,即当前断点的前几个执行函数
      • 内存
        • 可以在变量处悬浮鼠标获得变量的内存地址,然后在最下面输入内存,查看那块内存的值
      • 断点
        • 显示所有断点情况
  • #if 0 #endif
    • 有时候在调试的时候需要消去一段代码,但是加/**/会有嵌套问题存在,所以用#if 0 代码段 #endif来消去一段代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值