如何高效从dump文件中提取C语言代码片段?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1301个文字,预计阅读时间需要6分钟。
一:背景+信任很多朋友在遇到应用程序各种奇奇怪怪的问题后,往往会下载一个dump文件,辛辛苦苦分析了大半天,最终在一个线程的调用栈上找到一处可疑的方法,但Windbg通常是以汇编形式呈现的。
一:背景
相信有很多朋友在遇到应用程序各种奇葩问题后,拿下来一个dump文件,辛辛苦苦分析了大半天,终于在某一个线程的调用栈上找到了一个可疑的方法,但 windbg 常常是以 汇编 的方式显示方法代码的,可惜的是,现如今的汇编,有多少像我们这些速成系码农还看的懂呢?😂😂😂
接下来尖锐的问题就来了,如何将这些汇编代码转成 C# 源代码,如果转不成源代码转成 IL代码也好呀,起码我努努力还是能试着看的懂的。。。
本篇我就来分享下如何把 dump 中的方法源码提取出来。
二:从 dump 文件中提取源代码
1. 案例演示
为了能够演示方便,我用 .netcore 3.1 写了一个简单的demo,代码如下:
namespaceConsoleApp6 { classProgram { staticvoidMain(string[]args) { Run(); } staticvoidRun() { Console.WriteLine("helloworld!"); Console.ReadLine(); } } }
将程序跑起来后,使用 任务管理器, adplus, procdump 随便哪一个抓取 dump 都可以。
本文共计1301个文字,预计阅读时间需要6分钟。
一:背景+信任很多朋友在遇到应用程序各种奇奇怪怪的问题后,往往会下载一个dump文件,辛辛苦苦分析了大半天,最终在一个线程的调用栈上找到一处可疑的方法,但Windbg通常是以汇编形式呈现的。
一:背景
相信有很多朋友在遇到应用程序各种奇葩问题后,拿下来一个dump文件,辛辛苦苦分析了大半天,终于在某一个线程的调用栈上找到了一个可疑的方法,但 windbg 常常是以 汇编 的方式显示方法代码的,可惜的是,现如今的汇编,有多少像我们这些速成系码农还看的懂呢?😂😂😂
接下来尖锐的问题就来了,如何将这些汇编代码转成 C# 源代码,如果转不成源代码转成 IL代码也好呀,起码我努努力还是能试着看的懂的。。。
本篇我就来分享下如何把 dump 中的方法源码提取出来。
二:从 dump 文件中提取源代码
1. 案例演示
为了能够演示方便,我用 .netcore 3.1 写了一个简单的demo,代码如下:
namespaceConsoleApp6 { classProgram { staticvoidMain(string[]args) { Run(); } staticvoidRun() { Console.WriteLine("helloworld!"); Console.ReadLine(); } } }
将程序跑起来后,使用 任务管理器, adplus, procdump 随便哪一个抓取 dump 都可以。

