浅谈在linux kernel中打印函数调用的堆栈的方法

 更新时间:2016年12月24日 10:15:08   投稿:jingxian  
下面小编就为大家带来一篇浅谈在linux kernel中打印函数调用的堆栈的方法。小编觉得挺不错的。现在就分享给大家。也给大家做个参考。一起跟随小编过来看看吧

在Linux内核调试中,经常用到的打印函数调用堆栈的方法非常简单,只需在需要查看堆栈的函数中加入:

dump_stack(); 或 __backtrace(); 即可

dump_stack()在~/kernel/ lib/Dump_stack.c中定义

void dump_stack(void)
{
 printk(KERN_NOTICE
 "This architecture does not implement dump_stack()/n");
}
__backtrace()的定义在~/kernel/arch/arm/lib/backtrace.S中
 
ENTRY(__backtrace)
 mov r1, #0x10
 mov r0, fp

在linux应用程序调试中,使用的方法是:

backtrace
backtrace_symbols

可以在函数中加入如下代码:

void *bt[20]; 
 char **strings; 
 size_t sz;
 sz = backtrace(bt, 20); 
 strings = backtrace_symbols(bt, sz); 
    for(i = 0; i < sz; ++i) 
        fprintf(stderr, "%s/n", strings[i]);

以上就是小编为大家带来的浅谈在linux kernel中打印函数调用的堆栈的方法全部内容了,希望大家多多支持脚本之家~

相关文章

  • Discuz 7.0伪静态ReWrite的.htaccess规则

    Discuz 7.0伪静态ReWrite的.htaccess规则

    在确定您的服务器支持伪静态ReWrite后,您可以通过修改设置.htaccess文件来实现Discuz论坛的伪静态功能
    2010-12-12
  • Linux(Ubuntu) adb 无法识别的问题解决方法

    Linux(Ubuntu) adb 无法识别的问题解决方法

    这篇文章主要介绍了Linux(Ubuntu) adb 无法识别的问题解决方法的相关资料,需要的朋友可以参考下
    2016-11-11
  • Linux发邮件之mail命令详解

    Linux发邮件之mail命令详解

    这篇文章主要介绍了Linux发邮件之mail命令详解,详细的讲解了mail命令的用法等,非常具有实用价值,需要的朋友可以参考下。
    2016-12-12
  • ubuntu lighttpd+webpy (fastcgi)配置方法

    ubuntu lighttpd+webpy (fastcgi)配置方法

    首先安装 lighttpd 和 webpy,因为用 kpackagekit 做软件管理,在安装 webpy 的时候会自动安装 flup
    2009-07-07
  • Linux中使用crond工具创建定时任务的方法

    Linux中使用crond工具创建定时任务的方法

    这篇文章主要介绍了Linux中使用crond工具创建定时任务的方法,本文通过多种方法给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • Ubuntu 14.04下安装Eclipse的经验分享

    Ubuntu 14.04下安装Eclipse的经验分享

    在linux下配置开发环境有点麻烦,对于linux刚入门的菜鸟来说,命令使用不熟悉,环境也是朦朦胧胧,今天整理了一下ubnutu14.04下安装eclipse的步骤,希望对大家有用。废话不多说,进入主题
    2014-09-09
  • Linux使用Cron+AT实现在某个确定的时间段内随机执行命令

    Linux使用Cron+AT实现在某个确定的时间段内随机执行命令

    写了个脚本签到,但是不想总是在确定的时间签到,不然在数据库里面的记录太假了,所以需要在确定的时间段内,随机选个时间执行,最后想到了使用Cron+AT实现,需要的朋友可以参考下
    2016-07-07
  • Linux磁盘格式化命令详解

    Linux磁盘格式化命令详解

    这篇文章主要介绍了Linux磁盘格式化命令以及具体操作步骤,需要的朋友参考一下吧。
    2017-11-11
  • Apache中解决动态地址跳转死循环的方法

    Apache中解决动态地址跳转死循环的方法

    这篇文章主要介绍了Apache中解决动态地址跳转死循环的方法,另外作者还提出了尽量使用伪静态的建议,需要的朋友可以参考下
    2015-07-07
  • CentOS 7下配置ntp服务的方法教程

    CentOS 7下配置ntp服务的方法教程

    网络时间协议(NTP)用来同步网络上不同主机的系统时间。你管理的所有主机都可以和一个指定的被称为 NTP 服务器的时间服务器同步它们的时间。这篇文章主要给大家介绍了在CentOS 7下配置ntp服务并开启开机自动启动的方法教程,需要的朋友可以参考下。
    2017-05-05

最新评论