「イベント キュー」を使用してさまざまなスレッドで関数を実行するネイティブ C++ プログラムがあります。ヒープに「イベント」クラスを割り当て、スレッドのキューの 1 つに配置して実行します。
すべてうまく機能しますが、これらの「イベント」の起源をたどるのは非常に困難です。各「イベント」に、それがどこから来たのかに関する情報を保存したいと思います。現在、そのために組み込みを使用_ReturnAddress()
していますが、ファイル名の文字列と行番号も取得したいと考えています。「イベント」をスケジュールするためにマクロを使用しても問題ありません。
もちろん、これらの弦を手に入れるための代償は払いたくありません。
プリプロセッサを構築してダンプし、「id」=>「file,line」のマップをファイルする方法はありますか?ここで、「id」は、マクロが展開されるたびにインクリメントされる一意の番号になりますか? そのIDをオリジンとして保存できました。
または、実行時に使用できるように、ファイル名の非常に短いハッシュを計算することもできますか?
どんなアイデアでも大歓迎です。