• ベストアンサー

プログラムが偶然動く

chirubouの回答

  • ベストアンサー
  • chirubou
  • ベストアンサー率37% (189/502)
回答No.4

ありますあります。 自分で書いておきながら後でバグに気がついて「よくこれで今まで動いていたよな」と思う事も良くあります。 特にマシンやOSが変わったりすると(スタックの値やタイミングが変わるので)、この手のバグは発動(!)することが多いのですが、「いままで使っていたあのマシンではちゃんと動いていたので自分のプログラムには間違いがない」とか平然と言う人がいて、閉口することもしばしばあります。 原因の多くは他の回答者さんにあるとおり、初期化ミス(特に自動(スタック)変数)、マルチスレッドやシグナル処理におけるタイミング、バッファーオーバーラン、ですが、他にもシステムコールやライブラリ関数の仕様の読み間違え、もあります。 初期化ミスやバッファオーバーフローは、OSや機種が違うとメモリ配置が変わって、動くものが動かなくなったり、その逆になったりすることがあります。タイミングに起因するバグもOSが変わるとスケジューリングの微妙な違いでバグが出現したりします。ライブラリ関数も、機種やバージョンで微妙に仕様が違うことがあるので、それで引っかかることがあります。

関連するQ&A

  • 急にプログラムが見つからなくなってしまいました。

    Norton AntiVirus 2000 が、急にショートカットからもスタートメニューからも開かなくなってしまい、とてもこまっています。自動プロテクトシステムは作動しているようなのですが、心配です。見つからなくなる前に、ソフトのダウンロード中にウィルスを排除したばかりなので、原因があるとすればそこかともおもうのですが、一応正常に終了したことになっています。アンインストールを実行しようとするといいかどうか聞いてくるので、削除されちゃったと言うことはないはずなのですが。事情で、ROMは手元にありません。どうしたら元にもどりますか?分かる方、ぜひ教えて下さい!

  • プログラムのインストールはできるのですが・・・。

    知合いより、日産のFASTというDVDソフトを頂き、 早速インストールしましたが、起動できません。 ディスクを開き「SETUP」し、完了しました。 次に「スタート」→「すべてのプログラム」に アイコンと名前があるはずなのに、ないんです。 コントロールパネル」→「プログラムの追加と削除」には名前があります。 ディスクが使えないのかな?と思って、 違うPCにもインストールしてみましたが、 スタート」→「すべてのプログラム」にアイコンと名前があり、 正常に作動しました。 原因がさっぱりわかりません。 PCは2台ともWIN XPです。 とても困っています。わかる方、お願いいたします。

  • タスクバーにプログラムが表示されない

    トラブルがあり、システムの復元を行った際、タスクバーがおかしくなってしまいました。 1)右のアイコンはほぼ正常に表示される。 #異常なのもありますが、アンインストール予定のものなので問題は無いと考えます。 2)実行しているプログラムが表示されない。 コレが一番問題です。何かヒントありますか? 3)タスクバー上のクイック起動、通常2,3の表示で後は隠れているはずなのですが、全部表示されてしまいます。 なにか良いヒントがあれば宜しくお願い致します。

  • ファイルを開くプログラムが異常

    症状はマイコンピュータ→Cドライブをクリックすると「ファイルを開くプログラムの選択」が登場します。 本来は、ドライブ内のフォルダが表示されるはずですが。 「ファイルを開くプログラムの選択」の一覧の中にも該当プログラムが見当たりません。色々調べてウイルスチェックでUSBからウイルス感染していましたので駆除はしました。 しかし、元には戻りませんでした。 正常に修復できる方法を教えてください。

  • 新しいプログラム

    windowsXPでノートンアンチウイルス2005をインストールして正常にインストールできたのですが、windowsのスタートメニューに「新しいプログラムがインストールされました。」のメッセージがプログラムを開いても、電源立ち上げても消えませんどうしたらよいですか。

  • ハッピープログラムについて

    ハッピープログラムに申し込もうとして楽天のところまで行くと必ずエラーが発生になってしまい先に進めませんパスワードはあっているはずなのですがどういうことでしょう

  • 「スタートアップ」フォルダが「プログラムフォルダ」内にありません。

    スタートアップの項目を整理しようと、「スタートアップ」フォルダを探したところ… ■ALL USER→スタートメニュー→プログラム内:なし ■USER→スタートメニュー→プログラム:なし ■検索しても見つからない。 ■常駐プログラムは正常に起動している。 ■仮にプログラムフォルダ内に「スタートアップ」という新しいフォルダを作ろうとすると既に存在するので作れない、となる。 ■フォルダオプション→表示→隠しフォルダ表示、にしてもNG という状況です。 どうすれば「スタートアップ」フォルダが見つかるのでしょうか?

  • プログラムが動かない?

    Visual C++ 2005 Express Edition を使っています。 自宅で作ったプログラムを学校で動かそうと思ったのですが、エラーがでるパソコンがありました。 自宅のパソコン (Windows XP、Visual C++有り) 正常に動作 学校のパソコン1(Windows XP、Visual C++有り) 正常に動作 学校のパソコン2(Windows XP、Visual C++なし) エラー (Releaseモードで作ったオブジェクトファイルを学校で動作確認しました。) なぜ学校のパソコン2でエラーが出たのかわかりません・・・。 Visual C++がインストールされていないパソコンで拡張子.exeのファイルだけでプログラムを動かすには何か特別な操作が必要なのでしょうか。

  • プログラムについて

    ソケットを使用して受信したJPGファイルを"tmp.jpg"で保存し それを以下の手順でラベルに表示させています。 icon = new ImageIcon( "tmp.jpg" ); label.setIcon( icon ); プログラム起動後、最初に受信したデータは正常に表示できるのですが2回目以降 受信したデータを表示させることができません。(表示が更新されません。) (ソケットによるデータ受信動作は正常にできています。:IEでtmp.jpgを見ると データが更新されていることを確認してあります。) おそらくImageIcon()かlabel.setIcon()にて同じファイル名を指定しているからでは ないかと考えているのですが、 どのようにしたら、表示データを更新させることができるのでしょか?ご教授お願い いたします。

  •  セキュリティーのためのソフトを変更しようと考え、「プログラムの追加と

     セキュリティーのためのソフトを変更しようと考え、「プログラムの追加と削除」からPC購入時から入っていたソフト(仮にAとする)を削除した。  しかし、タスクバーからはメーカーのマーク(A)が消えず、しかも、他社のソフト(仮にBろする)をインストールすると、削除したはずのソフト(A)を削除せよ。とのメッセージが出て、(B)のインストールが完了しない。  何度調べても「プログラムの追加と削除」の中には全く(A)存在しない。  タスクバーに残っているソフト(A)をアンインストールできますか。できるならば、その方法をご教授下さい。