それらが1つのインターフェースであるとしましょう
interface Ifoo
{
HRESULT foo();
};
これはバイナリ dll の一部です。これのソースコードはありません。
Windbg を使用して、このバイナリ dll のインターフェイス Ifoo から公開されている foo() API にブレークポイントを設定できますか?
Windbg を使用してバイナリ dll にブレークポイントを設定できることはわかっていますが、COM を使用する場合はわかりません。
それらが1つのインターフェースであるとしましょう
interface Ifoo
{
HRESULT foo();
};
これはバイナリ dll の一部です。これのソースコードはありません。
Windbg を使用して、このバイナリ dll のインターフェイス Ifoo から公開されている foo() API にブレークポイントを設定できますか?
Windbg を使用してバイナリ dll にブレークポイントを設定できることはわかっていますが、COM を使用する場合はわかりません。
ご指摘ありがとうございます。実際には、foo の実装にブレークポイントを設定するつもりでした。
それで分かった。私の場合、Windows システム dll の 1 つにブレークポイントを設定したかったのです。
だから私はWindbgでコマンドを実行しました
> x dllname*!foo*
dllname と一致する名前の dll 内の foo 実装のリストが表示されました。
お気に入り
7331122 dllname!CFoo::foo
次に、このアドレスを使用してブレークポイントを設定します
bp 7331122
コマンドを使用して、設定されたブレークポイントを表示できます
>bl
COM を使用するかどうかに関係なく、インターフェイスにブレークポイントを設定することはできません。インターフェイスは実行されないため、インターフェイスを「中断」する方法はありません。
ただし、Ifoo が CFoo によって実装されていることがわかっている場合は、もちろん、CFoo::foo にブレークポイントを設定できます。