How to debug a plugin - I have ran Example Plugin from both within the repository and in the download (in debug)everything runs in the Editor but the break point is not hit. The .pdb file and .dll are in the C:\Program Files\OpenTAP\Packages\SDK\Examples\bin\Debug\
As I understand it the Editor will run in above folder so should find the .pdb ?
Is there additional steps or file moving that needs doing ?
Where should we create our custom plugins ? in Packages or the opentap folder ?
Many regards Andy
Hi Ronghuaw,
No unfortunately - Iām not sure if Keysight are using everything in Linux , Iāve abandoned Opentap for now and written my own app as we only have a couple products and only me as test/production engineer so not at the enterprise level yet
Visual Studio 2019, everything works fine except i canāt debug when open Examples.sln in C:\Program Files\OpenTAP\Packages\SDK\Exaamples (follow the youtube training video). thanks.
Since the TargetFramework is netstandard2.0 in the Directory.Build.props file, Visual Studio thinks it should debug the process with the .net6/netcore debugger. This is not the case, because Editor.exe is a .net framework executable.
To fix this, change <TargetFramework>netstandard2.0</TargetFramework>
Thanks rolf, i can debug now, does that mean if you like to create the custom plugin and like to debug, only can use the .net framework instead of .net core?
@ronghuaw, thatās right. If youāre using Visual Studio to debug your custom plugin, youāll need to target the .NET Framework in order for debugging to work. However, even if youāre using the .NET Framework for debugging purposes, your project will still work on .NET Core. So you can use either .NET Framework or .NET Core for your project, but you may need to use the .NET Framework for debugging purposes if youāre using Visual Studio.
Examples debugging seemed to work fine in VS2019 but caused problems in VS2022. All projects needed switching to .NET Framework. Probably because of the update to .net6 as @rolf_madsen points out. Is there a way to switch debuggers instead of changing TargetFrameworks?
There is a workaround. You can have an extra project called e.g MyProject.Debug. And that can target .net framework,while everything else targets .netstandard. So when you click F5 and Myproject.Debug is selected it starts the right debugger and everything works as expected.
I ran into the same problem today creating an OpenTAP plugin from scratch targeting netstandard2.0 and using the OpenTAP Nuget package along with TUI to debug. I wanted to say thank you for helping me understand the problem and also share a slightly different workaround I decided to use instead of a dummy project.
First, I created a new configuration called DebugPlugin, then added a conditional PropertyGroup to the CSPROJ file and included TUI as an additional OpenTAP package:
Now with the DebugPlugin configuration selected and my plugin set as the startup project, I can use F5 to launch a debugging session using TUI that will hit breakpoints properly.
You can do that too. You risk issues on other platforms (e.g Linux) if you build against ā.NET Frameworkā, but if that is not a big concern for you, then I think your solution is fine.
Otherwise, if you want cross platform projects that are also debuggable (in VS), then I suggest to add a separate ādebugā project which is built against .net framework. Also if you want to build on Linux (more stableand cheaper)
Iāve just hit this issue with a project that has been debugging as expected for some time. Suddenly Iām getting a warning that the breakpoint wonāt be hit because the symbols arenāt loaded.
The only thing I think has changed on my system is I installed the .net 8 sdk earlier this month. Could this have messed something up?
Did you check if your are debugging a release build?
Otherwise, maybe you have a duplicate DLL in your output folder. For example if you build A.dll, but there is also a file called A.dll in a subfolder, that can be confusing to the debugger too.