0

プログラムの実行中に呼び出しツリーを保存する必要があります。そのために、コンパイラ スイッチ/callcapを見つけました。boost/exception/detail/exception_ptr.hppをインクルードするまで、すべて正常に動作します。

boost/exception/exception.hpp:216で場所 0x00000000を書き込むアクセス違反の未処理の例外が発生します。これは、main() に到達する前でもスローされます。

ブースト 1.51.0 を使用しています。

2 つの単純なファイルがあります。

// main.cpp
#include <boost/exception/detail/exception_ptr.hpp>
int main()
{}

cap.cpp は /callcap スイッチなしでコンパイルされます

  // cap.cpp
  extern "C" void __stdcall _CAP_Enter_Function(void *p)
{
}

extern "C" void __stdcall _CAP_Exit_Function(void *p) 
{
}

問題は、exception_ptr.hpp のすべての関数が callcap 関数でラップされていることだと思いますが、残念ながら、hpp のみでこの機能をオフにする方法がわかりません。

皆さん、そういう経験はありますか?

4

0 に答える 0