[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
trouble of GDB
斉藤と申します。
RM5231-200の自社ボードで、NetBSD-1.4.2を動かしてます。
また一つ質問がありまして、NetBSD-1.5でも構いませんので、
結果を教えていただけないでしょうか。
gdbを使うと、ブレークポイントや、シングルステップがうまくかかりません。
sys/kern/sys_process.c の
sys_ptrace(p, v, retval)
{
...
case PT_WRITE_I: /* XXX no seperate I and D spaces */
case PT_WRITE_D:
write = 1;
...
return (procfs_domem(p, t, NULL, &uio));
を
error = procfs_domem(p, t, NULL, &uio);
if (write) { /* PT_WRITE_I or PT_WRITE_D */
void flush_cache_ptrace(caddr_t, int);
flush_cache_ptrace((caddr_t)SCARG(uap, addr), sizeof (int));
}
return (error);
に変更(flush_cache_ptrac()のキャッシュをクリアする関数は自作)
を加えると問題なく動作するようになりました。
キャッシュのクリアの問題かと思ったのですが、
いまさらgdbが動かないなどとゆうことはないですよね。
だとすれば、もっと別のところを直す必要があると思いますが、
確認したいので、どなたかお返事お願いします。
以上、よろしくお願い致します。
PS.
ついでの余計な話ですが、gdbが悪いのかと思って、
gdb-4.18を動かしてしまいました。今のはgdb-4.17ベースですよね。
PT_STEPはmips/ptrace.hでコメントになっていますが、使えないのですか?