DebugPilot UI - llmhyy/microbat GitHub Wiki
DebugPilot UI
This page introduce the user interface of DebugPilot
1. Tool Bar
Button | Function |
---|---|
Microbat: Construct executiontrace. Detail can be found in Microbat | |
Start DebugPilot: After confirming the program output, you may start the debugging process by clicking this 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:
- Which variable is the output of the program thatis assume to be wrong.
- 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 |