Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux kernel linux内核的内存调试器_Linux Kernel_Linux Device Driver_Embedded Linux - Fatal编程技术网

Linux kernel linux内核的内存调试器

Linux kernel linux内核的内存调试器,linux-kernel,linux-device-driver,embedded-linux,Linux Kernel,Linux Device Driver,Embedded Linux,linux内核是否有内存调试器? 在基于android/linux arm的硬件上,我们遇到了“空指针解引用”内核OOP以及其他崩溃问题 感谢现代内核包含大量内置诊断工具(这些工具可在内核源代码配置工具的“内核黑客”子菜单中找到)。但是,在嵌入式目标上,还可以选择使用gdb和良好的jtag调试器,例如Abatron BDI系列(当然,这将允许进行最精确的诊断,包括中断相关问题的诊断) 在没有硬件调试器的情况下,以下选项可以非常方便地检测内存泄漏(不要忘记使用“使用调试信息编译内核”和“使用帧指针

linux内核是否有内存调试器? 在基于android/linux arm的硬件上,我们遇到了“空指针解引用”内核OOP以及其他崩溃问题


感谢

现代内核包含大量内置诊断工具(这些工具可在内核源代码配置工具的“内核黑客”子菜单中找到)。但是,在嵌入式目标上,还可以选择使用gdb和良好的jtag调试器,例如Abatron BDI系列(当然,这将允许进行最精确的诊断,包括中断相关问题的诊断)

在没有硬件调试器的情况下,以下选项可以非常方便地检测内存泄漏(不要忘记使用“使用调试信息编译内核”和“使用帧指针编译内核”集编译内核):

  • 内核内存泄漏检测器-用于捕获kmalloc/kfree错误
  • KGDB(带有子选项)-这将启用内核中的内置gdb服务器,可以通过串行端口从gdb前端访问该服务器。还有一个KGDB_KDB选项可以手动执行相同的操作(通过省略gdb前端并使用人工管理的协议)
  • kmemcheck-需要最少的人机交互和最多的机器资源,但可以方便地进行与内存相关的初始问题分析

  • 还有许多其他诊断选项,可用于更具体的问题类别。它们中的大多数都有合理的文档记录,包括内核配置工具片段以及源代码的文档/子目录中的单独文档(+各种在线出版物)。

    我实际上有用于arm板的JTAG调试器。如何处理JTAG的空指针问题?另外,我检查了kmemcheck,但它可能不适用于ARM arch。知道吗?根本不存在“空指针问题”。你得到的不是坏掉的软件就是坏掉的硬件(RAM定时问题,等等)。后者可以通过用户空间工具或硬件调试器进行诊断(加载/卸载大块数据,注意命中可能有问题的内存库)。前者将以通常的方式修复:打印输出、断点和隔离(从最小的内核配置开始,逐步添加特性)。