Conference Room SAD
[thread display] [new arrival display] [word search] [past log] [管理用]

Subject Re^6: Install SAD on FreeBSD/amd64 9.3
Date: 2014/08/06(Wed) 17:18:18
ContributorAkio Morita

> ktrace(1)/kdump(1)の結果です
> 落ちている近傍の物だけですがもっと上から追わないとわからないんでしょうか?
> 読み方もちょっとわからないのでどこを切り出せば情報になるのかわかりません
> 本当に申し訳ないです
>
> 84154 sad1.exe RET write 43/0x2b
> 84154 sad1.exe CALL madvise(0x8050c1000,0x41000,MADV_FREE)
> 84154 sad1.exe RET madvise 0
> 84154 sad1.exe CALL write(0x2,0x7fffffffdbc0,0x34)
> 84154 sad1.exe GIO fd 2 wrote 52 bytes
> "lminit: rlist0=0x800000000 align=8 bits=61 offset=0
> "
> 84154 sad1.exe RET write 52/0x34
> 84154 sad1.exe CALL mmap(0x800000000,0x400000000,0x3<PROT_READ|PROT_WRITE>,0x1012<MAP_PRIVATE|MAP_FIXED|MAP_ANON>,0xffffffff,0)
> 84154 sad1.exe RET mmap 34359738368/0x800000000
> 84154 sad1.exe PSIG SIGSEGV caught handler=0x80330e3c0 mask=0x0 code=0x2
> 84154 sad1.exe PSIG SIGSEGV SIG_DFL code=0x2
> 84154 sad1.exe NAMI "sad1.exe.core"
>
> inimem_()内でklistを使っているcall lminitはコメントアウトされているようですが
> 他のところでcallされているんでしょうか?
> どのあたりのコードを修正すればいいのか。。。
>
grepで追いかけると、初期化のコードフローは、以下の通り
main routine @ MAIN.f
- inimem @ pfalloc.f
-- talocinit @ tfstk.f
--- tfcbkinit @ tfstk.f
---- lminit_ @ sim/unix_memory_.c
--- mapallocfixed_ @ sim/unix_memory_.c

kernel traceからは、mmap(2)は成功しており、mmapで貼った仮想メモリに触って SEGVしてるように見えます
ここから先の動作解析には、kernelの動作やプロセスの仮想メモリマップの知識が必要な気がします


- 関連一覧ツリー (Click ▼ to display all articles in a thread.)