Skip to content

Latest commit

 

History

History
52 lines (39 loc) · 1.77 KB

README.md

File metadata and controls

52 lines (39 loc) · 1.77 KB

Sindarin

Sindarin is a versatile and interactive debugger scripting API for object-oriented programming languages. Sindarin is designed to help building dedicated debugging tools targeting specific problems or domains. To do this, Sindarin attaches to a running process then exposes stepping and introspection operations to control, manipulate and observe that process’ execution. It simplifies the creation of personalized debugging scripts by providing an AST-based API, thus also proposing different stepping granularity over the debugging session. Once written, scripts are extensible and reusable on other scenario, and can be used to build more complex debugging tools.

Research paper: Sindarin: A Versatile Scripting API for the Pharo Debugger

Main authors

Original author

Usage

Instanciate a UI-less debugger on your execution, allowing you to manipulate and inspect it via scripting. The API is on the SindarinDebugger class.

dbg := SindarinDebugger debug: [<your code>].
"Manipulate and inspect the debugged execution by sending messages to dbg"
dbg step; stepOver.
dbg context inspect.
dbg currentNode inspect.
...

Jump to caret VS skip command usage

See here

Install

For Pharo 12 or +

Metacello new
    baseline: 'Sindarin';
    repository: 'github://pharo-spec/ScriptableDebugger';
    load.

For Pharo 11 or -

Metacello new
    baseline: 'Sindarin';
    repository: 'github://pharo-spec/ScriptableDebugger:Pharo-11';
    load.