回答受付は終了しました
ペンネーム:質問者 (匿名希望)さん

プログラムが動きません

[家電・PC・ネット]

こんにちは。お恥ずかしいんですがパソコンのことでとても困っているので質問させてください。

3月の申告に使っていたプログラムなんですが、昨日修正申告のために動かしたら、画像のエラーが出て動きません。
今まで何年も動いてきたのに、急にどうしたんでしょうか。
詳しい方がいらっしゃいましたらお願いします。

ちなみに、プログラムを作ってくれた会社は何年か前に解散(倒産?)してしまって頼めません。(;_;)

閲覧数
274
拍手数
0
回答数
4

回答 4件

ペンネーム:回答者 (匿名希望)さん

最初に同情半分説教半分の能書きですが、これ、業務アプリの不具合ですよね。

そのアプリの保守契約はどうなってます?
作成した会社が倒産しても、どこかが保守を引き継いでいないのですか?
保守契約を結んでいないとしたら、経営者やシステムの責任者は、
不具合が出た時にどうするつもりでいるのですか?

実際、この問題をボランティアのQ&Aで解決しようとしてますが、
それは経営判断なんですか?
答える人はあくまで善意でお気軽に答えるだけなんだから、
回答が出なかったり間違っていたりすることも当然ありますが、
それも会社として了承済みなのですか?

有料でも、問題を直すだけの責任を知識のあるベンダーと
契約を結んで解決しようとは考えていないのですか?

自分だけの判断でここで解決しようとしているのなら、
業務に支障が出た時に、あなたの責任になっちゃいますよ。

以上、説教、というか、懸念です。


次に、同情する部分です。

原因調査で質問しても、用語が通じないで終了のパターンが多いのですが、
用語もけっこう通じていて、きちんとレスしているのには好感が持てます。
同時に、問題が解決しそうにない点に同情します。


stackはメモリーです。stack overflow はメモリーの不足であって、
ディスクの不足ではありません。
もうこれ以上ディスクを変更してはいけません。

メモリーと言ってもプログラム内部の論理的なメモリーなので、
これが不足するのは、搭載しているメモリーが足りないのではなく、
プログラムの設計上の問題です。

まず、何が問題か探るために、以下を実行してください。
変更される箇所はないので、安心して実行してください。

1.

C:\>debug \dddd\kessan02.exe と入力
ddddはkessan02.exeが置いてあるフォルダ(ディレクトリーとも言う)です。

2.

ファイルが見つかりません、と言われずに、
- で入力待ちになったら、R と入力

3.

Q と入力して終了。

4.

表示の中に、SP=xxxx があるので、xxxx を教えてください。
この値が不足と言われているstackのサイズです。

ペンネーム:質問者 (匿名希望)さん

相談者
お返事ありがとうございます。厳しいご意見だけど身にしみました。
今日怖くなって課長に話したら、支店で修正申告をしてみるように言われました。それから修理の業者探しも。思い切って話してよかったです。

それから1から4までやったら、SP=0800が出ました。最初、/の逆向きが探せなかったんですが、\でいいんですよね。

ペンネーム:回答者 (匿名希望)さん

やっと会社に話したのですね。
業務上の問題は会社全体で解決するものなんだから、
自分一人で抱え込まないことですよ。

手順は実行できたのですね。
"\" は"¥"で合ってます。この板は文字化けするんですよ。
SP=0800は少なすぎです。だからSTACK OVERFLOWになっています。
何故今まで動いてきたかのほうが謎ですが、
とりあえず増やして実行してみてください。

1.

C:\>debug \dddd\kessan02.exe と入力(6/8と同じ)

2.

- で入力待ちになったら、R SPと入力

3.

SP 0800
:

で入力待ちとなったら、2000と入力

4.

- で入力待ちになったら、Gと入力

5.

これでプログラムが起動するか教えてください。
ただし、起動しても処理は一切しないですぐ終了すること。
真の原因が不明だから。

6.

- で入力待ちになったら、Q と入力して終了


もし、5. で STACK OVERFLOW だったら、3. の2000を、
3000、4000、と 1000ずつ増やしながら、8000まで、
1.から6.を繰り返してください。


もし起動していたら、真の原因を探るために、以下を実行してください。

C:\>set >set.txt

これでC:\にset.txtというファイルが作成されるので、
そのサイズを書いてください。

ペンネーム:質問者 (匿名希望)さん

相談者
おおおお、動いたぁぁぁぁぁぁ━━ヽ(。´▽`。)ノ━━ぃ!!
何がどうなってるのかサッパリワカリマセンが、まるで魔法みたいです!!
まだ修正申告の処理はしてません。
set.txtは1852バイトでした。引き続きオネガイシマスッ(-人-;)

ペンネーム:回答者 (匿名希望)さん

うーーーん、これで動くのか・・・・
だとしたら、単にデータ量が多いだけだったんでしょうか?
でも、動いてよかったですね。
ホセ・ヤコビさん、適切なアドバイスを有り難うございます。

生半可な知識で回答してすいませんでした。

ペンネーム:回答者 (匿名希望)さん

せっかくset.txtのサイズを書いてくれたのに、回答遅れてすみません。

1852バイトだったら説明がつきます。

SP=0800は、10進数で2048バイトです。
スタック領域が起動時にこれだけしかないのに、
環境変数に1852バイトも使われてしまったので、
スタックが不足したということです。


対処法は2つあって、1つは、kessan02.exe の初期スタックを増やすこと。
MS製ではexehdr/editbinなどのツールがあり、
類似のフリーウエアもあります。

2つ目は、この環境変数の中で、不要なものを削除することです。

どちらでもいいと思いますが、理由は割愛しますが、
私は2つ目を推奨します。以下、方法です。

1. そのset.txtをメモ帳で開く。中身は xxxx=yyyy の形式の行が並んでいるはずです。

2. 全ての行の yyyy を消してください。yyyy は固有情報なので。

3. 保存したら、ここに貼ってください。




nobさん、私のほうこそ、途中で横からすみませんでした。

私も原因がわかったのはたまたまです。
エラーメッセージの出力元を探すために、
c:\windows\system32 以下のファイルから
"STACK OVERFLOW"の文字列を探したら、
多数の .exe や .dll が該当したので、これは、OSやアプリではなく、
c/c++のライブラリが出していると推測して調査したところ、
MS-Cは各関数呼び出しの都度、スタック残量をチェックし、
残りが少ないと、このメッセージを出力することがわかりました。

同時に、MS-Cのスタートアップは、
環境変数のアドレス**envpをmain()に渡す際、
ポインタを直接渡すのではなく、
全てをスタックにコピーすることもわかりました。

MS-DOSに比べて、Windows の DOS command prompt は、
環境変数が異様に多いため、これでスタックが食い潰されるのですが、
おそらく、3月時点ではギリギリで動作していた所に、
3月以降に環境変数を消費する何かがインストールされたために、
この現象となったんだろうと思います。

とはいえ、わかってみれば、
たまさんの、今までと違う操作を疑うとか、
nobさんの、別のPCで試してみるというアプローチは適切だし、
それで起動できて解決となるはずだったのに、
非常に申し訳なく思っています。

というわけで、今後ともよろしくお願いします。

ペンネーム:質問者 (匿名希望)さん

相談者
set.txtは意味のわからない文字が並んでましたけど、とにかく=の右側を消しました。
それと、原因も何度読んでもチンプンカンプンです。
でもすっごく難しいことだけはワカリマス。お手数かけてスミマセン

ALLUSERSPROFILE=
APPDATA=
asl.log=
CLASSPATH=
CLIENTNAME=
CommonProgramFiles=
COMPUTERNAME=
ComSpec=
FP_NO_HOST_CHECK=
HOMEDRIVE=
HOMEPATH=
LOGONSERVER=
NJAVA_HOME=
NUMBER_OF_PROCESSORS
OS=
Path=
PATHEXT=
PROCESSOR_ARCHITECTURE=
PROCESSOR_IDENTIFIER=
PROCESSOR_LEVEL=
PROCESSOR_REVISION=
ProgramFiles=
PROMPT=
QTJAVA=
SESSIONNAME=
SonicCentral=
SOUNDPATH=
SystemDrive=
SystemRoot=
TEMP=
TMP=
USERDOMAIN=
USERNAME=
USERPROFILE=
windir=

ペンネーム:回答者 (匿名希望)さん

ああ、きっと3月以降にJAVAか何かをインスト−ルしたんでしょう。
動画、ゲーム、音楽とかを動かすためかな?

1. まず、PATH=, COMSPEC=, PROMPT= の行を削除
2. 残った行の最初に set の文字を挿入(下に貼ったように)
3. 保存して終了
4. set.txt を unsset.bat に名前を変更
5. C:\>unset を実行
6. C:\>kessan02 を実行

これで起動するはずです。修正申告処理に取りかかってください。
起動しなかったら、また調査します。

set ALLUSERSPROFILE=
set APPDATA=
set asl.log=
set CLASSPATH=
set CLIENTNAME=
set CommonProgramFiles=
set COMPUTERNAME=
set FP_NO_HOST_CHECK=
set HOMEDRIVE=
set HOMEPATH=
set LOGONSERVER=
set NJAVA_HOME=
set NUMBER_OF_PROCESSORS=
set OS=
set PATHEXT=
set PROCESSOR_ARCHITECTURE=
set PROCESSOR_IDENTIFIER=
set PROCESSOR_LEVEL=
set PROCESSOR_REVISION=
set ProgramFiles=
set QTJAVA=
set SESSIONNAME=
set SonicCentral=
set SOUNDPATH=
set SystemDrive=
set SystemRoot=
set TEMP=
set TMP=
set USERDOMAIN=
set USERNAME=
set USERPROFILE=
set windir=

最後に、もしSTACK OVERFLOWが再発したり
支店で発生したりした時は、
同じ手順でunset.batを作って流してください。

自力で。

ペンネーム:質問者 (匿名希望)さん

相談者
( ^∇゚)b動きました! !
本当にここで相談してよかったです、感謝、感謝です。さっそく課長に報告しました。どうして動いたか説明できないアタシ、、、
でも何かインストールしませんでしたかって聞いたら、研修用に何かのソフトを入れていたので、それかもしれないなと
でも修理の業者探しはキャンセルで、軽くほめられました(●´ω`●)ゞ

いろいろとありがとうございました。やり方は忘れないようにこのページをしっかりキープしておきますねっ

ペンネーム:回答者 (匿名希望)さん

動いたんですね、おめでとうございます。

ペンネーム:回答者 (匿名希望)さん

データが壊れているということはないでしょうか?
起動するといきなり、「スタックオーバーフロー」ですか?
だとすると、起動時に読み込むべきデータが壊れている可能性があります。
データの整合性をチェックすることは可能ですか?
動いていたときのデータの状態にすることは可能ですか?
つまり、3月の決算データを一旦USBなどにコピーして,
3月時点のデータをすべて削除する → 2月以前の状態にする。
この状態で決算プログラムを起動してみる。

要は、動いていた状態に戻してやってみる、ということです。
データを戻してもダメなら、プログラムが壊れている可能性大です。

※決算データだけでなく、プログラムがこっそり使用するデータが壊れている可能性もあるので、原因を突き止めるのは大変な作業になると思います。

ペンネーム:質問者 (匿名希望)さん

相談者
お返事ありがとうございます。

データが壊れている可能性ですか。
実はデータを削除するプログラムも同じエラーで動かないんです。
それで、2月以前の状態ではなく、データを全部消して動かしてみました。
でも結果は同じでした(T_T)
プログラムも壊れている可能性があるんですね。
バックアップは取ってあるので、戻してみればいいですか。

ペンネーム:回答者 (匿名希望)さん

うーん、難しい状態ですね。
>データを削除するプログラムも同じエラーで動かない
という所をみると、データがおかしいような気がしますが、データを全部消してみても結果は同じとなると、原因はデータじゃないのかな?
決算用と、削除用の二つのプログラムが同時に壊れるというのも???です。
データを全部消した、ということは
a) パソコンの中には決算に関連するデータは残っていない。
b)外付けHDやUSBなどから、データを復元することはできる
と言うことですね。
別のPCが使えるなら、プログラムとデータをそちらへインストールして、そこで実行できませんか?
別のPCで実行できるなら、(決算後のデータは怪しいので\決算前のデータを使用して決算処理をやってみてください。

別のPCが使えないなら、考えられる手段を書きます。
1.ハードディスクのチェックをする。
マイコンピュータのローカルディスクを右クリック→プロパティ→ツール→チェックです。
「エラーがどうのこうの・・・」と言われたら、すべて「Yes」
2. プログラムを再インストールする
一旦アンインストールするか、全部削除し、再度インストールする
関連するデータも全部削除する
3.この状態でプログラムを起動する
ここで同じエラーなら・・・・諦める
4.決算前のデータの状態に戻し,プログラムを起動
起動できたら、もう一度決算処理をする(前回の決算後のデータは、怪しいので使わない)
5.決算の修正処理をする

私の考えつく方法は以上です。
1.のディスクのチェックを行うと、状況がより悪化する可能性もあるので、1.をとばして2.以降をすることも考えられますが、どちらがよいか判断できません。

要は、何とかして動いていたときの状態を再現したいと言うことです。
いづれにしても、復元できる可能性は余り高くないと思います。

ペンネーム:質問者 (匿名希望)さん

相談者
詳しい対策、ありがとうございますm(_ _)m

プログラムもデータもバックアップは取ってあるので、支店のパソコンにインストールすることはできます。離れていてすぐにはできないですが。
だけど伝票の入力は支店ではできてるから、修正申告もできるかもですね。

ここのパソコンでは全部消して再インストールというのはやりました。
けど同じエラーでした。支店でもできなかったら諦めるしかないんですね(T_T)

ペンネーム:回答者 (匿名希望)さん

>全部消して再インストールというのはやりました。
うーん、そうですか・・・
だとすると、かなり悲観的にならざるを得ないですね。
余り力になれなくて、すいません。

ペンネーム:質問者 (匿名希望)さん

相談者
nobさん、すいませんとか言わないでくださいね。とっても感謝しています。別のパソコンで試すアイデアはnobさんのおかげです。m(_ _)m

ペンネーム:回答者 (匿名希望)さん

もう、すでに回答されていますように、エラーメーッセージデkessann2エクサイス(ソフト)自身が
タイプ的に古いハードデスク用に適応して領域が
狭く設定設計されているのだと思います^^

多分XPでは使えても、バージョンアップするか、
一旦オーバーフローした過去のデータをCDまたは
別の外部増設ハードデスクに移し変えて、一旦クリアー
してみたらいかかでしょう?

それでまだ、だめなら最後の手段は、ソフトのバックアップとっておいて、入れなおしです。

それでも、動かなければ、決算ソフト自体が時間自滅の
設計?(新ソフト買い替え促進目的)かも^^

今わ決算ソフトも軽くて安いものが沢山ありますので
なるべく安価で動きが軽くて慣れやすいものを、、^^

決算のような記録性の大切なソフトは、やはり時代に
あった新しいものにしたほうが、、^^

ペンネーム:質問者 (匿名希望)さん

相談者
あれ?書き込みが消えてる??
また書きますね。

お返事ありがとうございます。

nobさんにもレスしましたが、クリアーしても同じでした、、、、
それにプログラムの入れ替えも簡単にはできないんですよねえ。
なにしろデータが何年分も貯めてあるし、支店もありますから。

ペンネーム:回答者 (匿名希望)さん

動いてるパソコンてWindowsです・・・よね?
パソコンはWindowsなんだけど、ソフトはMs-Dos時代のときに作られたものと推測します。

Cドライブに Kessan02っていうソフトが入っているんですね。たぶん、Cドライブの直下をMs-Dosで見ると、Kessan02.exeっていうのがあるはずです。

Windowsで、ハードディスクの空きがどれくらいあるか?なんて見ることが出来ますでしょうか?空きが少なくなってるんだと思いますが。

ペンネーム:質問者 (匿名希望)さん

相談者
さっそくのお返事、ありがとうございます^^

今のパソコンはウインドウズXPです。
詳しくは知らないのですが、ずいぶん前に作ってもらったプログラムと聞きました。

ハードディスクの空き、見られますよ( ̄ー ̄)ゞ
Cドライブの空き領域が24.5GBと出てます。

ペンネーム:回答者 (匿名希望)さん

パソコンがWindowsなのに、Dosモードの黒い画面で実行しているので、古いソフトだと言うことはわかります。
特別に作ってもらった専用のソフトなのでしょう。

空きは大きいんですね?
エラーメッセージが”スタックオーバーフロー”だったので・・・

そのメッセージが出る前に、今までとは違うやり方をしたとか、
考えられることはありますか?
たとえば、マニュアルには「一度に10件分しか入力できません」という注意書きがあるのにそれ以上の入力をしてしまったとか?

入力したデータがちゃんと書き込まれているのか確認して、あればそのデータの件数までが入力限界かと考えられます。

ちなみに、スタックオーバフローで探していただくと、いろいろ出てくるかと思います。
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1211681912

ペンネーム:質問者 (匿名希望)さん

相談者
またまたお返事ありがとうです。違うやり方はしてないです。
3月の申告に漏れた伝票が出てきたので追加しようとしたらこのエラーで動かなかったので、データは3月のままなんですよ。
ふと思ったんですが、自然にどこかが壊れたんでしょうか。もしかしてウイルスかなあ
知恵袋も見てみましたが、メモリーは2G入れてますけど、文法やプログラムミスだと直せないですぅ(><)

ペンネーム:回答者 (匿名希望)さん

”3月の申告に漏れた”ということは、前年度の経理データは年次処理をしてしまっていて、修正できない状態にあるということはありませんか?

もし、”前年度の申告漏れ”ということであれば、そのデータは修正申告の対象になるので、その経理データは直せないようになっているのでは?

ペンネーム:質問者 (匿名希望)さん

相談者
修正申告はよくあることなので手順は合ってます。だけどプログラムが動かないのは初めてなんですよねえ

関連するお悩みはこちら

回答受付は終了しました
回答数 2

WIN10Proが¥9000 

WIN10Proが、約¥9000 で買えるというネット広告をクリック注文、代金を支払いましたが、結局WIN10Proは手にしていません、WIN10Proは扱っていません、というメールを受け取り、代金を返して、とメールしましたが、応答なし 警察では内容証明郵便で・・...

回答受付は終了しました
回答数 4

お気に入りのスマホアプリを教えてください

便利なもの 面白いもの 時間つぶしにいいもの    ・    ・    ・ あなたのお気に入りのスマホアプリを教えてください。

回答受付は終了しました
回答数 1

バス路線の必要な個所だけを拡大して印刷したい

バスの路線図の中で必要な部分だけを拡大して印刷する方法はありますか? 路線のエリアが広いので印刷すると全体の路線図が入ります。 そこで必要な系統の部分だけを拡大して印刷して両親に渡したいのです。 パソコンの画面上では拡大して見る事が出来ますが、印刷すると全体画像...

回答受付は終了しました
回答数 6

「筆ぐるめ」の名前の追加

筆ぐるめのVER18を使っています。 今年の年賀状で住所が変わったりした方を再登録しました。 ところが、あいうえお順には入らず、苦労しております。 発売元のFUJI SOFTはもう18はサポートを打ち切ったということで、埒があきません。どなたかご存知の方がいらっし...

回答受付は終了しました
回答数 2

デジカメ液晶画面のキズの修理はいかほど?

ペンタックスのオプティオH90の液晶中央部に縦2〜3mmで横数センチのキズが入ってしまって、再生が見づらくなってしまいました。修理するといくら位かかるものなのでしょうか?新たに購入したほうがおトクなのでしょうか?

回答受付は終了しました
回答数 1

TV映像ダビングのトラブルです

ビデオテープへのダビングもビデオテープの再生も、突然、 昨日から、TVもDVDデッキも受けつけなくなりました。 再生もダビング(新しく買ったDVDデッキのハードディスクから古いデッキに送る)もできないなんて、不思議。 前日まではスイスイできてたのに〜。 古いデッキ...

お悩みQカテゴリ一覧