楼主在尝试开发一个 jellyfin 插件,按照官方文档 https://github.com/jellyfin/jellyfin-plugin-template 配置环境,在调试时 Visual Studio 却提示"当前不会命中断点, 还没有为该文档加载任何符号"。
搞得一头雾水,恳请大佬能帮楼主捋一捋,到底是哪里出了问题。
环境:
便携版的 jellyfin 路径在 D:\jellyfin
被调试插件源码路径在 C:\Users\admin\Documents\GitHub\jellyfin-plugin-template
jellyfin 插件文件夹路径在 从 C:\Users\admin\AppData\Local\jellyfin\plugins
使用 Visual Studio 2022 调试代码
操作步骤:
结果就是上图的那样,根据 Jellyfin 的日志,插件 Jellyfin.Plugin.Template.dll 已被正确加载,但在 Visual Studio 的源码上却没有命中断点。
我相信这实际上是一个 "visual studio 如何断点调试被 .exe 程序调用的 C# 类库?" 的问题,也查了 visual studio 文档 https://docs.microsoft.com/zh-cn/visualstudio/debugger/how-to-debug-from-a-dll-project?view=vs-2022
但觉得这和 jellyfin 的文档 https://github.com/jellyfin/jellyfin-plugin-template 有些出入,也可能是楼主对两个文档都没有正确理解,所以还是来这里请有经验的人帮忙了。
1
ysc3839 2022-04-26 13:06:07 +08:00 via Android
调试器类型要选择“托管”(Managed),开始调试后,去模块列表找到你的 DLL ,确保调试符号已经加载
|
2
userforg2021 2022-04-26 13:48:23 +08:00
试试插件入口点加一句
System.Diagnostics.Debugger.Launch(); 然后不使用 VS 调试,直接启动软件,正常情况下会弹出选择框让你选 VS 实例,选择打开了源码的 VS 就行了。 |
3
min 2022-04-26 13:51:03 +08:00
|
4
7075 2022-04-26 14:02:49 +08:00
attach
|
5
Blackricky 2022-04-26 14:13:40 +08:00
附加到进程?
|
7
yodhcn OP @ysc3839
抱歉,能说得具体一点吗? 下图是 visual studio "调试>窗口>模块" 的截图 https://cdn.jsdelivr.net/gh/hututu-tech/IMG-gongfeng@main/2022/04/26/6267a77a9a37b.png 符号状态:本机调试器跳过为托管模块加载符号。 |
9
wudicgi 2022-04-26 19:01:47 +08:00
如果你的 dll 文件和 exe 程序在同一解决方案内,那么一种简单的调试方法是,将 dll 的项目设为启动项目,同时配置启动的命令行为那个 exe 程序的完整路径
|
10
hackfly 2022-04-26 19:25:34 +08:00
没加载符号,看不到代码内容的也调试不了。这还不如在 od 反汇编;在模块窗口,选中 DLL ,右键加载符号,看能不能加载符号
|