top | item 31460791

Visual Debugging Now

22 points| atroyn | 3 years ago |nickarner.com

5 comments

order

eesmith|3 years ago

> 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.

armchairhacker|3 years ago

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.

athrun|3 years ago

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.