Modifying a Program State |
21 |
![]() |
The chapter is divided into the following sections:
Basic Concepts
Your application might behave differently when run under dbx. Although dbx strives to minimize its impact on the child, you should be aware of the following:
Also, dbx should impose minimal perturbation when it attaches to a running process.
assign var = exp |
pop
The dbx pop command pops a frame or frames from the stack:
Pop current frame Pop num frames Pop frames until specified frame number
|
pop pop num pop -f num |
Any calls popped are reexecuted upon resumption, which may result in undesirable program changes. pop also calls destructors for objects local to the popped functions.
call
When you use the call command in dbx you call a procedure, and the procedure performs as specified:
call proc([params]) |
The procedure could modify something in your program.; dbx is actually making the call as if you had written it into your program source.
print
To print the value of the expression(s):
print exp, ... |
If an expression has a function call, the same considerations apply as with the call command. With C++, you should also be careful of unexpected side effects caused by overloaded operators.
when
The when command has a general syntax as follows:
when event-specification [modifier] {cmd ... ;} |
When the event occurs, the cmds are executed.
fix
You can use fix to make on-the-fly changes to your program:
fix |
It is a very useful tool, but remember that fix recompiles modified source files and dynamically links the modified functions into the application.
cont at
This dbx command alters the order in which the program runs. Execution is continued at line line. id is required if the program is multithreaded.
cont at line id |
This could change the outcome of the program.