我目前不得不编写malloc()和free()的实现,并给出了一个驱动程序,它将运行我的两个实现.
但是目前,我是segfaulting,因为free()试图释放数十亿字节(这是错误的)有效载荷大小.我有运行GDB的行号和行号,但我需要知道malloc()和free()是否被多次调用,以确认至少有一个案例它运行顺利.
小智 12
首先为malloc和free设置断点.然后使用具有高值的"ignore"命令来抑制在这些断点处真正停止.GDB仍将计算断点被击中的次数.当您调用"info breakpoints"时,GDB会向您显示这些计数.
只是为了完成Martin的信息,请运行gdb,然后在gdb提示符下运行:
b <file:line_number or function name>
ignore <breakpoint identifier> 100000
Run Code Online (Sandbox Code Playgroud)
然后,您运行您的可执行文件(或您的履历表),然后,当您想检查断点被击中的次数时,在gdb提示符下:
info breakpoints
Run Code Online (Sandbox Code Playgroud)
kar*_*ick -6
(gdb) help break
在指定行或函数处设置断点。
Break [LOCATION] [线程 THREADNUM] [if CONDITION]
LOCATION 可以是行号、函数名称或“*”和地址。
如果指定了行号,则在该行的代码开头处中断。
如果指定了函数,请在该函数的代码开头处中断。
如果指定了地址,则在该确切地址处中断。
如果没有 LOCATION,则使用所选堆栈帧的当前执行地址。
这对于返回堆栈帧时中断很有用。