栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在终止进程之前保存gmon.out

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在终止进程之前保存gmon.out

首先,我要感谢@wallyk给了我很好的初始指示。我解决了如下问题。显然,libc的gprof出口处理程序称为

_mcleanup
。因此,我为SIGUSR1注册了一个信号处理程序(未由第三方库使用),并调用
_mcleanup
_exit
。完美的作品!该代码如下所示:

#include <dlfcn.h>#include <stdio.h>#include <unistd.h>void sigUsr1Handler(int sig){    fprintf(stderr, "Exiting on SIGUSR1n");    void (*_mcleanup)(void);    _mcleanup = (void (*)(void))dlsym(RTLD_DEFAULT, "_mcleanup");    if (_mcleanup == NULL)         fprintf(stderr, "Unable to find gprof exit hookn");    else _mcleanup();    _exit(0);}int main(int argc, char* argv[]){    signal(SIGUSR1, sigUsr1Handler);    neverReturningLibraryFunction();}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/399173.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号