一、背景
在公司软件的实际开发中,当一个版本的客户端安装包本地调试、测试验证都没问题后外发,到用户实际机器上出问题了,怎么办?
很多人说,让客户给出复现步骤,我来试试!但是按照步骤操作之后还是没效果。这时你又想到了是不是环境的差异,但是又说不上来是哪里出问题。提供两个办法:1.写日志,编一个相近版本的dll给用户替换之后看日志(但是公司不让提供dll给用户)--这时在公司大群喊一声,看是否能找到公司内部人员复现;如果幸运找到了,就将dll给同事,通过写的日志排查;2.今天重点讲的是第二种方法,如果使用Visual Studio远程调试;
二、使用Visual Studio远程调试
远程调试工具(x86版本)-[remote Debugger](链接:https://pan.baidu.com/s/1hFYCrjULKcSkQx4tkPEY7w
提取码:6vcn)
在用户电脑双击运行这个工具:
通过ipconfig查看用户ip地址(跟用户得在同一个网络)
记录下用户的ipv4地址
然后打开VS的附加远程调试
在客户端电脑通过remote debugger设置无需身份验证(不要选择连接目标的下拉框,直接输入ip地址即可)
选择对应的进程附加(记得在用户那里启动相应的软件)
在这里选择用户已有的进程进行附加
然后打开符号加载工具(可以自动加载符号的,每个公司应该都有)
选择对应的dll文件进行加载
然后就是跟本地一样的断点调试了(本地的代码版本尽量跟安装包的保持一致)
注意事项:
一定要选择对应的进程,不然就算加载了对应的插件也找不到(有时候主进程还没起来,切得等你想要的进程起来后再选择对应的进程进行插件的搜索)