【跟我一起学gdb】(8)自动化gdb脚本之malloc和free每次调用的堆栈信息写日志

这篇博客介绍了如何使用GDB自动化脚本,在每次调用malloc或free时捕获堆栈信息并保存到日志文件中,详细讲解了脚本的使用方法及查看保存的backtrace日志文件的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

main.c

tom@ubuntu:~/dvp$ cat -n ./main.c 
     1	#include <stdlib.h>
     2	#include <stdio.h>
     3	
     4	void MyMalloc(const size_t siz, char** pptr)
     5	{
     6		*pptr = malloc(siz);
     7		return;
     8	}
     9	
    10	void MyFree(void* ptr)
    11	{
    12		free(ptr);
    13		return;
    14	}
    15	
    16	int main()
    17	{
    18		char* pcBuf1 = (char*)0;
    19		char* pcBuf2 = (char*)0;
    20		char* pcBuf3 = (char*)0;
    21		char* pcBuf4 = (char*)0;
    22	
    23		MyMalloc(10, &pcBuf1);
    24		MyMalloc(20, &pcBuf2);
    25		MyMalloc(30, &pcBuf3);
    26		MyMalloc(40, &pcBuf4);
    27	
    28	
    29		MyFree(pcBuf1);
    30		MyFree(pcBuf3);
    31		MyFree(pcBuf4);
    32	
    33		return 0;
    34	}
tom@ubuntu:~/dvp$ 

gdb自动化脚本

功能:每次调用malloc或free时都把堆栈保存在log文件中

tom@ubuntu:~/dvp$ cat ./gdbcmd_mallocfree_btlog.txt 
set pagination off		
set logging file 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值