Mona ToDo
基準
- 落ちるのが良くない
- 遅いのは今はがまん
ToDo
GNOTE.EX5 が落ちる
textarea で Enter すると 100 % 落ちる。再現用に http://www.monaos.org/links.html に textarea を置いて実験。
syscall_stack_trace_enable を map ファイルのパスを指定して呼び、シンボル付きのスタックトレースを有効に。
しかし unknown ばかり。確かに map ファイルを見ると exact match していない。ふむ。eipの分だけずれたのかな。あとで A 氏に聞く。
name=GNOTE.EX5
tid =92
eax=1b8 ebx=c0069300 ecx=1b8 edx=3f93c08
esp=effff868 ebp=effff888 esi=c0069530 edi=c0069300
cs =2b ds =33 ss =3b cr3=348000
eflags=282 eip=a000435f
nullpo! stack trace:
(unknown) a000435f
(unknown) a0004e4b
(unknown) a000cf69
(unknown) a000d775
(unknown) a000e525
(unknown) a0011893
(unknown) a0003565
(unknown) a0006faf
(unknown) a002cbaf
(unknown) a000104a
(unknown) a0046831
PROVIDE (etext, .): 0x8 /home/taro/mona/lib/libmonapi-imp.a(d000377.o) (4c3161cc)
map ファイルからすると DrawCaretLine が怪しい。
logprintf してみると cursol 変数がコンストラクタで 0 に指定されてから setCursor される間に変な値に書き換わってしまうようだ。
GDB の watch point はまだ使えないので手動でしぼっていこう。範囲は狭いし。
値が書き換わってしまうポイントを見つけたが、値が変わるはずのないところで変わってる。GNOTE はマルチスレッドだっけか。