アプリ版:「スタンプのみでお礼する」機能のリリースについて

VC++6(MFC無し)で作成したEXEを「プロセスへアタッチ」でデバッグをしたいのですが、通常のデバッグ実行時と同じようにソースを参照しながらのデバッグはできないのでしょうか?

現在、プロセスへアタッチを行うと新たにワークスペースは作成され、ソースがない状態でデバッグ中となってしまいます。

A 回答 (4件)

ソースレベルのデバッグも可能です


何か特定のアクションを起こした際に実行されるコードに
# たとえば WndProcのWM_LBUTTONDOWNなど
_asm{ int 3 }
を埋め込んでみましょう
ここへ到達した際に VC6のIDEがソースを表示してくれると思います

ただし、ソースを手直しして再コンパイル&実行はこの手法では無理だと思います
再コンパイルが必要ならばワークスペース(DSW)から起動した方がいいでしょう
EXEファイルには プロジェクト設定までは盛り込まれていないので
    • good
    • 1
この回答へのお礼

回答ありがとうございます。
_asm{ int 3 }を試してみたところ対象のソースのみ表示されるようになりました。
ただ、プロジェクトのファイルは全て表示されなくなってしまうんですね。
これはEXEの場合、仕方のないということなのでしょうか?

お礼日時:2008/12/11 10:17

EXEにはプロジェクト関連のデータは埋め込まれないのでしょうがないと思いますよ

    • good
    • 0
この回答へのお礼

了解です。ありがとうございました。
<m(__)m>

お礼日時:2008/12/11 14:49

ソースデバッグが出来るのは、あくまでも「現在、開かれているプロジェクト内のプロセスのみ」です。



「現在、開かれているプロジェクト内に無いプロセス」にアタッチすると、CPUコードデバッグしか出来ません。

Boland C++5などでは「プロジェクトグループ」と言うのがあり、1つのプロジェクトグループ内で、複数のプロセスを作成出来ます。

このプロジェクトグループを開くと、複数のプロセスのソースコードが同時に開かれ「プロセスにアタッチ」でデバッグ対象プロセスを切り替えると、自動的に対象となるソースコードも切り替わります。

VC++6で、もし、Boland C++5と同様の「プロジェクトグループ」がサポートされているなら、同じように「同一プロジェクトグループ内に限り」ソースレベルデバッグが可能だと思われます。

しかし、もし、Boland C++5と同様の「プロジェクトグループ」がサポートされていないなら「プロセスにアタッチ」でデバッグ対象プロセスを切り替えると、CPUコードデバッグしか出来なくなります。

これは「オープン中のプロジェクトと、デバッグ対象プロセスのソースファイルを、お互いに関連付けする方法がない」ので、たとえソースファイルがカレントフォルダにあったとしても、ソースレベルデバッグは出来ません。

Boland C++5では「複数のプロセスのソースコードを、1つのプロジェクトグループに含める」と言う方法で「オープン中のプロジェクトと、デバッグ対象プロセスのソースファイルを、お互いに関連付けする」という事をしています。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
普通にできそうな感じなのですが、VCではプロセスアタッチすると新しくワークスペースが起動してCPUデバッグになってしまうんです。

お礼日時:2008/12/11 10:16

デバッグ情報があるEXEファイルなのでしょうか?


ReleaseモードでビルドされたEXEには ソースとの対応データがありませんのでご質問のような状態になりそうですが …

PDBファイルが実行(EXE)ファイルと同じフォルダーにありますか?

この回答への補足

回答ありがとうございます。

新規作成ープロジェクトWin32Application-HellWorldアプリケーションでソースを自動生成し、DebugモードでコンパイルされたEXEをDebugフォルダから実行して、プロセスアタッチしたんですがダメでした。
もちろん、EXEのpdbファイルもvc60.pdbもあるフォルダです。

VC6でできないというわけではなく、普通はできるのでしょうか?

補足日時:2008/12/10 13:24
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!