リリースとデバッグの違い – プログラミング – Home

リリースとデバッグの違い
 
通知
すべてクリア

リリースとデバッグの違い


gold hour
 gold hour
(@gold hour)
ゲスト
結合: 17年前
投稿: 3
Topic starter  

はじめまして。

現在VC2003でプログラムを組んでいるのですが、
リリースビルドとデバッグビルドの違いに関してお聞かせ下さい。

当方は、リリースビルドだと最適化が行われて、デバッグ情報が無いという認識で、
デバッグビルドですと、最適化が行われないがデバッグ情報を吐き出して使えると
いう認識なのですが合っていますでしょうか?

また、他にも違いがあったりしますでしょうか?

よろしくお願いします。


引用解決済
トピックタグ
wclrp ( 'o')
 wclrp ( 'o')
(@wclrp ( 'o'))
ゲスト
結合: 17年前
投稿: 287
 

設定変えれば最適化とかデバッグ情報とか変更できるけどね。
デバッグだと未設定の変数や確保したメモリや解放したメモリをある値に変更することで
バグを発見しやすくしてくれる機能が入ってたりするみたいだね。


返信引用
しま
 しま
(@しま)
ゲスト
結合: 17年前
投稿: 123
 

デバッグビルドでは
デバッグビルドに必要なコンパイル、リンクのオプションを予め設定しているもの
として提供しているので、あなたが設定する手間を省いているのです
リリースビルドでも
リリースビルドに必要なコンパイル、リンクのオプションを予め設定しているもの
として提供しているので、あなたが設定する手間を省いているのです

デバッグオプションにはコンパイルオプションで -D DEBUG が設定してあるのと
デバッグ版のランタイムライブラリーがリンク対象になるのでデバッグ時の支援
(TRACEマクロなど)が受けられます
最適化についてもデバッグ時の妨げになるので最適化しない設定を提供している
だけで、最適化するように変えることも(プロジェクト毎にあなたが)可能です


返信引用
gold hour
 gold hour
(@gold hour)
ゲスト
結合: 17年前
投稿: 3
Topic starter  

みなさん、返信ありがとうございます。

>デバッグだと未設定の変数や確保したメモリや解放したメモリをある値に変更すること
>でバグを発見しやすくしてくれる機能が入ってたりするみたいだね。

↑は初めて聞きました・・・。便利そうですね。
どこからその機能を使うか分かりますでしょうか?

>最適化についてもデバッグ時の妨げになるので最適化しない設定を提供している
>だけで、最適化するように変えることも(プロジェクト毎にあなたが)可能です

最適化をするとデバッグ情報を吐き出さないですよね?
それともデバッグ情報も吐き出しつつ最適化をしてくれるオプションもあるのでしょう
か?


返信引用
菟ー
 菟ー
(@菟ー)
ゲスト
結合: 17年前
投稿: 21
 

ビルドオプションを弄べば可能です。

リリースビルドでも、デバッグ情報入れられたハズ。
その逆も然り。


返信引用
gold hour
 gold hour
(@gold hour)
ゲスト
結合: 17年前
投稿: 3
Topic starter  

私の今までの知識がまちがっているのかもしれません・・・。

リリースとは最適化がされるので、
最適化の為にはデバッグ情報を含んだ出力ができないと思っていました。

間違いですよね?


返信引用
RAPT
 RAPT
(@RAPT)
ゲスト
結合: 21年前
投稿: 310
 

いずれも、使いやすいようにあらかじめ用意されている、設定のプリセットです。
必要であれば、独自のビルドオプションの構成も作成できます。


返信引用
しま
 しま
(@しま)
ゲスト
結合: 17年前
投稿: 123
 

>リリースとは最適化がされるので、
>最適化の為にはデバッグ情報を含んだ出力ができないと思っていました。
>
>間違いですよね?

間違った理解です
デバッグ情報についてはコンパイルオプションとリンクオプションと両方
あるはずです(少なくとも VC6 まではそうだった)
最適化はデバッグ情報とは別のコンパイルオプションです

何度も同じことを書くのは嫌なので、私の書いた返事をもう一度読んでみて下さい


返信引用
Ban
 Ban
(@ban)
Prominent Member
結合: 4年前
投稿: 776
 

仕事でやってる/公開するソフトを作っている人には大事な違いとして、
Microsoft社のライセンス上、DEBUG版は外に配布する際の制限があり、
配布はRELEASE版で行う必要があります。
(正確なライセンスは状況を確認、Microsoftに聞いてください)


返信引用
Ban
 Ban
(@ban)
Prominent Member
結合: 4年前
投稿: 776
 

「デフォルトでは」と但し書きがあれば、プロジェクト作成時に、
RELEASE版はデフォルト設定で最適化が有効でデバッグ情報がなく、
DEBUG版はデフォルトで最適化無効のデバッグ情報付になりますね。


返信引用
Ban
 Ban
(@ban)
Prominent Member
結合: 4年前
投稿: 776
 

# 後段はかぶってた…orz


返信引用
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2659
 

デバッグビルドで最適化を外しているのは、最適化を入れてしまうと
デバッガで追う時にソースファイルとバイナリイメージの対応が取れなくなって
デバッガ上の表示が変になるからだったと思います。
デバッガを使わないならデバッグ情報を付加する事はできると思います。
まあ、デバッガで動かしても終えない状態と言うのが意味があるのかと言う話は
あると思いますけれど。
それでもリークチェック等は動くと思うのでそういう意味ではまんざら意味が無いという
話ではないかもしれません。


返信引用
PATIO
(@patio)
Famed Member
結合: 3年前
投稿: 2659
 

うおっ、

誤)
まあ、デバッガで動かしても終えない状態と言うのが意味があるのかと言う話は

正)
まあ、デバッガで動かしても追えない状態と言うのが意味があるのかと言う話は

失礼しました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました