Debugging analyzers using Visual Studio 2019 and Logic 2

It appears the Logic 2 software is capable of supporting custom analyzer debugging using Visual Studio 2019. The Debug - Analyzer SDK help topic mentions using the stand-alone “Debug-Legacy-1.1.14” software. There were problems with this, including this legacy version used a different format for the saved capture files, so you can’t load captures produced by any of the other versions. Additionally, you cannot take new captures with this software (unless you have a really old Gen 1 logic device), meaning you have to work off of simulated data. The interface also has various quirks which may cause confusion.

However, I’ve found that you can easily attach the Visual Studio 2019 debugger to Logic 2 and begin debugging custom analyzers produced with the SDK. Many of the steps for getting this to work are the same as in the topic referenced above:

  1. Set your analyzer to build for Debug-Win32 or Debug-x64 depending on the install of Logic 2
  2. Build your analyzer DLL.
  3. Open Logic 2, and in the Preferences window, set the Custom Low Level Analyzers directory to be the Visual Studio output folder for the selected build configuration. You will need to restart Logic 2 after this. Before re-opening Logic 2, ensure the analyzer doesn’t exist already in the analyzer path, and that there are no ghost Logic 2 processes running in the task manager.
  4. Start Logic 2 again. In the Visual Studio 2019 menu, navigate to Debug :point_right: Attach to Process…
  5. A list of active processes will be displayed. There will be multiple “Logic” processes in this list, however the correct one is usually the first of these processes displayed in the list.

After attaching the process, you should be able to utilize all the Visual Studio debug features, including set breakpoints, watches, and peek values of variables.

This was a much needed improvement! Thank you, Saleae team!!!


@jafeucht Thanks for sharing this!

So in my case it would still be the top process?

That’s what usually worked for me. It’s hard to tell which particular one is the correct one, but for me, it always happened to be the process at the very top.

I tried to connect with VC++2019 as you described. In the first step it looks that it worked, could set breackpoints and VC++ shows that this breackpoints are active. But I never reached this breakpoints. I tried the restart funtion in the Analyser but did not get to the WorkerThread Breakpoint.

Any suggestions?

kind regards Gerhard