|
When the execution is suspended, Bugloo can display the call stack of the program ( i.e. the methods that are waiting for a result to return). With this sort of queries, it's difficult to understand how did the debuggee program arrived at the location in the source code it is actually suspended. Bugloo can record all method entries that are occuring during the execution of the program. You are hence able to visualize a full path of execution, rather than consulting a simple information like computations that remain to be done.
Enable the recording of method entry events
Disable the recording of method entry events
Return the recording status You can start and stop the recording of this information each time the debuggee is suspended. Once you have got what you needed, you can display the whole recorded trace or simply the last entries in the list :
Display the recorded trace
Clear the trace
For example, working with the following program :
It's easy to see the whole debuggee's execution history :
This way, you can quickly verify that %reverse is a proper tail-recursive function, and that %fac is not !
Often, when debugging a program, a bug is located when you found a variable which value is not what it should be. You can only notice that fact, restart the execution and try to step the debuggee sooner in the execution. Bugloo lets you record the values a variable can take during the debuggee execution, so that you can understand more easily why and when the program diverged. Records are like modification watchpoints that doesn't suspend the debuggee. They only store the value of variables so that you can view them later :
Set a modification watchpoint on field <fieldname> in JVM class <classname>
Records are enabled and disabled globally, countrary to breakpoints or watchpoints. This is due to the fact that when you enable variable recording, all variables modification are append in a single history list.
Enable the recording of variable modification
Disable the recording of variable modification
Return the name of the recorded variables and the recording status
Delete the <n>th record
Delete all records that are still alive
Like traces, when the execution of the debuggee is suspended, you can consult or modify the record history :
Display the variable modification record
Clear the variable modification record
|