0

それらが1つのインターフェースであるとしましょう

interface Ifoo
{
   HRESULT foo();
};

これはバイナリ dll の一部です。これのソースコードはありません。

Windbg を使用して、このバイナリ dll のインターフェイス Ifoo から公開されている foo() API にブレークポイントを設定できますか?

Windbg を使用してバイナリ dll にブレークポイントを設定できることはわかっていますが、COM を使用する場合はわかりません。

4

2 に答える 2

1

ご指摘ありがとうございます。実際には、foo の実装にブレークポイントを設定するつもりでした。

それで分かった。私の場合、Windows システム dll の 1 つにブレークポイントを設定したかったのです。

だから私はWindbgでコマンドを実行しました

> x  dllname*!foo*

dllname と一致する名前の dll 内の foo 実装のリストが表示されました。

お気に入り

7331122 dllname!CFoo::foo

次に、このアドレスを使用してブレークポイントを設定します

bp 7331122

コマンドを使用して、設定されたブレークポイントを表示できます

 >bl
于 2009-06-12T01:24:00.843 に答える
1

COM を使用するかどうかに関係なく、インターフェイスにブレークポイントを設定することはできません。インターフェイスは実行されないため、インターフェイスを「中断」する方法はありません。

ただし、Ifoo が CFoo によって実装されていることがわかっている場合は、もちろん、CFoo::foo にブレークポイントを設定できます。

于 2009-06-11T07:47:31.790 に答える