我正在使用GDB硬件调试器来调试Linux内核驱动程序。有时,会出现页面错误异常 我用GDB连接到处理器并尝试回溯。 GDB仅在页面错误异常后打印函数调用,然后打印:
Backtrace已停止:框架未保存PC
如何在异常之前回溯函数的堆栈?
答案 0 :(得分:0)
我想说....大多数时候我遇到页面错误+递归内核堆栈跟踪,很可能是堆栈溢出问题。
我从irq_exit()中发现,它试图获取curret_task_id并且由于堆栈溢出而导致任务结构被破坏。所以,转储初始崩溃转储但是backtrace()也依赖于当前的任务结构,并且不断触及page_fault或者某种无意义的回溯......
启用动态