- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
如何转储内核模块的堆栈?
请注意,我不想使用 BUG()
,因为这会终止进程。我只想转储堆栈。
另请注意,我要求的不是回溯,而是实际的堆栈。
例子:
[14027.797527] ------------[ cut here ]------------
[14027.797532] Kernel BUG at ffffffffa020e05e [verbose debug info unavailable]
[14027.797538] invalid opcode: 0000 [#3] SMP
[14027.797544] Modules linked in: monks(OF) snd_hrtimer(F) vboxsf(OF) vboxvideo(OF) drm bnep rfcomm bluetooth joydev(F) snd_intel8x0 snd_ac97_codec ac97_bus snd_pcm(F) snd_page_alloc(F) snd_seq_midi(F) snd_seq_midi_event(F) snd_rawmidi(F) snd_seq(F) snd_seq_device(F) snd_timer(F) ppdev(F) parport_pc(F) snd(F) psmouse(F) lp(F) i2c_piix4 mac_hid vboxguest(OF) parport(F) microcode(F) serio_raw(F) soundcore(F) vesafb(F) hid_generic usbhid hid ahci(F) libahci(F) e1000(F) [last unloaded: monks]
[14027.797569] CPU 0
[14027.797576] Pid: 15169, comm: a.out Tainted: GF D O 3.8.0-29-generic #42-Ubuntu innotek GmbH VirtualBox/VirtualBox
[14027.797582] RIP: 0010:[<ffffffffa020e05e>] [<ffffffffa020e05e>] hooked_sys32_pre_close+0x3e/0x40 [monks]
[14027.797594] RSP: 0000:ffff880038787f3c EFLAGS: 00010286
[14027.797599] RAX: 0000000000000025 RBX: ffff88003b843c80 RCX: 00000000000057db
[14027.797604] RDX: 00000000000057db RSI: 0000000000000082 RDI: 0000000000000246
[14027.797609] RBP: ffff880038787f44 R08: 000000000000000a R09: 0000000000000000
[14027.797614] R10: 00000000000003e6 R11: 0000000000000006 R12: 0000000000000000
[14027.797619] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
[14027.797625] FS: 0000000000000000(0000) GS:ffff88003fc00000(0000) knlGS:0000000000000000
[14027.797630] CS: 0010 DS: 002b ES: 002b CR0: 000000008005003b
[14027.797635] CR2: 00000000f778dba0 CR3: 000000003cad9000 CR4: 00000000000006f0
[14027.797644] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[14027.797650] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[14027.797655] Process a.out (pid: 15169, threadinfo ffff880038786000, task ffff88003a0eae80)
[14027.797660] Stack:
[14027.797665] 0000000000000003 ffff880038787f78 ffffc900003db054 ffffffff816d7149
[14027.797671] 0000000000000000 0000000000000000 0000000000000000 3b843c8000000000
[14027.797677] 816d7149ffff8800 00000000ffffffff 0000000000000000 0000000000000000
[14027.797684] Call Trace:
[14027.797698] [<ffffffff816d7149>] ? ia32_do_call+0x13/0x13
[14027.797703] Code: 00 48 c7 c7 d9 10 21 a0 48 89 c6 48 89 c3 31 c0 e8 63 25 4b e1 48 89 5d 34 48 8b 75 34 48 c7 c7 f5 10 21 a0 31 c0 e8 4d 25 4b e1 <0f> 0b 66 66 66 66 90 55 48 89 e5 53 48 8b 55 40 48 8b 5d 48 48
[14027.797731] RIP [<ffffffffa020e05e>] hooked_sys32_pre_close+0x3e/0x40 [monks]
[14027.797739] RSP <ffff880038787f3c>
[14027.797746] ---[ end trace 6c79e7a670d4c886 ]---
我想不终止进程的信息是从行[14027.797660]
到行[14027.797677]
问候!
编辑:
dump_stack()
输出:
[17467.729035] Pid: 16281, comm: a.out Tainted: GF D O 3.8.0-29-generic #42-Ubuntu
[17467.729042] Call Trace:
[17467.729070] [<ffffffffa020e144>] hooked_sys32_pre_close+0x14/0x90 [monks]
[17467.729084] [<ffffffff816d7149>] ? ia32_do_call+0x13/0x13
这并不能满足我的需求。我做错了什么吗?
最佳答案
唯一比试图弄清楚如何转储堆栈的挫败感更糟糕的是,当您发现它被实际调用时 dump_stack()
- 假设有周围同事笑话你...
好吧,要么我脑子里烙印的东西并没有我想象的那么有用,要么这是 arch 代码相当不同的事情之一。我不熟悉 x86,但可以快速浏览一下 the function that appears to print that stack data建议 show_stack(NULL, NULL)
。
关于c - 转储内核模块堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21469742/
#include using namespace std; class C{ private: int value; public: C(){ value = 0;
这个问题已经有答案了: What is the difference between char a[] = ?string?; and char *p = ?string?;? (8 个回答) 已关闭
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 7 年前。 此帖子已于 8 个月
除了调试之外,是否有任何针对 c、c++ 或 c# 的测试工具,其工作原理类似于将独立函数复制粘贴到某个文本框,然后在其他文本框中输入参数? 最佳答案 也许您会考虑单元测试。我推荐你谷歌测试和谷歌模拟
我想在第二台显示器中移动一个窗口 (HWND)。问题是我尝试了很多方法,例如将分辨率加倍或输入负值,但它永远无法将窗口放在我的第二台显示器上。 关于如何在 C/C++/c# 中执行此操作的任何线索 最
我正在寻找 C/C++/C## 中不同类型 DES 的现有实现。我的运行平台是Windows XP/Vista/7。 我正在尝试编写一个 C# 程序,它将使用 DES 算法进行加密和解密。我需要一些实
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
有没有办法强制将另一个 窗口置于顶部? 不是应用程序的窗口,而是另一个已经在系统上运行的窗口。 (Windows, C/C++/C#) 最佳答案 SetWindowPos(that_window_ha
假设您可以在 C/C++ 或 Csharp 之间做出选择,并且您打算在 Windows 和 Linux 服务器上运行同一服务器的多个实例,那么构建套接字服务器应用程序的最明智选择是什么? 最佳答案 如
你们能告诉我它们之间的区别吗? 顺便问一下,有什么叫C++库或C库的吗? 最佳答案 C++ 标准库 和 C 标准库 是 C++ 和 C 标准定义的库,提供给 C++ 和 C 程序使用。那是那些词的共同
下面的测试代码,我将输出信息放在注释中。我使用的是 gcc 4.8.5 和 Centos 7.2。 #include #include class C { public:
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我的客户将使用名为 annoucement 的结构/类与客户通信。我想我会用 C++ 编写服务器。会有很多不同的类继承annoucement。我的问题是通过网络将这些类发送给客户端 我想也许我应该使用
我在 C# 中有以下函数: public Matrix ConcatDescriptors(IList> descriptors) { int cols = descriptors[0].Co
我有一个项目要编写一个函数来对某些数据执行某些操作。我可以用 C/C++ 编写代码,但我不想与雇主共享该函数的代码。相反,我只想让他有权在他自己的代码中调用该函数。是否可以?我想到了这两种方法 - 在
我使用的是编写糟糕的第 3 方 (C/C++) Api。我从托管代码(C++/CLI)中使用它。有时会出现“访问冲突错误”。这使整个应用程序崩溃。我知道我无法处理这些错误[如果指针访问非法内存位置等,
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,因为
我有一些 C 代码,将使用 P/Invoke 从 C# 调用。我正在尝试为这个 C 函数定义一个 C# 等效项。 SomeData* DoSomething(); struct SomeData {
这个问题已经有答案了: Why are these constructs using pre and post-increment undefined behavior? (14 个回答) 已关闭 6
我是一名优秀的程序员,十分优秀!