Skip to main content
Skip table of contents

(v13) Debugging

This page applies to Harlequin v13.1r0 and later; and to Harlequin MultiRIP but not Harlequin Core

As long as the plugin has been compiled and linked with the appropriate symbolic debugging flags turned on, it is possible to use a symbolic debugger with plugins even though the code is in an explicitly loaded DLL.

Code can be debugged whether or not optimization flags are turned on. However, it is usually easier to follow the code if they are turned off, except in cases where a bug only appears when compiled with optimization. For example, when a compiler bug is suspected, timing changes are sufficient to change results, or a subtle memory overwrite changes its behavior according to code layout.

Debugging proceeds as normal for any application once appropriate breakpoints have been set. How‐ ever, establishing breakpoints can be tricky, because:

  1. The plugin may have been compiled with a different compiler from that used to compile the RIP, so the compiler‐specific debugger may not be appropriate for the program as a whole. This is dis‐ cussed further below.
  2. All plugins have the same entry point, so setting a debugger breakpoint on PLUGIN is likely to be unproductive unless all other plugins have been removed. Microsoft debuggers can set the break‐ points with reference to the source file rather than the symbol name alone.
JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.