内核调用导致数据中止

时间:2012-05-02 23:44:42

标签: c exception-handling linux-kernel

我很少在嵌入式Linux中获得data_abort异常(kern = 2.6.10)ARM处理器

我的踪迹显示我得到了 来自__dabt_svc的do_DataAbort,它是数据中止的处理程序 来自do_DataAbort的do_page_fault 从exit.c中的某个地方do_page_fault 点击BUG_ON

BUG_ON(p == reaper || reaper-> state> = EXIT_ZOMBIE || reaper-> exit_state> = EXIT_ZOMBIE);

in function static inline void choose_new_parent - 在文件exit.c中 这个函数显然在linux / kernel / sched.h

中检查任务的父(struct task_struct)

当我打电话给任何人时,这里的任何人都可以确认我正在开始或结束内核中的任务:

iowrite8 ioread8
__kfifo_get / reset / put / len
wake_up
wait_event_interruptible_timeout
free_irq / disable_irq / request_irq
release / request _mem_region
copy_to / from _user
s3c2410_gpio_cfgpin_outp / inp / alt / pullup
_raw_modifyl / writel / readl
local_irq_restore / save
unregister_chrdev_region
kmalloc
clk_get_rate

其中任何一个都可能与为内核创建新任务有关吗?

我尝试追溯头文件,但这是一个真正的迷宫! 提前致谢

0 个答案:

没有答案