Jump to the invalid address stated on the next line

本文介绍了一个使用C语言宏定义实现的错误日志记录函数。该函数通过宏展开的方式构建错误信息,并将其写入指定的日志文件中。同时,它还能够将错误信息输出到标准输出流以便于调试。文章指出,当格式化字符串和参数可能导致缓冲区溢出时,应适当增加缓冲区大小。
#define LOG_ERROR(s, args...) {\
	char _error_log[128];\
	sprintf(_error_log, "[Error] at %d in %s(%s) line %d, "s, now_sec.tv_sec,__FILE__, __FUNCTION__, __LINE__, ##args);\
	logi(_error_log, "/var/log/error_fh.log");\
	printf("\033[31;48m%s\033[0m\n", _error_log);\
}

如果传给LOG_ERROR的fmt和args超过128,就会报"Jump to the invalid address stated on the next line"

改大一点儿,比如1024,这样多不了多少内存,也不那么容易遇到怪问题!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值