ユーザ用ツール

サイト用ツール


appendix:garbagecollectorを止める方法

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
appendix:garbagecollectorを止める方法 [2022/03/07 09:41]
fumble
appendix:garbagecollectorを止める方法 [2022/03/07 09:58] (現在)
fumble
行 8: 行 8:
 というあやしげな宣言があるじゃろ、あとはわかるな?\\ というあやしげな宣言があるじゃろ、あとはわかるな?\\
 MONO_INTERNALが邪魔で見えない?心の目で見るんだ!\\ MONO_INTERNALが邪魔で見えない?心の目で見るんだ!\\
-心の目をもってしても見えない?!\\+心の目をもってしても見えないじゃと?!\\
 <code cpp> <code cpp>
 typedef __int64 (CALLBACK* gcgetheapsize)(); typedef __int64 (CALLBACK* gcgetheapsize)();
行 14: 行 14:
 void 心眼() void 心眼()
 { {
-    auto module = LoadLibrary(lpszMonoParh);+    auto module = ::LoadLibrary(lpszMonoParh);
     if (module != nullptr)     if (module != nullptr)
     {     {
-        auto getheapsize = (gcgetheapsize)GetProcAddress(module, "mono_gc_get_heap_size");+        auto getheapsize = (gcgetheapsize)::GetProcAddress(module, "mono_gc_get_heap_size");
         auto heapsize = getheapsize();         auto heapsize = getheapsize();
-        auto disable = (gcenabledisable)((__int64)GetProcAddress(module, "mono_gc_get_heap_size") + 8i64); +        auto disable = (gcenabledisable)((__int64)::GetProcAddress(module, "mono_gc_get_heap_size") + 8i64); 
-        auto enable = (gcenabledisable)((__int64)GetProcAddress(module, "mono_gc_get_heap_size") + 16i64);+        auto enable = (gcenabledisable)((__int64)::GetProcAddress(module, "mono_gc_get_heap_size") + 16i64);
         disable();         disable();
         enable();         enable();
     }     }
-    CDialogEx::OnOK(); 
 } }
 </code>  </code> 
行 46: 行 45:
 00007FFAA93DB1AF CC                   int         3   00007FFAA93DB1AF CC                   int         3  
 </code>  </code> 
 +実装順でそれぞれの関数にジャンプするようになっておるじゃろ。\\ 
 +きれいに8バイトでパディングされておるじゃろ。\\ 
 +mono_gc_get_heap_size\\ 
 +<code> 
 +00007FFAA93DB190 E9 D3 C5 13 00       jmp         00007FFAA9517768   
 +</code> 
 +mono_gc_disable\\ 
 +<code> 
 +00007FFAA93DB198 E9 CF C6 13 00       jmp         00007FFAA951786C   
 +</code> 
 +mono_gc_enable\\ 
 +<code> 
 +00007FFAA93DB1A0 E9 9B C6 13 00       jmp         00007FFAA9517840   
 +</code> 
 +今度こそこれでわかるな?\\ 
 +飛んだ先が正しいかもちゃんとステップインして確認するのじゃぞ?\\
appendix/garbagecollectorを止める方法.1646613662.txt.gz · 最終更新: 2022/03/07 09:41 by fumble