DebugPilot UI - llmhyy/microbat GitHub Wiki

DebugPilot UI

This page introduce the user interface of DebugPilot

image

1. Tool Bar

Button Function
microbat Microbat: Construct executiontrace. Detail can be found in Microbat
play_debug_pilot Start DebugPilot: After confirming the program output, you may start the debugging process by clicking this button
stop_debug_pilot_button Stop DebugPilot: Stop the debugging process

2. Trace View

Display a list of trace node of the execution trace. One trace node correspond to one dynamically executed step in the program.

The label display contain the details about the step in the following format:

[Node Order]. [Class Name] line: [Line Number] duration: [Execution Time]ms cost: [Computational Cost]
Terms Meaning
Node Order n-th step executed
Class Name Name of class that this step belongs to
Line Number Line number of the step
Execution Time Execution time in milli-second
Computation Cost Normalized computation cost of this step. More cost mean this step involve more operations

3. Path View

It displays a complete pathway starting from the output of the program to the proposed root cause. User can follow the path one by one

Terms Meaning
Path n-th step of path
Trace Node Corresponding trace node order
Prediction DebugPilot prediction on this step
Confirm Yes if the prediction is confirmed by users

Users are able to search one step in path based on its order using the search bar above

4. Console Or Reason View

It display the reason why DebugPilot make this prediction. This view is updated whenever user click on certain step in Path View

5. DebugPilot Feedback View

This view display basic information of the target step and allow user to provide information to DebugPilot. Details on how to provide feedback to DebugPilot can be found in tutorial

This view will be updated when user click on one node in Trace View

Read & Written Variables

It display all the read variable used and written variables defined in this step.

Terms Meaning
Type Type of the variable such as int, boolean, etc
Name Name of the variable
Value Value of the variable which represented in string form. It also display the id of that variable
Correctness Probability for this variable to be correct. Predicted by DebugPilot. 1.0 mean this variable mean this variable is certain be correct and 0.0 mean wrong
Cost Normalized comptuation cost of this variable. More cost mean this variable take more computainal cost to obtain

Control Dominator

It display the control dominator of the target step. Note that not all step have control dominator.

Terms Meaning
Node Order Trace node order of the control dominator
Condition Correctness Probability for this condition result to be correct. Predicted by DebugPilot. 1.0 mean this variable mean this variable is certain be correct and 0.0 mean wrong
Condition Cost Normalized comptuation cost of this condition result. More cost mean this variable take more computainal cost to obtain

Program Output

It show the program output which is determined by users.

For example, user can determine:

  1. Which variable is the output of the program thatis assume to be wrong.
  2. Whether the output step of the program should be executed
Terms Meaning
Output Node Trace node order of the output node. User can specify it by clicking the output node in Trace View
Wrong Variable User can drag the target output variable into this table. It will display the selected variable with its type, name, and value. User can remove it by double clicking this variable
Wrong Branch It is a checkbox that indicate whether the output node should be executed or not. It is used to handle the case that output step is throwing exception, which should not be executed

Note: When Wrong Branch button is checked, then the wrong variable should be empty

Note: User are expected to fill this form before start running DebugPilot

Avaliable Feedbacks

This table display all the avaliable feedback users can give for selected steps.

Users can check the box of the corresponding feedback and then click the Give Feedback button to send the feedback.

Terms Meaning
Type Type of the feedback. Detail can be found in the table below
Variable Display the name of target variable if needed
Value Display the value of the variable if needed
Next Node Trace node that user expected to check next if they select the corresponding feedback
Feedback Type Meaning
CORRECT This step is correct, meaning that the read variables and the control dominator are correct
WRONG PATH This step should not be exected such that user cannot evaluate whether the variable is correct or not
WRONG VARIABLE This step contain wrong read variable
ROOT CAUSE This step is the root cause of the bug