以下の内容はhttps://higepon.hatenablog.com/entry/20061220/1166622522より取得しました。
現時点で分かっていること
- monapi_stdout_write の中で死んでいる
- _logprintfを利用して細かいログをとった結果分かったことは
- access denied.address = 0x354748D4 Process UPPER.EX5 killed eip=0xA001089F
- memcpy((void*)((uint32_t)memoryAddress_ + memorySize), buffer, size); の dst address が 0x354748D4 になっている。これがアクセス違反。
- ちなみに memorySize = 0x45474948, memoryAddress_=0xEFFFFF8Cなのでどちらも激しく間違っている
- memorySize_ は header->size
- memoryAddress_ は MemoryMapされたアドレス
- Streamの初期化処理を通ってない?(変数が初期化すらされていない感じ)
- 実際ログ見てみたらどうかな?
- initializeFromHandle を通っている
- その時点では headerは正しいところを示している
- initializeFromHandle から Write までの間に header_ がおかしくなる
- 分かった.2重初期化が問題だ。
- invokeFuncListが2回呼ばれている
- monapi dllmain
- monapi_initialize_memory(64 * 1024 * 1024);
- monalib dllmain
- inStream = MonAPI::Stream::FromHandle(handle);
- outStream = MonAPI::Stream::FromHandle(handle);
- monapi crt
以上の内容はhttps://higepon.hatenablog.com/entry/20061220/1166622522より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます
不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14