>>683
kgdbなら、i386-elfを読めるgdbが動けばlinuxでなくても使えるはず。

んで本題。
arch/i386/kernel/process.cを読めばわかりますが、
system_callの所で作ったスタックフレームの構造に依存しているので、
スタックの状態を維持したまま呼んであげないといけません。

アセンブラなら、
 call 自前の処理
 mov 元のアドレス,%%eax
 jmp %%eax
てなかんじで呼べば問題無いはず。
(i386のアセンブラは最近書いていないので参考程度に)

もう少し汎用的な書き方にならないかなーと思いますが、
CPUコンテキストが絡む話なので難しそうだな。