mirror of
https://github.com/ioacademy-jikim/debugging
synced 2025-06-18 13:26:14 +00:00
125 lines
6.9 KiB
Plaintext
125 lines
6.9 KiB
Plaintext
general valgrind monitor commands:
|
|
help [debug] : monitor command help. With debug: + debugging commands
|
|
v.wait [<ms>] : sleep <ms> (default 0) then continue
|
|
v.info all_errors : show all errors found so far
|
|
v.info last_error : show last error found
|
|
v.info location <addr> : show information about location <addr>
|
|
v.info n_errs_found [msg] : show the nr of errors found so far and the given msg
|
|
v.info open_fds : show open file descriptors (only if --track-fds=yes)
|
|
v.kill : kill the Valgrind process
|
|
v.set gdb_output : set valgrind output to gdb
|
|
v.set log_output : set valgrind output to log
|
|
v.set mixed_output : set valgrind output to log, interactive output to gdb
|
|
v.set merge-recursive-frames <num> : merge recursive calls in max <num> frames
|
|
v.set vgdb-error <errornr> : debug me at error >= <errornr>
|
|
memcheck monitor commands:
|
|
xb <addr> [<len>]
|
|
prints validity bits for <len> (or 1) bytes at <addr>
|
|
bit values 0 = valid, 1 = invalid, __ = unaddressable byte
|
|
Then prints the bytes values below the corresponding validity bits
|
|
in a layout similar to the gdb command 'x /<len>xb <addr>'
|
|
Example: xb 0x........ 10
|
|
get_vbits <addr> [<len>]
|
|
Similar to xb, but only prints the validity bytes by group of 4.
|
|
make_memory [noaccess|undefined
|
|
|defined|Definedifaddressable] <addr> [<len>]
|
|
mark <len> (or 1) bytes at <addr> with the given accessibility
|
|
check_memory [addressable|defined] <addr> [<len>]
|
|
check that <len> (or 1) bytes at <addr> have the given accessibility
|
|
and outputs a description of <addr>
|
|
leak_check [full*|summary]
|
|
[kinds kind1,kind2,...|reachable|possibleleak*|definiteleak]
|
|
[heuristics heur1,heur2,...]
|
|
[increased*|changed|any]
|
|
[unlimited*|limited <max_loss_records_output>]
|
|
* = defaults
|
|
where kind is one of:
|
|
definite indirect possible reachable all none
|
|
where heur is one of:
|
|
stdstring length64 newarray multipleinheritance all none*
|
|
Examples: leak_check
|
|
leak_check summary any
|
|
leak_check full kinds indirect,possible
|
|
leak_check full reachable any limited 100
|
|
block_list <loss_record_nr>|<loss_record_nr_from>..<loss_record_nr_to>
|
|
[unlimited*|limited <max_blocks>]
|
|
[heuristics heur1,heur2,...]
|
|
after a leak search, shows the list of blocks of <loss_record_nr>
|
|
(or of the range <loss_record_nr_from>..<loss_record_nr_to>).
|
|
With heuristics, only shows the blocks found via heur1,heur2,...
|
|
* = defaults
|
|
who_points_at <addr> [<len>]
|
|
shows places pointing inside <len> (default 1) bytes at <addr>
|
|
(with len 1, only shows "start pointers" pointing exactly to <addr>,
|
|
with len > 1, will also show "interior pointers")
|
|
general valgrind monitor commands:
|
|
help [debug] : monitor command help. With debug: + debugging commands
|
|
v.wait [<ms>] : sleep <ms> (default 0) then continue
|
|
v.info all_errors : show all errors found so far
|
|
v.info last_error : show last error found
|
|
v.info location <addr> : show information about location <addr>
|
|
v.info n_errs_found [msg] : show the nr of errors found so far and the given msg
|
|
v.info open_fds : show open file descriptors (only if --track-fds=yes)
|
|
v.kill : kill the Valgrind process
|
|
v.set gdb_output : set valgrind output to gdb
|
|
v.set log_output : set valgrind output to log
|
|
v.set mixed_output : set valgrind output to log, interactive output to gdb
|
|
v.set merge-recursive-frames <num> : merge recursive calls in max <num> frames
|
|
v.set vgdb-error <errornr> : debug me at error >= <errornr>
|
|
debugging valgrind internals monitor commands:
|
|
v.do expensive_sanity_check_general : do an expensive sanity check now
|
|
v.info gdbserver_status : show gdbserver status
|
|
v.info memory [aspacemgr] : show valgrind heap memory stats
|
|
(with aspacemgr arg, also shows valgrind segments on log output)
|
|
v.info exectxt : show stacktraces and stats of all execontexts
|
|
v.info scheduler : show valgrind thread state and stacktrace
|
|
v.info stats : show various valgrind and tool stats
|
|
v.info unwind <addr> [<len>] : show unwind debug info for <addr> .. <addr+len>
|
|
v.set debuglog <level> : set valgrind debug log level to <level>
|
|
v.set hostvisibility [yes*|no] : (en/dis)ables access by gdb/gdbserver to
|
|
Valgrind internal host status/memory
|
|
v.translate <addr> [<traceflags>] : debug translation of <addr> with <traceflags>
|
|
(default traceflags 0b00100000 : show after instrumentation)
|
|
An additional flag 0b100000000 allows to show gdbserver instrumentation
|
|
memcheck monitor commands:
|
|
xb <addr> [<len>]
|
|
prints validity bits for <len> (or 1) bytes at <addr>
|
|
bit values 0 = valid, 1 = invalid, __ = unaddressable byte
|
|
Then prints the bytes values below the corresponding validity bits
|
|
in a layout similar to the gdb command 'x /<len>xb <addr>'
|
|
Example: xb 0x........ 10
|
|
get_vbits <addr> [<len>]
|
|
Similar to xb, but only prints the validity bytes by group of 4.
|
|
make_memory [noaccess|undefined
|
|
|defined|Definedifaddressable] <addr> [<len>]
|
|
mark <len> (or 1) bytes at <addr> with the given accessibility
|
|
check_memory [addressable|defined] <addr> [<len>]
|
|
check that <len> (or 1) bytes at <addr> have the given accessibility
|
|
and outputs a description of <addr>
|
|
leak_check [full*|summary]
|
|
[kinds kind1,kind2,...|reachable|possibleleak*|definiteleak]
|
|
[heuristics heur1,heur2,...]
|
|
[increased*|changed|any]
|
|
[unlimited*|limited <max_loss_records_output>]
|
|
* = defaults
|
|
where kind is one of:
|
|
definite indirect possible reachable all none
|
|
where heur is one of:
|
|
stdstring length64 newarray multipleinheritance all none*
|
|
Examples: leak_check
|
|
leak_check summary any
|
|
leak_check full kinds indirect,possible
|
|
leak_check full reachable any limited 100
|
|
block_list <loss_record_nr>|<loss_record_nr_from>..<loss_record_nr_to>
|
|
[unlimited*|limited <max_blocks>]
|
|
[heuristics heur1,heur2,...]
|
|
after a leak search, shows the list of blocks of <loss_record_nr>
|
|
(or of the range <loss_record_nr_from>..<loss_record_nr_to>).
|
|
With heuristics, only shows the blocks found via heur1,heur2,...
|
|
* = defaults
|
|
who_points_at <addr> [<len>]
|
|
shows places pointing inside <len> (default 1) bytes at <addr>
|
|
(with len 1, only shows "start pointers" pointing exactly to <addr>,
|
|
with len > 1, will also show "interior pointers")
|
|
monitor command request to kill this process
|