转自:https://blog.csdn.net/adaptiver/article/details/12778621

关于CONFIG_DEBUG_USER
把menuconfig中查到的 CONFIG_DEBUG_USER 信息copy在下面:
  | CONFIG_DEBUG_USER:
  |
  | When a user program crashes due to an exception, the kernel can
  | print a brief message explaining what the problem was. This is
  | sometimes helpful for debugging but serves no purpose on a
  | production system. Most people should say N here.
  |
  | In addition, you need to pass user_debug=N on the kernel command
  | line to enable this feature.  N consists of the sum of:
  |
  |     1 - undefined instruction events
  |     2 - system calls
  |     4 - invalid data aborts
  |     8 - SIGSEGV faults
  |    16 - SIGBUS faults
  |
  | Symbol: DEBUG_USER [=n]
  | Type  : boolean
  | Prompt: Verbose user fault messages
  |   Defined at arch/arm/Kconfig.debug:49
  |   Location:
  |     -> Kernel hacking

要试用该功能:

首先在config文件中添加该选项,然后在 kernel 的cmdline中添加 user_debug=1 或者 user_debug=31
类似:
console=ttyS2 quiet user_debug=31
setenv bootargs console=ttySAC0,115200 user_debug=1 saveenv

user_debug的值可根据情况选定,下面这几个宏与上面的粗体部分可对照一下,可得知各个bit使能之后能得到的信息。

#define UDBG_UNDEFINED (1 << 0)
#define UDBG_SYSCALL (1 << 1)
#define UDBG_BADABORT (1 << 2)
#define UDBG_SEGV (1 << 3)
#define UDBG_BUS (1 << 4)

有一篇文章就这一点而言有参考意义:

http://blog.chinaunix.net/uid-25756789-id-3420210.html

CONFIG_DEBUG_USER【转】的更多相关文章

  1. Arm Linux系统调用流程详细解析

    Linux系统通过向内核发出系统调用(system call)实现了用户态进程和硬件设备之间的大部分接口. 系统调用是操作系统提供的服务,用户程序通过各种系统调用,来引用内核提供的各种服务,系统调用的 ...

  2. ARM应用调试思路、方法总结、笔记

    一.应用调试1:使用strace命令来跟踪系统调用 二.应用调试2:使用GDB来调试应用程序 编译gdb,gdbservertar xjf gdb-7.4.tar.bz2cd gdb-7.4/./co ...

  3. 41.Linux应用调试-修改内核来打印用户态的oops

    1.在之前第36章里,我们学习了通过驱动的oops定位错误代码行 第36章的oops代码如下所示: Unable to handle kernel paging request at //无法处理内核 ...

  4. 应用调试(三)oops

    目录 应用调试(三)oops 引入 配置内核打开用户oops CONFIG_DEBUG_USER user_debug 设置启动参数测试 打印用户堆栈 分析栈 main的调用 title: 应用调试( ...

  5. linux c段错误分析方法

    from:http://blog.csdn.net/adaptiver/article/details/37656507 一. 段错误原因分析 1 使用非法的指针,包括使用未经初始化及已经释放的指针( ...

  6. ARM Linux系统调用的原理

    转载自:http://blog.csdn.net/hongjiujing/article/details/6831192 ARM Linux系统调用的原理 操作系统为在用户态运行的进程与硬件设备进行交 ...

随机推荐

  1. 博主自传——蒟蒻的OI之路

    博主来自河北石家庄市第二中学,现在读高二,主攻信息学竞赛(其实并没有学习其他学科竞赛). NOIP中人品大爆发,使劲挤进河北省一等奖队伍,侥幸留在竞赛团队中(差点就淘汰出局啦). 关于我的ID,YOU ...

  2. SDL_BlitSurface

    SDL_BlitSurface Use this function to perform a fast surface copy to a destination surface. Contents ...

  3. [学习笔记]prufer序列

    前言 PKUWC和NOIWC都考察了prufer序列,结果统统爆零 prufer序列就是有标号生成树对序列的映射 prufer序列生成 每次选择编号最小的叶子删掉,把叶子的父亲加入prufer序列,直 ...

  4. js兼容火狐显示上传图片预览效果

    js兼容火狐显示上传图片预览效果[谷歌也适用] <!doctype html> <html> <head> <meta content="text/ ...

  5. php 开启 opcache 之后 require、include 还会每次都重新加载文件吗?

    当前目录有以下两个文件 index.php <?php var_dump(require 'A.php'); A.php <?php return 123; 接着运行: php -S 0. ...

  6. maven 排除test测试类

    <!-- 不编译test --> <plugin> <groupId>org.apache.maven.plugins</groupId> <ar ...

  7. (string高精度)A + B Problem II hdu1002

    A + B Problem II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  8. 单机安装ELK

    . 简介 1.1 介绍 ELK是三个开源工具组成,简单解释如下: Elasticsearch是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格 ...

  9. 面向对象【day07】:多态(九)

    本节内容 概述 多态 小结 一.概述 多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作 ...

  10. ajax跨域原理以及jsonp使用

    jsonp介绍: JSONP(JSON with Padding)是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题. 由于同源策略,一般来说位于 server1.example. ...