ランタイム データ フロー/モデル アナライザー モジュールのメモリ アロケーター/スナップショット コンポーネントに取り組んでいます。私たちの要件の一部は、テスト プログラムのデータ構造を、私たちの管理下にあるカスタム メモリ領域に割り当てることです。回避するために、独自の malloc/frees を定義する必要があると考えたテスト プログラムを変更し、実際のスナップショット/ランタイム チェッカー モジュールは、LD_PRELOADED メカニズムを介して取得したポインターのシステム malloc を使用します (Stackoverflow に感謝します)。しかし、本当の問題は new 演算子にあります。以前と同じルートをたどることができますが、新しい内部で malloc を使用する可能性があります (ただし、これを確認するためにカーネル/libstdc++ コードを確認する必要があります)。モジュール。私が思いついた解決策の 1 つは、何らかの方法で呼び出し元のコンテキストを見つけて、演算子 new をオーバーロードすることでした。(私は通常、C++オブジェクトを作成する<コンストラクターで再帰フラグを設定する>デストラクタでクリアするようなセマンティックを持っています)、コンテキストに基づいてmallocまたはglibc mallocのいずれかを使用してメモリを割り当て、newの配置構文を使用してコンストラクターを確保します呼ばれます。C++コンストラクターが実際にいつ呼び出されるかについてのポインターが本当に欲しいです。そのオブジェクトへのポインターを返すため、それがnewの一部であると90%確信していますが、私が見たnewの唯一の実装( VSCRT )はmallocを使用し、実行します明らかなコンストラクター呼び出しがありません。私の質問は次のとおりです: 1) 私の一般的な考えについてフィードバックが欲しいですか? 2) コンストラクターが正確に呼び出されるのはいつですか? (私は通常、C++オブジェクトを作成する<コンストラクターで再帰フラグを設定する>デストラクタでクリアするようなセマンティックを持っています)、コンテキストに基づいてmallocまたはglibc mallocのいずれかを使用してメモリを割り当て、newの配置構文を使用してコンストラクターを確保します呼ばれます。C++コンストラクターが実際にいつ呼び出されるかについてのポインターが本当に欲しいです。そのオブジェクトへのポインターを返すため、それがnewの一部であると90%確信していますが、私が見たnewの唯一の実装( VSCRT )はmallocを使用し、実行します明らかなコンストラクター呼び出しがありません。私の質問は次のとおりです: 1) 私の一般的な考えについてフィードバックが欲しいですか? 2) コンストラクターが正確に呼び出されるのはいつですか? (私は通常、C++オブジェクトを作成する<コンストラクターで再帰フラグを設定する>デストラクタでクリアするようなセマンティックを持っています)、コンテキストに基づいてmallocまたはglibc mallocのいずれかを使用してメモリを割り当て、newの配置構文を使用してコンストラクターを確保します呼ばれます。C++コンストラクターが実際にいつ呼び出されるかについてのポインターが本当に欲しいです。そのオブジェクトへのポインターを返すため、それがnewの一部であると90%確信していますが、私が見たnewの唯一の実装( VSCRT )はmallocを使用し、実行します明らかなコンストラクター呼び出しがありません。私の質問は次のとおりです: 1) 私の一般的な考えについてフィードバックが欲しいですか? 2) コンストラクターが正確に呼び出されるのはいつですか? 次に、 new の配置構文を使用して、コンストラクターが確実に呼び出されるようにします。C++コンストラクターが実際にいつ呼び出されるかについてのポインターが本当に欲しいです。そのオブジェクトへのポインターを返すため、それがnewの一部であると90%確信していますが、私が見たnewの唯一の実装( VSCRT )はmallocを使用し、実行します明らかなコンストラクター呼び出しがありません。私の質問は次のとおりです: 1) 私の一般的な考えについてフィードバックが欲しいですか? 2) コンストラクターが正確に呼び出されるのはいつですか? 次に、 new の配置構文を使用して、コンストラクターが確実に呼び出されるようにします。C++コンストラクターが実際にいつ呼び出されるかについてのポインターが本当に欲しいです。そのオブジェクトへのポインターを返すため、それがnewの一部であると90%確信していますが、私が見たnewの唯一の実装( VSCRT )はmallocを使用し、実行します明らかなコンストラクター呼び出しがありません。私の質問は次のとおりです: 1) 私の一般的な考えについてフィードバックが欲しいですか? 2) コンストラクターが正確に呼び出されるのはいつですか? 1) 私の一般的な考えについてフィードバックが欲しいですか? 2) コンストラクターが正確に呼び出されるのはいつですか? 1) 私の一般的な考えについてフィードバックが欲しいですか? 2) コンストラクターが正確に呼び出されるのはいつですか?
ベスト、サブラマニアン