/hxcppdbg

experimental hxcpp debugger using the windows debugger engine or lldb

Primary LanguageC++

Experimental debugger for hxcpp programs utilising LLDB or the windows debugger engine with sourcemaps generated by the haxe compiler. By using existing cpp debuggers we can catch and surface many errors which the existing hxcpp debugger can't.

One goal is to support "mixed mode debugging" where you can step into the cpp code invoked by extern functions, similar to how c#, cpp, and python can all be debugged under one session in visual studio. This should make debugging any extern glue code much easier.

img

https://blog.aidanlee.uk/hxcppdbg-intro/

Features

breakpoints

  • create breakpoints by file, line, and character
  • create breakpoints by function
  • composite breakpoints (multiple native breakpoints under one haxe breakpoint, for optimisations like unrolled loops)
  • hscript conditional breakpoints

callstack

  • map cpp frames back to haxe frames
  • allow displaying native frames as well as haxe frames

exceptions

  • break when exceptions are thrown
  • break when exceptions are caught
  • filter which exceptions to break on

stepping

  • step in
  • step out
  • step over

data model

  • ints
  • floats
  • strings
  • data structures
    • array
    • virtual array
    • map
  • interop types
    • pointers
    • structs
    • references
  • object ptr
  • anon objects
  • dynamic
  • enums
  • classes

expressions

  • hscript evaluator

drivers

  • dbgeng.dll and dbgmodel.dll for windows
  • lldb for mac and linux work in progress (data model is incomplete)

usage

  • cli
  • debug adapter protocol