引自:韦东山嵌入式视频第二期 “第31课第3节_应用调试之配置修改内核打印用户态段错误信息_P” 第6分钟起。

1.配置内核支持DEBUG_USER  (勾选 Kernel hacking -> Verbose user fault messages[*] 即可)(视频第8:23)

2.设置bootargs,添加参数 user_debug = 0xFF 即可。 user_debug的每一位代表设置不同的模式,具体模式可参考文件:include/asm-arm/System.h下的UDBG_XXX。

如果执行有段错误的程序时会有详细错误信息打印出来。

你可以根据PC值和各个寄存器值来定位错误位置。

首先对问题应用程序进行反汇编: arm-linux-objdump -D  FileName > AnotherFile

然后打开AnotherFile查看反汇编,定位PC值处的指令即可。

附:

查看系统调用函数的地址范围:查看文件system.map即可。

查看当前系统某个函数所在地址:查看/proc/kallsyms文件(文件较大,最好重定位到文件后再查看)

查看函数调用顺序: strace -o xxxFile  ./xxx   然后查看xxxFile即可

转载于:https://www.cnblogs.com/yinsua/p/4429766.html

linux下打印用户态段错误信息的一种方法相关推荐

  1. Linux下判断磁盘是SSD还是HDD的几种方法

    文章目录 1.使用Linux相关命令 2.linux查看磁盘所在槽位 1.使用Linux相关命令 方法1: 如果是直通盘,即JBOD模式,方法则正确 如果返回1则表示磁盘可旋转,那么就是HDD了:反之 ...

  2. Linux下让进程在后台可靠运行的几种方法

    想让进程在断开连接后依然保持运行?如果该进程已经开始运行了该如何补救? 如果有大量这类需求如何简化操作? 我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一 ...

  3. linux下打包deb文件,制作deb包的三种方法

    制作deb包的三种方法 发布时间:2008-06-10 16:05:39来源:红联作者:Mhynan 我所知道的制作deb包有三种方法,一种是将现有的文件打包,安装该包就像将打包的文件释放到某个目录: ...

  4. 查看oracle错误信息,经验:查看oracle错误信息的两种方法

    oracle又报错了,但是他的错误码让我一头雾水.我怎么知道他的错误码是什么含义呢??该死的oracle为什么有这么多错误码呀?? 不要生气,oracle虽然有很多错误码.但是他已经给你方法去查看这些 ...

  5. linux c代码出现段错误,在linux下代码运行出现段错误,求大神

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include #include #include #define PATH1 "/proc/meminf ...

  6. linux内存不足+段错误,在linux下代码运行出现段错误,求大神

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include #include #include #define PATH1 "/proc/meminf ...

  7. linux 运行段错误,在linux下代码运行出现段错误,求大神

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include #include #include #define PATH1 "/proc/meminf ...

  8. linux运行出现断错误,在linux下代码运行出现段错误,求大神

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include #include #include #define PATH1 "/proc/meminf ...

  9. 用linux命令清空文件夹,技能包!Linux 下清空或删除大文件内容的 5 种方法

    导读 在 Linux 终端下处理文件时,有时我们想直接清空文件的内容但又不必使用任何Linux命令行编辑器 去打开这些文件.那怎样才能达到这个目的呢?在这篇文章中,我们将介绍几种借助一些实用的命令来清 ...

  10. linux设置环境变量java_home,Linux下修改和设置环境变量JAVA_HOME的三种方法

    1. 永久修改,对所有用户有效 # vi /etc/profile //按键盘[Shift + g], 在profile文件最后添加下面的内容: export JAVA_HOME = /home/my ...

最新文章

  1. 理解人类世界的常识对于人工智能是一项挑战
  2. AGC029 E: Wandering TKHS
  3. linux下c语言抓包库libpcap
  4. css选择器的综合使用
  5. JDBC数据对象存储
  6. C/C++ OpenCV中值滤波双边滤波
  7. bzoj 5302: [Haoi2018]奇怪的背包
  8. Linux shell 脚本中, $@ 和$# 分别是什么意思?
  9. __asm__ __volatile__ 嵌入式内嵌汇编语法解构
  10. 一亿像素!小米CC9 Pro明日正式首卖:2799元起
  11. python下载-各种版本的Python下载安装教程
  12. jq默认选中每项第一个
  13. 博文视点大讲堂第42期——程序员修炼道路上的“葵花宝典”
  14. redis JAVA hmset_Spring boot 连接Redis实现HMSET操作
  15. Web安全:XSS、CSRF以及如何防范
  16. 如何解决Mac使用向日葵(sunlogin)经常无法打开 connect is error
  17. java算法2——费氏数列
  18. linux版flash下载工具,Linux系统下安装Flash浏览器插件的方法
  19. Ubuntu-安装汉语拼音输入法
  20. 【老九学堂】【C++】编码命名规范

热门文章

  1. From Apprentice To Artisan 翻译 08
  2. C#中声明、调用和配置事件的演示源码
  3. git学习笔记(上)
  4. JNI学习积累之三 ---- 操作JNI函数以及复杂对象传递
  5. Css、javascript、dom(一)
  6. POJ1860Currency Exchange(SPFA)
  7. 利用wcf传递字节的简单例子
  8. 未定义标识符_ConnectionPtr
  9. Tensorflow 搭建自己的神经网络(四)
  10. TensorFlow相关的一些技巧