昨天一个同事说op想用gdb来进行日志切分,来提高且分的效率。这里先说一下,我们的日志切分实现。之前的日志切分是靠crontab脚本定期mv来实现的,日志库在写日志的时候能够检测到日志文件不存在了,就会自动按照之前的文件名来创建新的文件来写入。这种方法需要在写入日志的时候进行额外检查。
使用gdb的话,其实很简单,找到日志文件句柄,close掉,rename之前的日志文件,open按照之前的名字创建文件。由于open返回的fd会占用之前的关闭的fd,因此可以不用dup来复制fd。
这里面主要用到就是gdb call。GDB 提供的 call 命令允许调试者在当前函数调用栈的栈顶调用函数,犹如在被调试的程序中执行的一般。
参考中gdb attach到运行的程序上,然后把标准输出重定向也是这个思路。
参考:
阅读(9580) | 评论(0) | 转发(0) |