• ベストアンサー

実行時のエラー

一般的な話として聞いてください。 プログラムを作って、コンパイルし、エラーもなかったのに 実行するとメモリが参照できません。 というエラーが出たとします。 みなさんなら、真っ先に確かめる、ためす、あるいは 考えることはなんですか? プログラムの中身はどうでもいいですが、必要なら、 ゲームやアプリケーション開発ではなく数学的なプログラム、 つまり、微分方程式を解くとか、全ての魔方陣を作成するとか そういうものを想定してください。

noname#108554
noname#108554

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

要所要所に assert をばら撒き、どこまで正しく動いているかを確認する。 # これで万全ではありません。対策の'ひとつ'です。

noname#108554
質問者

お礼

すばらしいじゃないですか。 こんなコマンドがあるなんて。

その他の回答 (2)

  • yuyama
  • ベストアンサー率50% (7/14)
回答No.3

最近知ったのですが、アドレスの参照はmapファイル、 codeファイルで確認できます。 VisualC++の設定で以下を設定します。 C/C++/カテゴリ:ファイルリスティング/リスティングファイルタイプ:マシン語コードとソースを含む リンク/カテゴリ:デバッグ/MAPファイルを生成する。 mapファイルに参照アドレスがほぼ一致するものがあります。 それがどのcodeファイルにあるのか書いてあるので、 codeファイルを見ます。 codeファイルにはマシン語とソースが交互に表示されているので、 ピンポイントでわかります。 たぶん。 本題に戻って、真っ先に何をするかですが、「デバッグをする」ですね。 それでもわからなければ、Purifyなどの解析ツールを使用します。

noname#108554
質問者

お礼

せっかく回答をいただいて恐縮ですが、 おっしゃっていることがさっぱり分からないです。 デバッグツールについて勉強すれば、よいのでしょうか。 分かりやすいHP・書籍をご紹介いただければ幸いです。

  • hogeta
  • ベストアンサー率14% (4/28)
回答No.2

・配列とポインタの参照が間違ってないかチェック。 ・デバッグオプションをつけてコンパイルしてデバッガでチェック

noname#108554
質問者

お礼

デバッガの使い方がよく分からないのですが、 詳しく教えていただけますか。 当方は、VisualC++6.0です。

関連するQ&A

  • 実行時エラーについて

    お世話になっています。教えて下さい。 VBで作ったプログラムです。 デバッグ時には何の問題もなく、実行可能(完全コンパイル後に実行)で、コンパイルも問題なく通りますが、EXEにして実行すると、以下のエラーが出ます。 実行時エラー:'91' object変数、またはwithブロック変数が設定されていません。 どなたか、原因に心当たりがある方、いらっしゃったら教えて下さい。 よろしくお願いします。

  • VBで作成したパッケージを実行すると実行時エラー'429'が発生してしまいます。

    VBにてcsvファイルのデータをOracleデータベースにinsert、updateするプログラムを作成し、開発パソコンにて正常に動作することを確認しました。 開発パソコン ・Windows2000 Server(SP3) ・Visual Basic 6.0 Enterprise Edition ・Oracle 9i 本番パソコン ・Windows2000 Server(SP3) ・Oracle 9i テストパソコン ・Windows2000 Professional(SP1) 今、上記のように3台のパソコンがあります。 開発パソコンで開発したVBのプログラムをコンパイルしてexeを作成し、開発パソコン上から開発パソコン上のオラクルに対してプログラムを実行すると正常に動作します。 本番パソコンには、Visual Basicをインストールしていないため、プログラムを実行できるようにするには開発パソコンにてディストリビューションウィザードを使ってセットアッププログラムを作成し、本番パソコンにインストールする必要があると思います(質問1.ここまでは正しいですよね??)。 そこでウィザードに沿ってセットアッププログラムを作成し、まずはテストパソコンにてインストール後に実行してみたのですが、エラーが出てしまいました。 「実行時エラー'429' ActiveX コンポーネントはオブジェクトを作成できません。」 質問2.どうすればエラーが発生することなくプログラムを実行できるようになるでしょうか? テストパソコンにオラクルクライアントが必要?それとも何かDLLの更新などが必要? もしおわかりの方いらっしゃいましたら教えて下さい。 よろしくお願いします。

  • 実行時に出るエラーの意味が解りません

    Javaで、「SystemFont 」というクラス名をつけて プログラムを組み、コンパイルしてその後実行したところ Exception in thread "main" java.lang. NoClassDefFoundError:SystemFont というエラーが表示されるだけで実行できません。 このエラーの示す意味をどなたか教えて頂けませんか?

    • ベストアンサー
    • Java
  • Javaプログラムの実行時エラー

     Javaの学習をしている初心者です 今までメモ帳でコーディングしてコマンドプロンプトでコンパイル・実行していましたが、本日も同様のことをしていたところ、実行を要求するとException in thread "main" java.lang.NoClassDefFoundError: なるエラーが出ました。 このエラーはコーディング時のクラス名とファイル登録時のクラス名が異なる場合に出ていたような気がします。 今回は今まで作成したプログラム全部で、実行するとこのエラーが出ます。新しく作成したものもだめです。…コンパイルは うまくいきますが、実行するとこのエラーが出ます。  どうしたらよいかどなたかお教えください。

  • Scilabで実行すると出るエラーの意味

    連立の常微分方程式の計算をScilabで行っているのですが、 実行したところ次の様な内容のエラーが出ました。 -->exec('E:\Tex用ファイル\Scilab.sce', -1) lsoda-- at t (=r1), mxstep (=i1) steps needed before reaching tout where i1 is : 500 where r1 is : 0.5216040106980D-06 警告: 結果が不正確となる可能性があります. どういう意味なのか分からず、解消の方法が分かりません。 どなたかこのエラーは基本的にどうすればいいのか教えてください。 プログラムは微分方程式が縦に15行ほどの物で大きいためここには入りませんでした

  • 実行時エラー339

     いつもお世話になっています。 VB6.0で開発したシステムをwinXPでコンパイル後、ディストリビューションウィザードでインストーラを作成して、VISTAにインストール後に実行しましたが、 「コンポーネント'date60.ocx'、またはその依存関係のひとつが適切に 登録されていません。ファイルが存在しないか、あるいは不正です。」 と出ます。「date60.ocx」については、Input Manを使用しているのですが、なぜこのようなエラーがでるのかがわからないのです。 どなたかお教え願えないでしょうか?また、回避策? などもあればよろしくお願いします。

  • java実行時にエラーがでます。

    Java入門書を見て、簡単な文字「Hello!」を出力するプログラムを作りました。コンパイルはできたのですが、実行時エラー「Exception in thread "main"…」がでてしまいます。違うパソコン(Win-NT4.0)では問題無く実行されました。 私のノートパソコンでは、駄目です。環境変数等の設定も問題無いのですがなぜ?でしょうか・・・。よろしくお願い致します。

    • ベストアンサー
    • Java
  • java 実行できない

    javaで public class HelloWorld{ public static void main(String[] args){ System.out.println("Hello World!"); } } のようなプログラムをかいて、コンパイルして、実行しようとすると エラー: メイン・メソッドがクラスStringで見つかりません。次のようにメイン・メソッドを定義してください。 public static void main(String[] args) またはJavaFXアプリケーション・クラスはjavafx.application.Applicationを拡張する必要がありま というエラーがでます。コンパイルはできます。jdkは1.8.0_25を使っています。

  • VB6.0 exe作成時に実行時エラー429が出て困っています

    すみませんが、どなたか教えてください。 デバッグ環境にて納入先より持ち帰ったアプリケーションのexeを実行したところ、 実行時エラー 429 このコンポーネントのライセンス情報が見つかりません。 デザイン環境でこの機能を使うために必要なライセンスがありません。 といったメッセージが表示されてアプリケーションが動きません。 デバッグ環境でexeを再度作成し直そうとしても、コンパイル後の exe作成の時点で同様のエラーが出て終了してしまいます。 解決方法をご存知の方がいましたらよろしくお願い致します。

  • VB 実行時エラー '3001'

    VB6.0(SP5)で開発していて、エラーが発生して困っております。 今まで使っていたプログラムにちょっとバグ改修をして、新しいバージョンのプログラムを配布したら、Win98マシンで何台か、次のエラーが出ました。 「実行時エラー'3001': 間違った種類または許容範囲外の引数を使用しているか、使用している引数が競合しています。」 プログラムは、「ログイン画面を表示し、IDとパスワードを入力し、DBに登録されているID&パスワードだったら実行」という処理をしています。DBはMySQLです。 エラーが出るマシンでは、このログイン画面(VBForm)が出る前に上記エラーを表示して、終了してしまいます。 ログイン画面を表示するまでの処理としては、 ・.iniファイルから各種パラメータを読み込んで変数にセット ・DBへの接続の文字列を作成する ・AdoConnectSetを実行 ・Formの各種プロパティを設定 ・FormのShowを実行 このような感じです。 そしてさらによくわからないのが、上記手順の合間合間に、MsgBox関数で「○○が終わった」などと、進行状況を表示する処理を追加すると、エラーが発生することなく、ログイン画面の表示までたどり着けるのです。 開発機はWin2000マシンですが、実行しているのはWin95,98,2000などいろいろで、上記のエラーが出るのは98マシンです。 (98マシンでちゃんと動作するのもあります) ズバリの解決法、情報へのポインタ、アドバイス、ヒント... を求めております。よろしくお願いいたします。

専門家に質問してみよう