首页 > 其他分享 >工具|--LINQPad|--使用DnSpy调试LINQPad

工具|--LINQPad|--使用DnSpy调试LINQPad

时间:2024-07-06 10:57:21浏览次数:14  
标签:LINQPad dnSpy -- dll DnSpy WPF 调试

前言


LINQPad本身就有调试功能, 
使用dnSpy调试LINQPad的代码, 岂不是多此一举 ? 

其实主要是为了使用dnSpy调试LINQPad中使用到依赖dll的的底层代码,
比如, 在LINQPad中使用到了WPF的dll, 使用dnSpy就可以调试到WPF的一些底层代码.

并且, 我尝试过, 直接使用dnSpy加载LINQPad生成的dll,
结果一直报错, 最后只能附加到进程调试LINQPad中的源码.

1.启动LINQPad中的查询

此时一个标题为"Simple WPF Program"WPF程序会运行起来

2.打开DnSpy进行附加进程

1.dnSpy菜单栏--文件--打开( 如何通过LINQPad找到生成dll的文件夹在另一篇笔记中有 ~ )

打开在LINQPad生成的dll, 此时可以看到源码, 找到源码加入断点

2.dnSpy菜单栏--调试--附加到进程

3.点击"Simple WPF Program"WPF程序的按钮, 就可以看到断点已经有了

扩展.WPF程序开始运行的时候就开始调试


上面的例子, 只能将程序运行起来之后, 再通过断点来调试,
没有办法在程序运行的时候, 就可以调试. 

比如我想看WPF中Application类初始化过程, 
此时, 就要想到那句"任何软件工程遇到的问题都可以通过增加一个中间层来解决..."

我再增加一个方法, 用来触发初始化WPF, 不是直接运行WPF, 

可以搞一个输入框, 只有输入某个字符, 才会运行WPF, 这样就可以了.

# 注意事项, 

运行了LINQPad的一个Query后, 
在附加到进程的那一步,
会有多个"LINQPad.exe", 很容易选错...

结尾


最刚开始, 我也想着不通过"附加到进程",
而是直接"dnSpy菜单栏--调试--开始调试",
然后选择dll, 然后直接开始调试,
但是使用LINQPad生成的dll, 总是报错, 
(使用Visual Studio生成的WPF程序的dll开始调试, 却可以)

但是总是报错 : 
无法启动调试器, 请确保您有权限访问文件'C:\XXXX\LINQPadQuery.dll'
错误 Coule not execute 'C:\XXXX\LINQPadQuery.dll'


如果哪位知道如何直接开始调试LINQPad生成的dll的话, 
可以告知下~ 谢谢 ~

"任何软件工程遇到的问题都可以通过增加一个中间层来解决..."

标签:LINQPad,dnSpy,--,dll,DnSpy,WPF,调试
From: https://www.cnblogs.com/love-zf/p/18286996

相关文章

  • Facebook账户受到限制,我们应该要怎么做
    最近的这段时间Facebook的账户限制越来越多,受到的风控影响到不少企业户封户、无法推广。那么我们要怎么规避这种账户被封,账户受限的情况呢?FB账号被封原因都有哪些当个人号和广告账户被封时,平台有时并不会给出具体原因,大家可以根据下面的内容对照检查,看看哪些地方有问题及时整......
  • 自然语言处理学习--3
    对自然语言处理领域相关文献进行梳理和总结,对学习的文献进行梳理和学习记录。希望和感兴趣的小伙伴们一起学习。欢迎大家在评论区进行学习交流!论文:《ChineseBERT:ChinesePretrainingEnhancedbyGlyphandPinyinInformation》下面将根据以下五部分内容进行论述1.解决了......
  • CLion中文乱码的解决方案
    在网上找了半天CLion中文乱码解决方案,众说纷纭。我就在此说一种最简单,快速,靠谱的方法。目录首先:然后:最后一步:首先:首先按··File->Settings...->Editor->FileEncodings··途径进入然后把-用粗红框框的全改成UTF-8;最后,点击ok退出然后:Ctrl+Shift+Alt+/  进入......
  • Java--Super
    1.super调用父类的构造方法,必须在构造方法的第一个2.super必须只能出现在子类的方法或者构造方法中3.super和this不能同时调用构造该方法和this差别1.代表的对象不同    this():代指本身调用者这个对象    super():代表父类对象的应用2.前提    this......
  • 《IT 领域新生暑期学习之旅》
    IT专业入门,高考假期预习指南七月来临,各省高考分数已揭榜完成。而高考的完结并不意味着学习的结束,而是新旅程的开始。对于有志于踏入IT领域的高考少年们,这个假期是开启探索IT世界的绝佳时机。作为该领域的前行者和经验前辈,你是否愿意为准新生们提供一份全面的学习路线图呢?快来......
  • 【Python】原创·基础·学习笔记1
         一、字面量二、变量三、注释四、数据类型1.数据类型的分类2.数据类型的转换3.数据类型查询type()语句五、标识符六、运算符七、字符串的定义  1.字符串的三种定义方式  2.引号的嵌套使用  3.使用转义字符八、字符串拼接九、字符......
  • windows10小工具脚本
    npm环境搭建nvminstall16.14.0nvmuse16.14.0npminstall-gnrm--registry=https://registry.npmmirror.comnrmusetaobaonpmi-ganywherepnpm@8lessnvm-vwin10右键cmd.regWindowsRegistryEditorVersion5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Dire......
  • 字符串函数库的经典使用学习
    <?php//1.单引号定义字符串//2.双引号定义字符串//3.定界符定义字符串//1.单引号定义字符串//echo'thisis'my'mother';echo'thisis\'my\'mother<br>';//单引号不能解析转义符\n换行\t缩进echo'this\nisasimple\tstr......
  • 51单片机定时器实现delay函数
    参考内容:不记得原作地址了,很尴尬啊,1.确定时钟周期、机器周期。时钟周期由单片机的晶振频率Fclk决定。那么时钟周期就是1/Fclk(比如:11.0592MHz)。确定单片机的机器周期是n个时钟周期(n在51单片机下一般是12)。2.确定需要单次定时器最大的计时时间长度如果是16位的计数器,16位最大......
  • 触想工业显示器助力3C全自动生产线可视化升级
    一、行业发展背景一台智能手机大约由21项主零件构成,包括主板、屏幕、外框、摄像头,指纹、扬声器等模块,而构成这些结构的零部件可达数百个。手机组装过程中,大量辅料(如各类泡棉、导电布、背胶、麦拉片、保护膜等)参与其中,用以实现固定、防尘、防振保护等作用。可以说,......