编程技巧 --- VS如何调试.Net源码

这篇具有很好参考价值的文章主要介绍了编程技巧 --- VS如何调试.Net源码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

引言

如题,在VS中如何调试 .Net 源码呢?

一般来说,VS2022,都是默认启用 F12 转到定义能够看到源码,如果大家发现自己无法使用 F12 查看源码,可以在 "工具" -> "选项" -> "文本编辑器" -> "C#" -> "高级" -> "转到定义",勾选所有选项就对了。

但是光以上的操作还是不够的,这样的可以查看源码中类型和成员的声明,但不能看到其实现。
比如,在WPF中,Code-Behind 中使用 FindResource() 查找资源,那我们直接 F12 转到定义,则像这样:

我们仅能看到他是 FrameworkElement 类型下的一个方法。并没有具体实现。

示例

那我们怎么看它的具体实现呢?

首先,我们需要有对应的配置,那就是需要启用源代码单步执行。

  1. 在"工具"(或"调试") -> "选项" -> "调试" -> "常规"下,确保:
    • 取消选择"启用仅我的代码"。
    • 选择"启用源链接支持"。
  2. 在"工具"(或“调试”) -> "选项" -> "调试" -> "符号"下,选择"Microsoft 符号服务器"。

这样配置完之后,我们就可以使用"调用堆栈"窗口下载和加载符号进行源码调试。

这里需要注意,当你配置完上述设置后,第一次启动应用会有较长的一段符号加载的时间,耐心等待。

准备

首先新建一个WPF项目,窗体中放置一个“测试按钮”,然后创建一个 Buttonstyle,像这样:

<Window.Resources>
    <Style x:Key="buttonStyle" TargetType="Button">
        <Setter Property="Background" Value="Red" />
        <Setter Property="FontSize" Value="22" />
        <Setter Property="Foreground" Value="Yellow" />
    </Style>
</Window.Resources>
<Grid>
    <Button
        x:Name="button"
        Width="200"
        Height="80"
        HorizontalAlignment="Center"
        VerticalAlignment="Center"
        Content="测试按钮"/>
</Grid>

然后,我们主窗体的 Loaded 事件中通过 FindResource() 来给这个按钮绑定样式,如下:

private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
   button.Style = FindResource("buttonStyle") as Style; 
} 

调试

接下来调试就很简单了,我们在 Loaded 事件中打断点,命中断点后,我们就可以直接通过 F11 进入 FindResource() 的源码方法体中了,如下:

从图中也可以看出,它是可以进行单步调试的,且也能获取到上下文或参数的值。
编程技巧 --- VS如何调试.Net源码

小结

本文讲解了如何通过 VS2022 调试 .Net 源码,学会源码调试,是一项强有力的技能。

通过调试源码,可以逐步跟踪代码的执行流程,观察数据的变化,更直观地理解代码的运行方式,深入理解框架工作原理。

更重要的是通过它分析问题根源,在调试过程中,你可以找到问题的根源,比如变量的状态、方法的调用流程等,提升我们解决BUG的效率。

建议大家动手实践,提升自己的调试技巧。

参考链接

https://learn.microsoft.com/zh-cn/visualstudio/debugger/how-to-debug-dotnet-framework-source?view=vs-2022文章来源地址https://www.toymoban.com/news/detail-748038.html

到了这里,关于编程技巧 --- VS如何调试.Net源码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C++编程技巧

    #pragma GCC optimize(\\\"O3,unroll-loops\\\") 这是编译器指令,告诉GCC编译器使用最大优化级别(O3)和循环展开(unroll-loops)进行编译,以提高程序的运行速度 例如: 这会告诉编译器尽可能地优化代码以提高运行速度,有时候甚至会牺牲浮点数的精度。这里的程序是计算一个整型数组的所有元

    2024年02月05日
    浏览(46)
  • Python-字典和集合编程技巧

    hello,这里是Token_w的博客,欢迎您的到来 今天主要讲解Python字典和集合在实际编程中的使用技巧 整理不易,对您有所帮助,希望得到你的支持!感谢!!! 实际案例 案例1:过滤掉列表[3, 9, -1, 10, 20, -2, …] 中的负数 案例2:筛出字典{‘lisi’: 79, ‘Jin’: 88, ‘lucy’: 93, …

    2024年02月13日
    浏览(55)
  • 高级编程技巧之Python装饰器详解

      装饰器是Python中一种强大而灵活的编程技巧,它可以用于修改或扩展函数的行为,同时又不需要修改函数的源代码。本文将介绍Python中的装饰器的基本概念、使用方法以及高级技巧,帮助你从入门到精通装饰器的使用。   在深入学习装饰器之前,我们首先需要了解一些基本

    2024年02月13日
    浏览(47)
  • Rust 编程小技巧摘选(5)

    目录 Rust 编程小技巧(5)  使用 vec 的 push 方法 使用 String 的 append 方法 使用 push_str 拼接字符串 使用 Result 的 and_then 方法 使用 Option 的 map 方法 使用 match 和 enums 来匹配不同类型 使用 Option 的 or 方法组合多个 Option 使用 Result 的 map 方法转换成功值 使用 AsRef 和 Borrow   使用 vec

    2024年02月14日
    浏览(46)
  • Rust 编程小技巧摘选(7)

    目录 Rust 编程小技巧(7) 1. 交换变量 2. 翻转数组 3. for_each() 用法 4. 结构体 Display trait 5. HashMap 和 BTreeMap 6. 遍历输出哈希表 7. 分离奇数和偶数 8. 判断素数(质数) 与python, go等语言用法类似,不同的是rust不能省掉元组的括号 () 。 输出: a: 3, b: 23 a: 23, b: 3 输出: [\\\"Hello\\\", \\\"Wor

    2024年02月14日
    浏览(42)
  • Rust 编程小技巧摘选(8)

    目录 Rust 编程小技巧(8) 1. 取整函数 floor() 2. 取整函数ceil() 3. 取整函数  round() 4. 保留小数位数 5. 字符串转整数 unwrap() unwrap_or() floor函数对浮点数进行向下取整 示例代码:  输出: 3 ceil函数对浮点数进行向上取整 示例代码:  输出: 4 round函数对浮点数进行四舍五入取整 示

    2024年02月12日
    浏览(48)
  • Rust 编程小技巧摘选(3)

    使用 unsafe 代码块 使用 unsafe 代码块可以让程序员自己决定内存安全问题,从而提高程序性能。但是,这需要谨慎使用。 使用 std::mem::replace() std::mem::replace() 函数可以用于替换变量的值,并且返回旧的值。使用 std::mem::replace() 可以避免不必要的内存分配和复制操作。 使用 st

    2024年02月12日
    浏览(36)
  • Rust 编程小技巧摘选(4)

    使用 std::fs 模块 Rust 的 std::fs 模块提供了许多方便的函数,可以用于读写文件和目录。使用 std::fs 可以避免使用不安全的 C 函数,提高代码的可读性和可维护性。 使用 lazy_static 宏 lazy_static 宏可以用于定义全局静态变量,该变量的值只会在首次使用时计算。这可以避免不必要

    2024年02月14日
    浏览(48)
  • Linux系统下C语言的编程技巧

    Linux系统能够为人们提供更加安全实用的效果,保证计算机系统能够稳定的运行。利用Linux系统下首先要进行C语言的编程,掌握编程的技巧能够更好的发挥计算机的作用。如何掌握Linux系统下计算机C语言的编程技巧是计算机发展的关键要素。本文对Linux系统下计算机C语言的编程技

    2024年02月07日
    浏览(38)
  • 使用指针或引用作为函数参数的编程技巧

    空指针检查: 使用指针允许在函数内部检查传递的指针是否为 nullptr 。这使得在函数内部能够处理空指针的情况,增加代码的健壮性。如果使用引用,无法表示空值,而使用指针则可以通过传递 nullptr 来表示缺失的数据。

    2024年02月16日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包