ReleaseとDebugの違い

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
DXライブラリファン

ReleaseとDebugの違い

#1

投稿記事 by DXライブラリファン » 3年前

VC++のプロジェクトを作成する際にReleaseとDebugごとの設定をすると思います。これに違いはあるんでしょうか?どっちもデバッグと関係あることなんですか?そこらへんがよくわかりません。

アバター
Dixq (管理人)
管理人
記事: 1659
登録日時: 8年前
住所: 北海道札幌市
連絡を取る:

Re: ReleaseとDebugの違い

#2

投稿記事 by Dixq (管理人) » 3年前

下の画像の部分の赤矢印部分をクリックしてブレイクポイントを張ってください。
無題.png
無題.png (5.99 KiB) 閲覧数: 3203 回
そしてF5で開始してください。
指定したブレイクポイントの場所でプログラムがとまります。
その時の変数の中身を見ることが出来ます。
ですのでデバッグに有効なのです。
その代り冗長的なデータが入るので重いです。
リリースする時はその名の通り冗長的なデータの無いReleaseを指定して軽い実行ファイルを作って配布します。

DXライブラリファン

Re: ReleaseとDebugの違い

#3

投稿記事 by DXライブラリファン » 3年前

管理人さん返事ありがとうございます!

てことは、デバッグでコンパイルしたゲームは配布したらマナー違反ってことですか?

アバター
Dixq (管理人)
管理人
記事: 1659
登録日時: 8年前
住所: 北海道札幌市
連絡を取る:

Re: ReleaseとDebugの違い

#4

投稿記事 by Dixq (管理人) » 3年前

マナー違反ではないですが、容量は多いし処理は重いファイルをわざわざ配布する必要なくないですか?
後こんな所から情報漏えいする可能性もあります。
http://dixq.net/g/63.html

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 8年前
住所: 東海地方
連絡を取る:

Re: ReleaseとDebugの違い

#5

投稿記事 by softya(ソフト屋) » 3年前

VisualC++の場合、Debugビルド版の配布はライセンス違反です。
それと一般の方は、Debugビルド版は実行できません。
Debugビルド版を実行するには一致するバージョンのVisualC++がインストールされている必要性があります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

DXライブラリファン

Re: ReleaseとDebugの違い

#6

投稿記事 by DXライブラリファン » 3年前

皆さんご回答ありがとうございます!
softyaさん、といことは、開発時もDebugの設定はしなくてもいいってことですか?
プロジェクト立ち上げるたびに、すべての構成をDebugやらReleaseにしてそれぞれ
設定するけど、Debugを使わないならDebugの設定はなくてOKですか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 8年前
住所: 東海地方
連絡を取る:

Re: ReleaseとDebugの違い

#7

投稿記事 by softya(ソフト屋) » 3年前

開発中にデバッガ機能を一切使わないなら、そういう選択肢もありはありです。
私は不便だからデバッグビルドでデバッガ使いますね。その方が効率よくデバッグできますから。
リリースビルドだとブレークポイントも、ブレークしての変数確認も、スタックトレースも、異常終了時のソースの位置の確認も出来ないのけど不便じゃ無いのなら。
VisualC++の意味が無い気もしますが。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
Dixq (管理人)
管理人
記事: 1659
登録日時: 8年前
住所: 北海道札幌市
連絡を取る:

Re: ReleaseとDebugの違い

#8

投稿記事 by Dixq (管理人) » 3年前

何故そんなに設定をためらうのでしょうか・・?
開発中はDebug、リリース時はReleaseの設定にするのが普通です。

DXライブラリファン

Re: ReleaseとDebugの違い

#9

投稿記事 by DXライブラリファン » 3年前

管理人さん、だってDebugの恩恵を受けたことがないからです…
リリースビルドなんて知らなかったです、いつもF5で実行、F7で中断
これってデバッグモードですよね?かなり重くて
コンパイルから実行に至るまで1分くらいかかるときがあります。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 8年前
住所: 東海地方
連絡を取る:

Re: ReleaseとDebugの違い

#10

投稿記事 by softya(ソフト屋) » 3年前

面倒だと思われているのなら、Debug設定よりも、ゲームのデータの作成、バグ取り、テスト、バランス調整はもっと面倒くさいと思いますよ。

> コンパイルから実行に至るまで1分くらいかかるときがあります。

規模次第ですが、普通じゃないかと思います。
まぁ、SSDとか高速CPUとかで武装すれば高速化は出来ますが予算が・・・。
RAMディスクにコンパイラ環境を構築すると言う荒業もありますが。
VisualC++2008ぐらい古いのにすれば高速化もできますね。
それでも我慢できなければgccなどに変えるのも方法です。

ちなみに私の使っているCocos2d-xライブラリだとそれ以上かかります。フルビルドは30分以上。

>これってデバッグモードですよね?かなり重くて
>コンパイルから実行に至るまで1分くらいかかるときがあります。

ところでリリースビルドなら高速化出来ましたか?
あんまり変わらないとかありません?

【補足】
リリースビルドは、コンパイルを高速化するのではなく実行時の高速化・実行ファイルのスリム化です。
場合によってはデバッグビルドよりビルドが遅くなることも。
なので確認してみてください。

【補足の補足】
>いつもF5で実行、F7で中断
>これってデバッグモードですよね?かなり重くて

それは、デバッグビルド・リリースビルド共に同じ操作です。
デバッグビルド・リリースビルドに切り替えは構成マネージャなどを使います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

DXライブラリ

Re: ReleaseとDebugの違い

#11

投稿記事 by DXライブラリ » 3年前

softyaさん、F5は別にデバッグってわけじゃないんですね…
色んな事がごっちゃになってました。リリースとデバッグの切り替えって
どうするかまた調べます。ありがとうございました。

アバター
Dixq (管理人)
管理人
記事: 1659
登録日時: 8年前
住所: 北海道札幌市
連絡を取る:

Re: ReleaseとDebugの違い

#12

投稿記事 by Dixq (管理人) » 3年前

> 管理人さん、だってDebugの恩恵を受けたことがないからです…

じゃVC++の使い方を学びましょう。
手始めにブレイクポイントの使い方覚えるだけでもデバッグに雲泥の差が生じます。
上で言った通り、実行時に止めたいポイントでブレイクポイントを張って変数の中身をみてみてください。
不具合が出ている時は変数の中身をリアルタイムにみられることは非常に大きいです。

DXライブラリファン

Re: ReleaseとDebugの違い

#13

投稿記事 by DXライブラリファン » 3年前

皆さんご回答ありがとうございます。Debugモード使ってみようと思います。
Debugモードを使うとコンパイルエラーが綺麗に取れたりするんですか?一気にコンパイルエラーが消えるのはうれしいです。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 8年前
住所: 東海地方
連絡を取る:

Re: ReleaseとDebugの違い

#14

投稿記事 by softya(ソフト屋) » 3年前

DXライブラリファン さんが書きました:皆さんご回答ありがとうございます。Debugモード使ってみようと思います。
Debugモードを使うとコンパイルエラーが綺麗に取れたりするんですか?一気にコンパイルエラーが消えるのはうれしいです。
それも勘違いです。
Debugモードでデバッガーを使うのは、コンパイルエラーではなく、コンパイル以外の実行時エラー、論理エラーを無くすためのものです。
市販ゲームでも良くあるでしょう。開発会社が取り損なったなぞのバグが。
開発中は致命的なバグや謎のバグがもっとたくさん発生します。
それを取るために役立つのがデバッガーです。

【補足】
開発において、コンパイルエラーは取れるのが当たり前で、それよりも長い期間テスト・デバッグに費やします。
プログラムを書いている時間より遥かに長い時間です。
その時間をできるだけ短くするためにデバッガーを使います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
Dixq (管理人)
管理人
記事: 1659
登録日時: 8年前
住所: 北海道札幌市
連絡を取る:

Re: ReleaseとDebugの違い

#15

投稿記事 by Dixq (管理人) » 3年前

> Debugモードを使うとコンパイルエラーが綺麗に取れたりするんですか?一気にコンパイルエラーが消えるのはうれしいです。

根本的に勘違いがありますね・・・。
あくまで間違いの発見を助けてくれるだけで直すのは自分です。
まぁC#やJavaの優れたIDEを使えばコンパイルエラー部分オンマウスクリックである程度自動的に直っていくってのはありますが。

手始めにブレイクポイントを使ってみてくださいと書きましたがやってみて頂けましたか?

DXライブラリファン

Re: ReleaseとDebugの違い

#16

投稿記事 by DXライブラリファン » 3年前

>softyaさん
コンパイルエラーを取るためにデバッグモードはないんですか…
ますます利便性が分からなくなってきました。
てことはコンパイル時間の大小もリリースモードとデバッグモードで変わりないってことですか?

>Dixq (管理人) さん

ブレイクポイント試してみました。
ただあまり用途が分かりません…
プログラムを止めるなら、wait系の関数でよくないですか?
変なタイミングでプログラムを止めて悪影響とかないのかも心配です。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 8年前
住所: 東海地方
連絡を取る:

Re: ReleaseとDebugの違い

#17

投稿記事 by softya(ソフト屋) » 3年前

> てことはコンパイル時間の大小もリリースモードとデバッグモードで変わりないってことですか?

環境・状況次第です。
大抵はファイルの大きいデバッグビルドのほうが僅かに長いかもしれません。
ただ、コンパイル負荷が大きいソースコードの場合はリリースビルドのほうが長いかもしれません。

> プログラムを止めるなら、wait系の関数でよくないですか?

処理中の変数の値やプログラムの何処を処理しているかを確認するために止めるでwaitでは意味が無いですね。

> 変なタイミングでプログラムを止めて悪影響とかないのかも心配です。

そういう場合はバグが有る可能性が高いです。
まぁ、格闘ゲームのコマンド入力中にブレークで止められるのは、ちょっとタイミング的にマズイですが。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
Dixq (管理人)
管理人
記事: 1659
登録日時: 8年前
住所: 北海道札幌市
連絡を取る:

Re: ReleaseとDebugの違い

#18

投稿記事 by Dixq (管理人) » 3年前

やはりブレイクポイントの意味が通じていないような気がします・・。
プログラムを止めるために使うのではなく、処理の過程や変数の値がリアルタイムに表示される様子を確認するためのものです。
ブレイクポイントを使って変数の中身を見てみましたか?
一行ずつ処理を進めてみましたか?

アバター
Tatu
記事: 440
登録日時: 8年前
住所: 北海道

Re: ReleaseとDebugの違い

#19

投稿記事 by Tatu » 3年前

1.DebugとReleaseの違い
Debug:変数の中身を見れる。配布はライセンス違反。
Release:最適化され、配布に適した実行ファイルができる。

2.切り替える方法
上のツールバーにあるDebug(またはRelease)をクリックして選択。

3.設定が面倒
設定だけしたプロジェクトをどこかに保存しておき、
次からはそのプロジェクトをコピーして使えばいいでしょう。

4.変数の中身を見る方法
Debugに設定し、ステップ実行かブレイクポイントを使用して処理を止めるかして、
ソースコードにある変数にマウスポインタを重ねてください。


デバッグ機能を使う必要がないのなら無理に使用することはありません。
実行時におかしな動きをしてその解決にデバッグ機能が必要だと思ったら使えばいいだけです。

アバター
usao
記事: 1530
登録日時: 6年前

Re: ReleaseとDebugの違い

#20

投稿記事 by usao » 3年前

debugとreleaseに共通する設定については
プロジェクトのプロパティで「すべての構成」を選択すればdebug構成とrelease構成とに同時に設定できますから,
その後で,debugとreleaseとで異なる設定だけを個別に行えば,面倒くささを少しは軽減できるかもしれません.
クリップボード01.png
クリップボード01.png (3.69 KiB) 閲覧数: 2379 回

DXライブラリファン

Re: ReleaseとDebugの違い

#21

投稿記事 by DXライブラリファン » 3年前

ではゲームを作って配布するときはリリースモードでいいんですか?DXライブラリが入ってないPCでも動作できるようにするにはどうしたらいいですか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 8年前
住所: 東海地方
連絡を取る:

Re: ReleaseとDebugの違い

#22

投稿記事 by softya(ソフト屋) » 3年前

DXライブラリファン さんが書きました:ではゲームを作って配布するときはリリースモードでいいんですか?DXライブラリが入ってないPCでも動作できるようにするにはどうしたらいいですか?
開発中はデバッグモードかリリースモード、配布時にはリリースモードです。
DXライブラリはexeにリンク(結合)されているので、配布時に気にする必要はありまあせん。
リリースは解き放つの意味で、世に解き放つためのものです。

配布の方法は「ゲームプログラミングの館」の
http://dixq.net/g/
h.7 作ったゲームを公開するには?(1)
h.8 作ったゲームを公開するには?(2)
を参考にして下さい。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

閉鎖

“C言語何でも質問掲示板” へ戻る