私はvC++ 6のレガシーコードベースで作業しています。例外がスローされるがバグがありますが、スタックされているため、スタックの上位の問題が発生します。バグはプロダクションで発生し、自宅でバグを再解析することはできません(プロダクションコードを更新してエラーを記録することはできません)。VC++ 6で例外をスローする関数を見つける
HRESULT legacyCall()
{
try
{
return FunctionThatCallsManyFunctions();
}
catch(_com_error e)
{
return E_FAIL;
}
}
私は静的解析によって例外をスローするメソッド呼び出しを見つけようとしていますが、あまりにも多くの抽象化とコード行があります。私は例外がどこにスローされているかを見つけるコンパイラフラグや方法論があるのだろうかと思っていますか?
Visual Studioでは、例外がスローされたときにブレークポイントを設定できます。しかし、それはローカル複製を必要とします... – Jarod42
私は古代の製品(VS 2008)を使っていたと思っています:) :) –
1. 'comdef.h'ヘッダを探します。 2. '_com_error'、' _com_raise_error'などを '#define 'で他の識別子に移します。最後に '#undef'を実行します。 4.コードをコンパイルし、何が壊れているかを確認します。これが例外をスローしようとしていることです。 5. 'comdef.h'を復元することを忘れないでください:) – Quentin