Debugging with GDB (September 2007)

146 Debugging with GDB
Stack trace collection slows down the program because it occurs on e very allocation
call. Therefore, if the program is allocation-intensive, WDB can spend a substantial
amount of time collecting stack traces.
You can improve performance by using the command:
set heap-check min-leak-size num
For example, if you use,
set heap-check min-leak-size 100
WDB does not collect stack traces for allocations smaller than 100 bytes. HP WDB
still reports leaks smaller than this size, but does not include a stack trace.
14.10.7.3 Specifying minimum block size
The min-heap-size option reports the heap allocations that exceed the specified num-
ber <num> of bytes based on the cumulative number of bytes that are allocated at each
call-site, which is inclusive of multiple calls to malloc at a particular call site.
Example: set heap-check min-heap-size 100
When the option min-heap-size is set to 100, GDB reports all the cumulative block
allocations that 100 bytes at each call-site.
14.10.8 Scenarios in memory debugging
14.10.8.1 Stop when freeing unallocated or deallocated blocks
WDB enables you to locate improper calls to free() and realloc(), with the com-
mand
In interactive debugging mode: set heap-check free [on | off].
In batch mode debugging: check_free [on | off].
With this setting on, whenever the program calls free() or realloc() WDB inspects
the parameters to verify that they are pointing to valid currently allocated heap blocks.
If WDB detects an erroneous call to free(), it stops the program and reports this
condition. You can then look at the stack trace to understand where and how the
problem occurred.
14.10.8.2 Stop when freeing a block if bad writes occurred
outside block boundary
WDB enables you to locate problems caused by heap block overflow or underflow with
the command
In Interactive debugging mode: set heap-check bounds [on | off]
In batch mode debugging: check_bounds [on | off].
When bounds checking is turned on, WDB allocate s extra space at the beginning and
end of a block during allocation and fills it up with a specific pattern. When blocks