• by eesmith on 5/21/2022, 7:33:45 PM

    > But the debugger is programmable itself, and uses Python natively as a scripting language.

    like lldb? https://lldb.llvm.org/use/python.html

    """LLDB has been structured from the beginning to be scriptable in two ways – a Unix Python session can initiate/run a debug session non-interactively using LLDB; and within the LLDB debugger tool, Python scripts can be used to help with many tasks, including inspecting program data, iterating over containers and determining if a breakpoint should stop execution or continue."""

    > Extend your favorite C++ compiler with a flag that generates python bindings for all data variable symbols.

    The linked-to lldb documentation has a section on "Accessing & Manipulating Program Variables". I'm pretty sure it can all be built though the existing clang debug info.

    Sounds pretty neat to access and visualize the inner workings of a C/C++ program as a program which works like an attached debugger.

  • by pmarin on 5/25/2022, 4:04:10 AM

    This article reminds me a demo Eskil Steenberg did about a visual live memory debugger

    https://youtu.be/pvkn9Xz-xks

  • by armchairhacker on 5/25/2022, 4:03:07 AM

    When I debug, sometimes I write code which pretty-prints the object to stdout, and then execute that inline ("evaluate expression") when I need to.

    It may be kind of hacky but it works well and it's super easy to implement. As a bonus, you usually end up pretty-printing the object in some debug-logger anyways.

  • by athrun on 5/25/2022, 2:00:51 AM

    Asking the HN community: what are the modern options in terms of debugging native programs these days?

    It seems that this is an area that hasn't seen much progress over the years.