~/talk

Combining Embedded and Interactive Python in a Debugger: A Case Study

Talkat EuroPython 2011 · 2011-06-20..06-26· [python]
links:none on file
slides:none on file

LLDB embeds a full Python interpreter and a session dictionary per debugger to let users run interactive Python, attach breakpoint script commands, and call the LLDB API from Python via a SWIG-generated module. Implementation uses debugger-IDs, global-dictionary patching, and mutex/condition locking to simulate multiple interpreters in one process; access is serialized (no true parallel interpreters). Demo searches a large BST for "Romeo" (found path left left right right left) and locates the bug: uppercase R vs lowercase r. Works on macOS and Linux.

AI-written summary · about

  1. 0:00Intro
  2. 0:46OUTLINE
  3. 3:54FRAMES & STACKS
  4. 5:31DESIRED GUI DEBUGGER BEHAVIOR
  5. 11:04WHY SCRIPTING IN A DEBUGGER?
  6. 15:52LLDB EXTENSIONS FOR PYTHON
  7. 17:37IMPLEMENTING INTERACTIVE PYTHON INTERPRETER
  8. 18:43IMPLEMENTING ONE- LINE SCRIPT COMMANDS
  9. 19:00HOW THE DICTIONARIES WORK (1)
  10. 19:42INVOKING ONE-LINE SCRIPT COMMANDS
  11. 20:20INVOKING INTERACTIVE SCRIPT INTERPRETER
  12. 22:45COMMANDS - CREATE
  13. 26:01PASSING POINTERS & C++ OBJECTS TO PYTHON
  14. 28:39GETTING A SINGLE OBJECT ACROSS THE DEBUGGER
  15. 30:14WHY A DEBUGGER- LEVEL DICTIONARY?
  16. 30:49INTERACTIVE INTERPRETER & ONE LINE COMMANDS
  17. 31:24BREAKPOINT COMMANDS: A PROBLEM
  18. 32:34DICTIONARY SET-UP
  19. 33:07DICTIONARY CLEAN-UP
  20. 34:08PY NEWINTERPRETER?
  21. 36:58GUI DEBUGGER PYTHON REQUIREMENTS
  22. 38:35THE PLAN Searching Tree Without Restarting Program
  23. 39:48USING THE INTERACTIVE INTERPRETER
  24. 41:43PYTHON BREAKPOINT COMMAND (At Decision to Follow Right Child)
  25. 43:58SUMMARY
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.