- PR -

ある端末だけデバッグが通らない。

投稿者投稿内容
tx2005
会議室デビュー日: 2008/04/02
投稿数: 10
投稿日時: 2008-04-04 23:21
ありがとうございます。

ご指摘いただいた事に対する対策としてどうすべきかということがはっきり
理解できないレベルなので、とりあえず試してみた事は、デバッグ実行を試
す前に常駐ソフト等を全て終了させ、メモリクリーナー的なソフトを実行し
てからデバッグ実行してみました。結果は変わらずでした。
実装メモリとしては512です。Bの端末も同じ512なのですが、Bのメ
モリを外してCに取り付けて1G状態で試して見る価値はありますか?
あんまり関係ないですかね?


>不要なオブジェクトはDisposeで破棄をすれば頻度は減ると思いますが・・・
これに対しては具体的にどのようにするのかわかりません。
必要なコントロールが置いてあるフォームが、これから立ち上がろうとして
いる段階でエラーとなっているのでその段階において不要なオブジェクトな
ど無いと思うのですが・・・

みなさんいろいろと考えてくださってありがとうございます。
こんなにいろいろとチェックすべき項目があるのだと勉強になりました。
もうすこし調べたりしながら最悪また、PCの再セットアップをやるか、別
のPCに乗り換えるか検討してみようと思います。


indigo-x
大ベテラン
会議室デビュー日: 2008/02/21
投稿数: 207
お住まい・勤務地: 太陽の塔近く
投稿日時: 2008-04-05 11:29
なんの根拠もないですが
ElTabelle or Inputmanあたりが怪しいと思われるので

@コントロールの生成順番を変更してみてはどうでしょうか?
  or 意味のないループをかますとか

AElTabelle or Inputmanのサービスパックを当てたらどうでしょうか?
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2008-04-07 11:21
引用:

まよんがさんの書き込み (2008-04-04 17:37) より:
'System.NullReferenceException'はnew をされていないオブジェクトに
アクセスした時に発生します。

きちんと動作する端末があるという事はソース上はきちんとnewがされている事になります。

となるとGCが働いて消されている可能性があります。


そんな可能性はまずないでしょう。
※普通のありふれたコードでは
tx2005
会議室デビュー日: 2008/04/02
投稿数: 10
投稿日時: 2008-04-07 11:32
返答ありがとうございます。

>ElTabelle or Inputmanのサービスパックを当てたらどうでしょうか?
これに関してはずいぶん前に、この3環境で問題なくデバッグ出来てい
た頃に、不具合の解消の為のバージョンアップがなされていることを、
GrapeCityのサイトで知った時に3環境とも同時に入れており、現在不具
合の出ている環境「C」についても再セットアップ時には同等に再セット
アップしたつもりです。
今回再度各PCのDLLの更新日付やサイズを比較してみましたが、差異は
見つかりませんでした。

>生成順番を変更してみてはどうでしょうか?
これは、自動で生成されているフォームのデザイン部分のコードの
前後関係を変更するという意味でしょうか?
また、「意味のないループをかます」これはあるコントロールの処理
とその次のコントロールの処理との間に一旦間をおくという事でしょ
うか?他環境では問題なく動いているコードを変更して処理を通すの
に少々抵抗があります。あ、でもこれを試してみた結果次第で今後の
対応方向が見えてきたりするのでしょうか?

先ほど、試してみた事でまた不可解な現象が起こりました。
共通関数のフォルダとプログラムのフォルダを別のディレクトリに移
して実行してましたら、問題なくデバッグモードでフォームが立ち上
がりました。(デバッグの開始からフォームが表示されるまで止まら
ずに行きました。)
あぁ何かわからないけど、場所を変えたらうまく行った。今後はこの
場所で開発していく事にするかと思いながらフォームを閉じ、再度確
認の為、デバッグを開始してみたら、
また、恐怖のメッセ−ジ'System.Runtime.InteropServices.SEHExcep
tion'が表示されてしまいました。(←これを以降「エラー」と表記しま
す。)この事を確認する為に、場所を変えてはデバッグ実行を何度か試
してみましたところ、初めての場所にプログラムフォルダを置いて、
ソリューションを開き、デバッグ実行すると1回目は問題なくフォーム
が起動するところまで到達します。←6箇所場所を変えて試しましたが
1回目は必ず起動できました。
で、そのままフォームを閉じて、ソリューション自体も閉じてから再度
ソリューションを開き、デバッグ実行すると2回目も成功。
この後、3回目でエラーになるケース、4回目でエラーになるケースが
ありました。
場所を変えて1回目の起動に成功したあと、ソリューションを閉じずに
そのまま再実行をすると2回目でエラーとなりました。
いずれもエラーとなったら最後、その場所で正常に起動できなくなりま
す。
この、場所を変えたら1回はうまくいくっていう現象はどうとらえたら
いいのでしょうか?解決の糸口となり得るのでしょうか?
ピンくる方がいらっしゃいましたらお願いします。
ダラダラとすみません。

まよんが
常連さん
会議室デビュー日: 2007/05/20
投稿数: 22
投稿日時: 2008-04-07 11:55
引用:
なちゃさんの書き込み (2008-04-04 11:21) より:
そんな可能性はまずないでしょう。
※普通のありふれたコードでは



SQLからデータを取得、ファイルに書き込みのありふれたコードで起こった事がありました。まあその時は開発環境と実行環境の差があまりにも違ったのですが・・・。GCで勝手にデストラクタが動きファイルを閉じてくれていました。(まあ開発者のミスといえばミスなのですが)。実行環境ではオープン時でエラーを食らっていました。

そんな事はありえないだけで捕らえると解決が遅れる事も多々あったもので・・。CPUが不良品だった障害時は泣きましたが・・。まあ一つの観点として考えてもらえれば結構かと。
indigo-x
大ベテラン
会議室デビュー日: 2008/02/21
投稿数: 207
お住まい・勤務地: 太陽の塔近く
投稿日時: 2008-04-07 21:05
なんの根拠もないですが2

(ElTabelle or Inputmanあたりがやはり怪しい。。。
あくまでも想像ですが、コントロール内で複数スレッドがあって
スレッド間の潜在的バグがちょうどPCの相性(タイミング)で
発生!?)

で、タスクマネージャでプロセス(devenv)を選択して、右クリック
で「優先度設定」にて優先度を上げるor下げるをすれば変化する
のでは。。。。
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2008-04-07 21:17
引用:
この、場所を変えたら1回はうまくいくっていう現象はどうとらえたら
いいのでしょうか?解決の糸口となり得るのでしょうか?

1回目に作成したファイルが消えるべきものだが消えないで残っているとか、
閉じられるべきファイルだが開きっぱなしになっているとかでしょうかねえ。
ところでデバッグについてしか書かれていませんがリリースビルド時は問題ないんでしょうか。
tx2005
会議室デビュー日: 2008/04/02
投稿数: 10
投稿日時: 2008-04-07 23:06
ありがとうございます。

>CPUが不良品だった障害時は泣きましたが・・。

>(ElTabelle or Inputmanあたりがやはり怪しい。。。
>スレッド間の潜在的バグがちょうどPCの相性(タイミング)で ・・・

こういう状況では手も足もでませんね。いよいよPC買い換えでしょうか。



>「優先度設定」にて優先度を上げるor下げるをすれば・・・
簡単に試せそうなのでやってみます。
あげた状態で実行したら通るかもってことですよね。
ただ、これによって状況が変化するようであればどのような対処法があるので
しょうか?


>リリースビルド時は問題ないんでしょうか。
私はリリースビルドに関して簡単にコンパイルと呼んでしまってますが、
コンパイルはこのダメダメなCの環境でも問題なく通ってしまうんです。

スキルアップ/キャリアアップ(JOB@IT)