• 2018-8-10-调试-ms-源代码


    title author date CreateTime categories
    调试 ms 源代码
    lindexi
    2018-08-10 19:17:19 +0800
    2018-2-13 17:23:3 +0800
    调试 dotpeek 反编译

    如果需要调试 WPF 源代码或框架源代码,那么需要使用 DotPeek。

    首先需要下载 dotPeek ,可以到官网下载 dotPeek: Free .NET Decompiler & Assembly Browser by JetBrains 还可以到 csdn 下载

    首先打开 dotPeek 然后点击启动符号服务器,所有符号。

    然后点击工具设置,可以看到这个页面

    然后打开 VS 工具选项,在调试设置符号,刚才已经复制了,现在添加就好

    然后还需要去掉微软的服务和本地缓存

    然后写一个呆磨进行测试

    现在就可以开始调试框架源代码了

    只需要在一些函数使用断点,然后堆栈跳转,假如我在 MouseDown 写一个断点,在触发按下,点击堆栈,可以看到外部代码。右击外部代码显示,这样就可以看到 垃圾wr 做的,双击他,可以跳到一个页面,点击加载就可以。

    这时候可以看到 dotPeek 在反编译,这个时间比较长,需要去做一些你喜欢做的事情,回来就可以发现 dotPeek 反编译好而且你看到 ms 源代码,这时候可以尝试源代码断点,但是不是所有地方都可以断点。

    如果你发现无法进入代码,那么尝试安装 Resharper ,如果还是不行,那么需要问一下,是不是使用 UWP ,因为现在我尝试 UWP 还没有成功。

    如果还是无法成功,不要来问我,我教了几个小伙伴,有几个是没法进入代码,使用方法都一样,我自己去他电脑弄了,结果我无法进入。

    那么接下来就是调试 ms 源代码了,因为已经进入了 Release 的反编译代码,所以通过堆栈调用就进入了源代码,在需要的地方使用断点,当然,不是所有地方可以使用断点。但是进入之后还是可以和原来的调试自己代码一样,看到没有被优化掉的参数的值,可以修改这些值,可以进入其他地方代码设置断点,设置条件,已经使用单步调试跟着代码。

    在 win10 下,调试的代码是没有注释的,但是可以对比 dotpeek 的代码来看,一般他里面的代码就是有注释的,反编译的代码和 dotPeek 看到代码有些地方是不同的,但是实际功能是一样的。但是微软源代码使用的框架可能和自己的不一样,看起来代码还是不相同。

    最好是自己去下载微软源代码,然后把他放在一个仓库,这样可以看到不同的框架修改的代码。

    因为 UWP 编译使用 .netNative ,很多底层都是使用 C++ 写的,所以无法对 UWP 进行反编译

    下载

    dotPeek32 2018.1.3 CSDN下载

    dotPeek64 2018.1.3 CSDN下载

  • 相关阅读:
    软件工程实践2020_个人作业 —— 软件评测
    软件工程实践2020_结对第二次作业 —— 某次疫情统计可视化的实现
    最受欢迎的 Git 分支工作流
    结对编程作业
    软件案例分析作业
    个人项目
    个人博客作业1
    第一次作业-热身!
    面向对象第三单元
    电梯作业总结
  • 原文地址:https://www.cnblogs.com/lindexi/p/12085476.html
Copyright © 2020-2023  润新知