繁体   English   中英

Visual Studio 调试器不适用于 F10

[英]Visual Studio Debugger Not working with F10

我创建了一个 Windows 服务项目。 当服务打开时,我使用

调试 → 附加到进程

它开始显示符号尚未加载所以我进入

视窗 → 模块

并手动加载符号。 我能够找到断点,但是当我按F10来单步执行代码时,它跳过了大量代码而不是单步执行。 有谁知道为什么会这样? 是因为我用来加载符号的工作吗?

更新:我有一个用 C# 编写的 DLL。 当代码步入该 DLL 时,它完全正常工作,并且适当地进入和退出没有问题。 但是在 Windows 服务本身中,它似乎跳过了大量代码。

更新 2对不起,如果我不清楚。 Windows 服务是我写的。 我的所有其他窗口服务都可以正常工作,没有这个问题。 我已经能够在不使用F5 的情况下成功地做到这一点,但它这个特殊的 Windows 服务并没有在每个断点处停止。 当我进入另一个 dll 中的代码时,它会正常中断并且一切正常。 难道这个项目以某种方式被破坏了?

当我尝试使用 F5 进行调试时,这是我收到的消息

请参阅为什么 Visual Studio 中的 F10 (step over) 不起作用? 为了启用非托管部分的调试,应设置托管项目(启动项目)的属性:

Configuration Properties -> Debugging -> Enable Unmanaged Debugging = TRUE;

请参考 MS 文档https://docs.microsoft.com/en-us/dotnet/framework/windows-services/how-to-debug-windows-service-applications#to-debug-a-service

除此之外,您还可以使用日志来阅读和记录所有进度。 实际代码在哪里。
我个人更喜欢用于 Windows 服务调试的日志

它说

  1. 调试服务 在调试配置中构建您的服务。

  2. 安装您的服务。 有关更多信息,请参阅如何:安装和卸载服务。

  3. 从服务控制管理器、服务器资源管理器或代码启动您的服务。 有关更多信息,请参见如何:启动服务。

  4. 使用管理凭据启动 Visual Studio,以便您可以附加到系统进程。

  5. (可选)在 Visual Studio 菜单栏上,选择“工具”、“选项”。 在“选项”对话框中,选择“调试”、“符号”,选中“Microsoft 符号服务器”复选框,然后选择“确定”按钮。

  6. 在菜单栏上,从“调试”或“工具”菜单中选择“附加到进程”。 (键盘:Ctrl+Alt+P)

    出现进程对话框。

  7. 从所有用户的复选框中选择显示进程。

  8. 在可用进程部分,为您的服务选择进程,然后选择附加。

     Tip: The process will have the same name as the executable file for your service.
  9. 出现附加到进程对话框。

  10. 选择适当的选项,然后选择确定关闭对话框。

     Note: You are now in debug mode.
  11. 设置要在代码中使用的任何断点。

  12. 访问服务控制管理器并操作您的服务,发送停止、暂停和继续命令以命中您的断点。 有关运行服务控制管理器的更多信息,请参见如何:启动服务。 另请参阅故障排除:调试 Windows 服务。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM