DEBUG学习
前言
DEBUG的学习,强烈推荐阅读官方文档:https://docs.microsoft.com/zh-cn/visualstudio/debugger/find-your-debugging-task?view=vs-2019#view-the-order-in-which-functions-are-called面面俱到而且详细,看完以后妈妈再也不用担心DEBUG了,
如果看得进去官方的海量文档,那么就不需要往下看了,直接点传送门,文中的转载多为原作者的简化总结,方便快速阅读.
内容多为转载,均会附带出处.自己写截图什么着实麻烦,而且再怎么写也没有官方文档面面俱到,专业详细.一键三联,下次一定,都没有尊重知识产权的前提下的白嫖香.
记录下来,以免每次用到,疯狂谷歌,方便快速查找.
基本DEBUG技巧
这段知识推荐阅读知乎的这篇文章,常用的技巧讲述的很清楚,附带动图.
- F5 开始使用调试器运行程序
- F9 在当前行设置断点
- F10 运行到下一个断点处
- F5 从被调试的已停止程序恢复执行
- F11 步进到函数内(如果当前程序指针指向一个函数)
- F10 步过函数(如果当前程序指针指向一个函数)
- Shift+F11 步出执行的函数
- 暂停执行
- 附加到进程
- 鼠标悬停时快速查看源代码中的元素
- 调试窗口:局部变量、监视、即时窗口、模块、调用堆栈、异常设置
原文链接:https://zhuanlan.zhihu.com/p/157625640
多线程调试技巧
LINQ调试
谈到LINQ调试,那就不得不说LINQPad这个工具,LINQ调试神器,下载链接
LINQPad官网:https://www.linqpad.net/
LINQPad云盘下载链接:
https://pan.baidu.com/s/1B_vznhKvwRzeAT_pBbsJfQ
提取码:3ddl
复制这段内容后打开百度网盘手机App,操作更方便哦
官方文档:https://docs.microsoft.com/zh-cn/visualstudio/debugger/debugging-linq?view=vs-2019
简单化总结类博文推荐:https://blog.csdn.net/weixin_42930928/article/details/91953262
使用日志进行BUG跟踪调试
Log4net使用:https://www.cnblogs.com/oucsheep/p/9467932.html
log4net配置: https://www.cnblogs.com/weixiaowei/p/8253228.html
log4net.Core.LoggerManager:https://blog.csdn.net/eatonfang/article/details/40622945
非常完善的Log4net详细说明:https://blog.csdn.net/binnygoal/article/details/79557746
总结
DEBUG的时候一定要细心,而且还要有耐心,软件设计之初就要把写日志加入进去.最近被一个LINQ2DB的BUG折腾了两天,着实学到不少,一个小数点最后牵扯出.类库,数据库,发包工具,安装包,诸多问题.导致软件崩溃,捕获到的异常,日志记录的错误,三者竟然都不一样,最后才发现原作者进行了山路十八弯的计算,最后BUG就转移到别的变量上了,最终导致软件崩溃,而且无法正常捕获到错误的地方.