>ということは何でしょうか。
.net以降のバ-ジョン(2002は未確認)ではいちよう
リリースモードでもステップ実行は出来るみたいです。
イメージ表現になるが
「リリースでもステップ実行そのものはできるが
デバックのときについてくる『便利機能』のほとんどがついてない」
どうしてステップ実行させたいのかと考えたとき
便利機能がないなら意味がない場合が多いので
「できない」といわれる。
リリースとデバッグの違いを理解した上でどうしてもリリースでないと
・・・ってときには使う
>インストールファイルを作成する場合はリリースモードにしてやっています。
>もうしリリースモードの場合にステップを実行すれば、結構楽な作業になります。
インストールはアプリケーションが完成してから考えたほうがいい
同時進行させると混乱する
補足です。
> .net以降のバ-ジョン(2002は未確認)ではいちよう
> リリースモードでもステップ実行は出来るみたいです。
「いちよう」はです。
ステップ実行としての機能は殆ど使えません。
ITOさん、rinさん
ご返事ありがとう。
>.net以降のバ-ジョン(2002は未確認)ではいちよう
>リリースモードでもステップ実行は出来るみたいです
今使ったいるバージョンは2002です、
ステップ実行をできませんでした。
でも、DLL側のステップ実行ができます。(リリースモード)
それがどう理解すればいいでしょうか。
よろしくお願いします。
リリースモードの所で書いていますが、
通常、リリースモードで設定を変えていないとデバッグ情報が付与されない、
最適化が適応されているの二点からデバッガーでまともに追える状態になっていない
と思います。但し、プロジェクトの設定は変更できますからデバッグ情報を付与し、
最適化を外せばデバッガで追う事が出来ます。
これは取りも直さず、デバッグモードと同じ設定にしているからです。
元々、デバッグモードとかリリースモードと言うのはある設定パターンに対して
わかりやすくする為につけている名前なので設定を変えてしまえばどうにでもなります。
で、基本的にデバッグ情報無し、最適化有りならデバッグはほぼ無理です。
ちなみに実行ファイルがリリースモードでもリンクしているDLLがデバッグモードで
作成されたものであれば、追いかけられると思います。
但し、通常はリリースモードの実行ファイルにはリリースモードのDLLを
リンクするのが普通ですし、そうするべきだと思います。
PATIO さん、
ご返事ありがとう。
>但し、通常はリリースモードの実行ファイルにはリリースモードのDLLを
>リンクするのが普通ですし、そうするべきだと思います。
すみません、まだわかりません。
リリースモードの実行場合は、dll側もリリースモードになっていますね
例:
リリースモード場合に
DLL側の
¥Release¥に
*.dllと*.Libも更新しました。//リリースモードになっています
もう一度確認したのですが、
DLL側にステップ実行できる場所とできない場所があります。
(とまったととまらない場所があります)
そういうことはどう理解すればいいでしょうか。
よろしくお願いします。
> リリースモードの実行場合は、dll側もリリースモードになっていますね
それはソリューションの構成と各プロジェクトの設定次第なので
必ずそうなるかと言われてもわかりません。
自作のDLLを実行ファイルにリンクする場合、
実行ファイルのプロジェクトに設定をしているはずです。
この時にリンク先に指定しているlibファイルは何処のファイルを指定しますか?
この部分が自動で設定されることは無いと思ったんですけれど、違いましたっけ?
あと、多分DLLが生成されたフォルダのフルパスを環境変数のPATHに設定して
いないと思うので、動かす場合には実行時のカレントフォルダにDLLをコピーして
動かしているはずです。この場合、デバッグ版もリリース版も同じファイル名の
DLLとして作成していると区別が付かないのでそこに置いてあるファイルを
そのまま使っているはずです。
そうなると実行ファイルがリリースだろうがデバッグだろうが関係無しに
置いてあるDLLを使う事になります。
ビルド後のイベントで自動でコピーしていない限り、生成されたDLLが自動で
移動することは無いので手動でコピーしているならコピーしない限りは
DLLは古いままです。
この辺のハンドリングはあなた自身が意識して仕組みを作り、運用しないと
勝手にやってはくれません。
ですから、この部分の運用管理がきちんと出来ていないと言われているような事態は
割と簡単に起こります。
うまくブレイクポイントが設定できないのは、動かすときに使っているDLLと
ソースファイルの間で整合が取れていない所為でしょう。
> うまくブレイクポイントが設定できないのは、動かすときに使っているDLLと
> ソースファイルの間で整合が取れていない所為でしょう。
IDEで見ているソースファイルと、IDEが実行しているソースファイル
(から作った実行ファイルの類)とが、異なっている場合があるということです。
おそらくプログラマの不注意のために。
整合が取れていることを保証する方法として、その場所でメッセージボックスを出すとか、
printfで何か表示するとか、テキストファイルに何か書き出すとかの方法があります。
今、ソースファイルをメッセージボックスを表示するように変えたのに、
実行してみるとメッセージボックスが表示されないのなら、
整合性が取れていない証拠になります。
# 質問者さん、次々と質問する前に、自分が何を理解していて何が分からないのか、
# 落ち着いて常に意識してください。回答者が書いていることで理解できない場合も
# あるでしょうが、読み返せば理解できる場合もあるでしょう。
# 書き込む前に、一回一回スレを全部読み返し「これは理解できる、これは分からない」と、
# 判定しなおしてはどうでしょう。できれば自分の立てた関連スレについても。
# 些細なことだけど、質問者が外国人である場合に余計な混乱をさせないために
# 一応指摘します。
誤:「いちよう」はです。
正:「いちおう(一応)」はです。
PATIOさん、たいちうさん
ご回答ありがとう。
>うまくブレイクポイントが設定できないのは、動かすときに使っているDLLと
>ソースファイルの間で整合が取れていない所為でしょう。
>今、ソースファイルをメッセージボックスを表示するように変えたのに、
>実行してみるとメッセージボックスが表示されないのなら、
>整合性が取れていない証拠になります。
わかりました。
ほんとに、ありがとうございました。