ごくまれに組み込み Linux で data_abort 例外が発生します (kern=2.6.10) ARM プロセッサ
私のトレースは、__dabt_svc から do_DataAbort を取得することを示しています。これは、exit.c ヒット BUG_ON のどこかから do_DataAbort do_page_fault からのデータ中止 do_page_fault のハンドラーです。
BUG_ON(p == 死神 || 死神->状態 >= EXIT_ZOMBIE || 死神->exit_state >= EXIT_ZOMBIE);
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
それらのいずれかが、カーネルへの新しいタスクの作成に関連している可能性がありますか?
ヘッダーファイルをさかのぼってみましたが、まさに迷路!前もって感謝します