
kernel-debug
文章平均质量分 80
kernel-debug
kunkliu
good good study
展开
-
Linux打印内核函数调用栈(dump_stack)
在Linux内核中提供了一个可以打印出内核调用堆栈的函数 dump_stack()该函数在我们调试内核的过程中可以打印出函数调用关系,该函数可以帮助我们进行内核调试,以及让我们了解内核的调用关系。该函数头文件为:#include <asm/ptrace.h>使用方式:直接在想要查看的函数中添加dump_stack();案例:随便写了一个模块test.c,test.c代码如下: #include <linux/module.h> &nbs转载 2022-04-26 15:48:19 · 5758 阅读 · 0 评论 -
关闭Linux中的串口打印
转载地址:http://blog.youkuaiyun.com/zmc1216/article/details/34473197项目中用到串口通信,但是这个串口也用于控制台。为了保证串口通信时不能有控制台发出的消息,需要关闭打印。在测试过程中发现,有三种类型的打印,一是uboot的打印,在Starting kernel ...之前的打印都是;二是prink的打印,linux kernel不能用prin...转载 2017-10-25 10:48:52 · 5335 阅读 · 0 评论 -
linux内核打印数据到串口控制台,printk数据不打印问题
转载地址:https://www.cnblogs.com/wmx-learn/p/5344821.html1、查看当前控制台的打印级别cat /proc/sys/kernel/printk4 4 1 7其中第一个“4”表示内核打印函数printk的打印级别,只有级别比他高的信息才能在控制台上打印出来,既 0-3级别的信息2、修改打印echo "新的打印级别...转载 2018-05-24 09:38:32 · 4545 阅读 · 0 评论 -
linux 之assert学习
转载地址:https://blog.youkuaiyun.com/supenman_mwg/article/details/8601387assert是头文件assert.h中的一个宏定义,执行到assert(test()),如果test()返回值为真,则继续往下执行,如果为假,则报错退出程序;如果在包含assert.h之前定义一个NDEBUG宏(表示No Debug),就可以禁用assert.h中的...转载 2019-06-27 17:10:10 · 1396 阅读 · 0 评论 -
Linux内核调试之dump_stack的简单使用
转载地址:https://blog.youkuaiyun.com/LinSeeker85/article/details/86597145刚刚接触内核,在调试过程中用printk打印信息当然是直接有效的办法,但当我们不知到一个函数或者一个模块到底在哪里出了问题时我们可以利用dump_stack有效的找到问题的根源,下面只是简单的给出了使用方法。下面是使用例子Makefile文件obj-...转载 2019-06-27 16:55:40 · 1211 阅读 · 0 评论 -
linux内核打印级别
转载地址:https://www.cnblogs.com/Caden-liu8888/p/5652168.html1.printk()是一个内核的一个记录日志的机制,经常用来记录信息或者警告。printk可以指定输出日志的优先级,在include/linux/kern_levels.h中有相应的宏定义 1 #define KERN_SOH "\001" /* ASC...转载 2018-11-26 14:13:15 · 2547 阅读 · 0 评论 -
kernel 3.10内核源码分析--BUG_ON流程
转载地址:http://blog.chinaunix.net/uid-14528823-id-4902857.html一、问题在dmesg或messages中常见BUG_ON的相关打印,如:------------[ cut here ]------------kernel BUG at ...也常见其它的异常打印,比如page_fault相关的,softlockup相关的,有时...转载 2019-06-27 16:44:44 · 929 阅读 · 0 评论 -
内核 BUG_ON 以及WARN_ON 用法作用
转载地址:https://blog.youkuaiyun.com/qiaoshouliang/article/details/8512381一些内核调用可以用来方便标记bug,提供断言并输出信息。最常用的两个是BUG()和BUG_ON()。当被调用的时候,它们会引发oops,导致栈的回溯和错误信息的打印。为什么这些声明会导致 oops跟硬件的体系结构是相关的。大部分体系结构把BUG()和BUG_ON()定...转载 2019-06-27 16:39:24 · 6763 阅读 · 0 评论 -
BUG_ON(), WARN_ON()和panic()
转载地址:https://blog.youkuaiyun.com/qq_40732350/article/details/84500730内核中有许多地方调用类似BUG()的语句,它非常像一个内核运行时的断言,意味着本来不该执行到BUG()这条语句,一旦执行即抛出Oops。 BUG()的定义为:#define BUG() do { \ printk("BUG: failure at %s:%d...转载 2019-06-27 16:04:52 · 1301 阅读 · 0 评论 -
linux 内核态调试函数BUG_ON()
转载地址:https://www.cnblogs.com/woshare/p/5770905.html一些内核调用可以用来方便标记bug,提供断言并输出信息。最常用的两个是BUG()和BUG_ON()。 当被调用的时候,它们会引发oops,导致栈的回溯和错误信息的打印。为什么这些声明会导致 oops跟硬件的体系结构 是相关的。大部分体系结构把BUG()和BUG_ON()...转载 2019-06-27 15:20:16 · 335 阅读 · 0 评论 -
Linux 内核动态调试
转载地址:https://blog.youkuaiyun.com/u014782704/article/details/78092846源码使用pr_debug(), pr_info(), pr_err()等pr_xxx()家族打印函数需要打印时(即动态调试), 在命令行输入以下命令, 包含在func_name1和func_name2中的所有的pr_xxx()调试信息都可输出到内核日志里:echo...转载 2018-11-12 11:34:47 · 915 阅读 · 0 评论 -
如何打开pr_debug调试信息
转载地址:https://blog.youkuaiyun.com/helloanthea/article/details/25330809如何打开pr_debug调试信息,先不要着急,我们先静下心来分析一下这个函数的源代码。。。以DMA的调试为例,先来看看一个pr_debug函数调用 pr_debug("%s: %s (%s)\n", __func__...转载 2018-11-12 10:57:05 · 365 阅读 · 0 评论 -
dynamic debug动态打印- pr_debug
转载地址: https://blog.youkuaiyun.com/u012719256/article/details/55262058之前介绍过了 printk_once , 只打印一次。 有些情况下,需要kernel运行时动态打印与否,dynamic debug就派上用场了。 具体用法可以参考: kernel/Documentationdynamic-debug-how...转载 2018-11-12 10:48:28 · 735 阅读 · 0 评论 -
kernel文件动态调试功能 -- dynamic_debug 打开及半闭
转载地址:https://blog.youkuaiyun.com/kentas_dxpc/article/details/49679269Kernel def_config中需要打开以下两个宏CONFIG_DEBUG_FS=yCONFIG_DYNAMIC_DEBUG=y (1)step1:open pr_debugadb rootadb remountadb shell打开动态调...转载 2018-11-12 10:44:48 · 2332 阅读 · 0 评论