/inquisitor

Primary LanguageSmalltalk

Inquisitor

Inquisitor is a debugging tool which you point at a test method or custom code. You can then ask questions like: right-click on a method, "What does it return?". Inquisitor will run the execution and answer you with the list. If you see a suspicious value, there's a button to directly open a debugger on the moment that value was captured.

Note: Works on Pharo 9 and later

Installation

Latest Stable Version

Metacello new
  githubUser: 'dupriezt' project: 'Inquisitor' commitish: 'v1.1.0' path: '';
  baseline: 'Inquisitor';
  load

Bleeding Edge

Metacello new
    baseline: 'Inquisitor';
    repository: 'github://dupriezt/inquisitor';
    load.

Demo

  1. Open the Inquisitor workbench UI

    Result:
  2. Create an Inquisitor
    1. On custom code
    2. On a test method
  3. Set the Inquisitor as "main Inquisitor". The main Inquisitor is the one that will answer questions.
  4. Ask a question. For example: right-click on a method and asks what values it returns
  5. Inspect the answer data
    1. Quick-view window of the question
    2. List of the capture points captured by Inquisitor
    3. A playground to play with the capture point list
  6. Open any capture point in a debugger, at the moment it was captured

Questions currently available

  • Method Return: "Method, what values do you return?"
  • Hit Check: "AST node, how many times are you encountered?"
  • Variable History: "Variable, what values do you take?"
  • Value Check: "AST node, what is the value of when you are encountered?"
  • Class Instanciation: "Class, when are you instanciated?"