トップページ⇒tech
455コメント137KB

new/deleteで異常終了する(Visual C++)

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2010/01/06(水) 20:35:52
大変、困っています。
Visual C++ 2008でコーディングしています。
コーディングは何度も何度も見直しました。
間違っていません。

なのに、実行するとnewで異常終了します。
debug版で動かすと動きます。release版で動かすと異常終了します。
デバッグのしようがありません。

ホントに、コーディングは正しいんです。
こういう症状の原因って何が考えられるでしょうか。

よろしくお願いします。

deleteでも異常終了します。
未初期化ポインタのdeleteとかそんなのではなくて、
本当にコーディングはあってるのに、異常終了します。

動きは、毎回違います。
例えば、printfデバッグをしようとしてprintfを
挿入すると、異常終了ポイントが変わります。
でも、newかdeleteで落ちます。

ホントに、ホントに、コーディングは合ってるのに
どうしようもありません。

もう何ヶ月も仕事が進みません。
このままだと、クビになっちゃいます。

お願いします、本当に、よろしくお願いします。
0079デフォルトの名無しさん2010/01/08(金) 23:57:48
別に言葉遊びしたいわけじゃないからどうでもいい

ちゃんと動くもちゃんと動いているように見えるも同じ
0080デフォルトの名無しさん2010/01/09(土) 00:05:41
今年はこういう白痴新人が入ってきませんように
0081デフォルトの名無しさん2010/01/09(土) 00:15:40
>>78,79
趣味のコードならそれでいいさ。誰も困らないからね。

>>80
この手のはマジで会社の寄生虫だよな…>>1のように他人のせいにして
学習せず原因を追求せず30過ぎても40過ぎても>>1と同レベルのコードを書く。
0082デフォルトの名無しさん2010/01/09(土) 00:55:17
>>81
別に>>1が汚いコード書こうが81は困らない
だからどうでもいいだろ。

おまえが>>1のコードで直接被害うけてるならともかく第三者のくせにごちゃごちゃいうなみっともない
0083デフォルトの名無しさん2010/01/09(土) 01:13:03
>>81の書き込みで被害を受けない>>82がごちゃごちゃいってみっともない件について
0084デフォルトの名無しさん2010/01/09(土) 02:50:21
動けば良い→企業人の鑑のようなハツゲンだが、後悔先に立たず
企業内でコードを書くことは少なからず責任を伴う。

どうしてうまくいかないのか悩む→学生の鑑のような行為だが
企業内で研究開発は兎も角、勉強や学習をするのは会社法に
抵触する犯罪。こちらのほうがずっと深刻で、こういうことが
まかり通っているとその会社は破滅の路を辿っていることになる。
0085デフォルトの名無しさん2010/01/09(土) 04:48:31
開発だよね
0086デフォルトの名無しさん2010/01/09(土) 10:58:55
>>84
つまり技術の無い奴は来るなということですね
0087デフォルトの名無しさん2010/01/09(土) 11:22:00
>>82
お前が一番みっともないんだけどな
008862010/01/09(土) 11:59:16
>>68
目処が付きそうで良かったね。

2chの中でもプログラム関係は本当に人を攻撃するのが好きだよね。
0089デフォルトの名無しさん2010/01/09(土) 12:56:29
単発質問スレを立てた上に、言われた内容を理解できない馬鹿は叩かれて当然だけどな
0090デフォルトの名無しさん2010/01/09(土) 17:10:51
>>86
会社に相当する団体が大杉なんだこの国は
0091デフォルトの名無しさん2010/01/09(土) 20:27:39
異常終了の原因は100%メモリ管理なので、
メモリ管理を指摘するだけのコメントはアドバイスにならない
0092デフォルトの名無しさん2010/01/09(土) 21:01:46
でも本人が
ソースは見せられませんが私の書いたコードは間違っていません! VC++のバグです! それ以外の答えはお断りします! って言ってるんじゃねぇ。メモリ管理のバグがなんにせよ、問題の箇所が見えなきゃアドバイスも何もないよ
009312010/01/09(土) 22:32:34
仕事があまりにも遅れてるので、今日も出社してました。
今のところ、問題は再発してません。
アドバイスを下さった方々、ありがとうございます。

今回のように、newで落ちる(またはdeleteで落ちる)という
デバッグが極めて難しい状況に陥った時、うまくデバッグする
方法はあるでしょうか。

しかも、今回はたまたま問題箇所が見つかりましたが、
落ちるクラスを使用する部分と全然違う部分のコードが
原因でした。

このような時にどようにデバッグするのがいいのか
アドバイスをいただければと思います。

よろしくお願いします。
0094デフォルトの名無しさん2010/01/09(土) 22:34:59
>>93
> デバッグが極めて難しい状況に陥った時、うまくデバッグする方法はあるでしょうか。

端的に言うと「発生させるな、レビューと実装規約で抑えろ」だ。だがお前には無理だ。
お前のように正しいと決めつける奴、つまりお前には無理だ。
絶対に正しいレビューはできない。絶対にお前には無理だ。
0095デフォルトの名無しさん2010/01/09(土) 22:55:59
仕事をわざと遅らせ、残業代稼ぎの為の出社だと
会社の人は見ています。下手すると詐欺で告訴
されるかもしれません。
0096デフォルトの名無しさん2010/01/09(土) 23:00:45
素人はJavaでも使ってればいいのに
0097デフォルトの名無しさん2010/01/09(土) 23:11:46
C/C++コンパイラでコンパイル時に警告が出ているコード
は既にある程度バグを含んでいるとすら言える。

>>1はこのスレを立てた段階のコードをまだ持っていれば
再度コンパイルしてみれば?
多分警告が多数出てる筈。その警告の原因一個一個潰すと
エラーの原因がわかる筈。
0098デフォルトの名無しさん2010/01/09(土) 23:26:15
JavaはC++がまったくわからんって人が使うと
危険だろ
0099デフォルトの名無しさん2010/01/09(土) 23:27:29
valgrindみたいなツールでメモリの不正アクセス箇所を探せばいいんじゃねえの
Windowsにおけるvalgrind相当のツールは知らんけど
0100デフォルトの名無しさん2010/01/09(土) 23:32:44
最近は、C++はおろかCも打てないJavaプログラマ多いだろ
0101デフォルトの名無しさん2010/01/09(土) 23:38:09
>>95
俺の先輩で、数万円の残業代稼ぎに腹を立てた
アホ監査役のせいか、クビになっただけでなく
億単位の損害賠償を民事で引っ掛けられた人
知ってるんで、コードが動かないから残業しよう
なんてことはしないほうがいいんじゃないか..
0102デフォルトの名無しさん2010/01/09(土) 23:58:03
>>101
俺の先輩では動かないコードを放置して有給休暇を取って
旅行に行ったらその間に勝手にリリースされちゃって
客先がそのソフトを使って事故を起こしてしまったらしく
警察沙汰(業務上過失致死傷のカドで逮捕者も出たらしい)
になったらしいから、コードが動かない、或いは問題を含む
ことを知りながら放置するのだけはやめたほうがいいと思う
ね。
0103デフォルトの名無しさん2010/01/10(日) 00:56:45
>>101
>億単位の損害賠償を民事で引っ掛けられた人
損害賠償請求権等不存在確認請求訴訟を起こすべきレベル
0104デフォルトの名無しさん2010/01/10(日) 01:44:08
で敗訴したら名誉毀損という刑事訴訟法上の犯罪になると...
0105デフォルトの名無しさん2010/01/10(日) 10:39:41
結局サー残するのが一番マシなんですね…
0106デフォルトの名無しさん2010/01/10(日) 12:24:25
このスレまだあったんだ
0107デフォルトの名無しさん2010/01/10(日) 14:28:41
>>68がどうやってバグを見つけたか知りたい
0108デフォルトの名無しさん2010/01/10(日) 14:34:43
どう直したかを知りたい
0109デフォルトの名無しさん2010/01/10(日) 14:40:32
今は日本語不自由な給料安く働いてくれる中国人のほうが
自称プロよりよっぽど良い。

日本人はよっぽどスキル高くないと雇われん
0110デフォルトの名無しさん2010/01/10(日) 14:51:26
>>108
それ以前にどういうバグだったのかを知りたいわ。
こんなエスパー相手にしているようなスレ立てるやつにプログラム書けるわけない。
0111デフォルトの名無しさん2010/01/10(日) 15:51:37
日本人の未経験者に払う安い賃金のさらに半額未満で
情報工学の修士が雇えたりする
0112デフォルトの名無しさん2010/01/10(日) 15:57:15
いや、もともと 1 は自分のコードが正しいとか言っているので、
特にプログラムなんかいじってなくて、
別のメモリーがたっぷり積んであるマシンで動かしたら落ちなかったとか、
メモリ常駐のプログラムを増やしたり減らしたりしたら落ちなくなったとか、
そういう話なんじゃないかな?
0113デフォルトの名無しさん2010/01/10(日) 15:57:21
使えるかどうかは...
0114デフォルトの名無しさん2010/01/10(日) 17:04:06
>>45
情報処理うかったくらいで一流プログラマの仲間入りしたつもりなら大間違い。
0115デフォルトの名無しさん2010/01/10(日) 17:38:06
あの文章のどこからそんな慢心が読み取れるのだ
0116デフォルトの名無しさん2010/01/10(日) 17:41:47
その文章に限らず
> コーディングは何度も何度も見直しました。
> 間違っていません。
これほど傲慢な質問者は他にいない
011712010/01/11(月) 01:35:23
>>94
バグを発生させなければいいというのは確かにそうですね。
勿論その努力をすべきだと思います。
ただ、それでもバグが起きてどうにもならなくなった時
どうするのがいいでしょうか。

>>95, >>101
うちの会社は残業代出ませんので、そういう問題は起こりません。

>>97
いえ、警告は一切なしです。常々、私は警告であっても、必ず
対処するように心がけています。いつも、警告なしでコンパイルを
通ったコードで異常終了するバグに悩まされています。
011812010/01/11(月) 01:37:18
>>107, >>108, >>110
全部話すと長くなるのですが、今回の開発は私とSさんで分担して
やってます。私がライブラリを作り、Sさんは私の作ったライブラリを
使って実行プログラムを2つ作ります。

私の作ったライブラリのクラスC1のコード内のnewやdeleteで異常終了
する不具合が見つかったのは、もう3ヶ月くらい前のことです。

もともとは私の担当しているコードで異常終了したため、問題は私の
コードにあるのではないかと思い、何度も何度も見直しました。
単体テストでは問題なく、コードレビューでも問題なく、まったく
異常終了の原因が見当たらなかったのです。

なので、Sさんの方に問題があるのではないかと思い、Sさんに
原因調査を依頼しましたが、何だよバグはお前だろみたいな感じで
あまりやってくれないので、時間が経ってしまいました。

確かに、私のコードで落ちるので、私も、再度、テストし、コードも
見直し、何度も何度もチェックしたのですが、問題はなく、Sさんの
コードに問題があるのではないかと言うと、お前のコードで落ちるん
じゃないか人のせいにするのかよみたいな感じで、まったくデバッグが
進みませんでした。
011912010/01/11(月) 01:38:26
そのままずるずるしてしまったのですが、Sさんに原因究明をお願い
してもまったく進まないので、一緒にやることにしました。
debugビルドで動き、releaseビルドで異常終了。printfデバッグでも
原因が全く掴めない状態で困難を極めました。とにかく、私は、自分の
コードはもう間違ってないと思っていたので、実行プログラムの
ソースコードを直さないとどうにもならないと思っていました。
実行プログラムは2つありますが、問題はその片方だけで起こります。
なので、実行プログラムの方に問題があると私は尚更思いました。

そこで、問題の実行プログラムのソースコードの各所をコメントアウト
するかそれが無理なら無害なスタブに置き換えてテストしてもらいました。
というか、一緒にやりました。ふざけんなよまだおれを疑ってんのかよ
お前のコードで落ちるんじゃねぇかみたいな雰囲気のまま、強引に
やりました。すると、ある部分をコメントアウトしたら異常終了しない
ことが分かりました。その部分は、異常終了するクラスを使う部分とは
全く別の所で、想像もつかないような所でした。

私はその部分のコードを見直すようにお願いしたんですが、
これもなかなか進まなくて、コードを変えろと言っても、
forをwhileにしたり、ちょっと行を入れ替えたり、式の形を変えたり
して持って来るので、私がコードレビューして、ちょっと気になる
ところがあったので、ループと分岐の作りを変えてもらうと、
異常終了が起こらなくなりました。

なので、その部分のコードにメモリを破壊する何らかの原因があったん
だろうと思っています。
0120デフォルトの名無しさん2010/01/11(月) 01:41:59
>>1はプログラマになって何年目なんだろうか
0121デフォルトの名無しさん2010/01/11(月) 01:41:59
コンパイラを変えてやってみた?
GCCやらBCCやらDMCやらいろいろあるだろ?
0122デフォルトの名無しさん2010/01/11(月) 01:46:58
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものではありません。

アイと研究員とのやり取りに利用するスレッドではないので、
関係者以外も書きこんで下さい。

                  京都大学霊長類研究所
0123デフォルトの名無しさん2010/01/11(月) 01:49:58
ループの回数が間違ってたとかそんなとこだろ。<=を<で書いたり
0124デフォルトの名無しさん2010/01/11(月) 01:55:48
これ、職場の人間関係的には迷宮入りした方がうまくいきそうだな。
0125デフォルトの名無しさん2010/01/11(月) 02:09:51
赤の他人にこの程度の情報でバグ出しをお願いできると思っているヤツなんだから、
職場の同僚にどういった頼み方をしたのかは推して知るべしだな。
0126デフォルトの名無しさん2010/01/11(月) 05:45:08
兎に角>>1はこれだけ世間を騒がせた以上、業務上の守秘義務が
ある箇所を削除して、コンパイルは通るが同様のエラーが
発生するコードをupすべき。
ここの連中が必ず真の原因箇所を突き止めるだろうから。
本当にVCのバグだとしたら、結構怖い話になってくる。
Windowsマシンを基幹システムに繋げるなって話にも
繋がってくるし..
0127デフォルトの名無しさん2010/01/11(月) 07:53:18
初めて書き込みます。
デバッグ版で動くという事は基本的なコードの誤りは無いのでしょう。
リリース版のみで異常終了し、トレース文などを入れると終了する場所が変わったり正常動作するというのは何度か経験があります。
原因は28の人が書いてあるとおりだと思います。

例えばこんな感じ
long CalcArraySize(long& lArraySize); // 宣言
(略)
long lArraySize; // すぐにCalcArraySizeで値が設定されるので初期化しない
CalcArraySize(lArraySize); // ここで配列の必要サイズが取得されるはずだが、エラーだと不定値のまま
m_pClass = new CMyClass[lArraySize]; // 万が一lArraySizeが不定値だと異常終了するかもしれない

オート変数でも宣言時に初期化すればデバッグ版とリリース版で挙動が異なる事は少なくなるはずです。
でも今更全ての変数に初期化文を入れるなんて現実的じゃないかもしれませんね。

P.S.
複数のDLLを使用するアプリで、デバッグ版とリリース版のDLLが混合しているとかないですよね?
そういうのが考慮された造りなら問題ないけど、何も考えていないとメモリの取得や開放で異常終了します。
0128デフォルトの名無しさん2010/01/11(月) 07:56:44
>>14が糞コードすぎる
0129デフォルトの名無しさん2010/01/11(月) 08:04:40
>>117
な?やっぱりお前には無理だろ。

リーク系の不具合は追跡困難だから発生させるな。
だが、お前みたいな奴には発生を未然に防ぐことなんてできない。

お前には無理だ。
0130デフォルトの名無しさん2010/01/11(月) 08:23:48
>>127
>基本的なコードの誤りは無いのでしょう
いやその例、完璧にコードの誤りだし。
DebugとReleaseで挙動が違うのは、よくある「間違ってるけどたまたま動いてしまっている」って奴だろ。

それにしても、>>1みたいなくだらないバグを3ヶ月も放置しても平気なんて、
世の中オレが思っているより平和なのかねえ。

そして、これほどの低レベルの奴らが平気でCやC++という危険な言語を触っていることに戦慄するよ。
オレが社長ならこいつらは当分LLしか触らせないけどな。
0131デフォルトの名無しさん2010/01/11(月) 08:31:28
社長なら首にしようぜw
0132デフォルトの名無しさん2010/01/11(月) 08:59:04
俺が社長なら能力不足を理由に首にしたうえに人事部長を懲戒するレベル
0133デフォルトの名無しさん2010/01/11(月) 09:43:43
そして安く働いてくれる優秀な中国人労働者を雇う
0134デフォルトの名無しさん2010/01/11(月) 10:36:34
悪いのはSじゃん
>>1は悪くないじゃん
0135デフォルトの名無しさん2010/01/11(月) 10:55:22
どうみても>>1の頭と性格が悪いじゃん。
いきなり>>1で「コードは絶対正しいんですぅ!」
解決しても「ぼくの書いたコードじゃないんですぅ!ぼく悪くないんですぅ!」
終始責任逃れに徹して、二束三文の自分のプライドを守ることに執着している。

これによりスレでメモリ破壊を指摘されてもなおも解決できず、時間を無駄に費やした。
さらに俺がSの立場でも、>>1見たいな責任の押し付け合いをするクソ野郎相手には
「何だよバグはお前だろ」「人のせいにするのかよ」っていうわ。
たとえ自分のコードの不具合であっても、足手まといには無駄な作業をさせた方が全体にとって利益だからな。

>>1みたいな奴が開発チームにいたらPM権限発動して隔離部屋で個人作業させるわ。
0136デフォルトの名無しさん2010/01/11(月) 10:59:28
頼んでも調査しないSが悪いだろ
0137デフォルトの名無しさん2010/01/11(月) 11:08:34
Sが悪い、なんて判断は早計だ。
このスレの人には>>1が>>1の立場で書いた情報しか与えられていないのだから。
そして>>1が他人に責任を押し付けるような奴だってのは周知の事実。

確実に>>1にとって都合の悪い事実が捻じ曲げられている & 隠蔽されているだろうな。
0138デフォルトの名無しさん2010/01/11(月) 11:13:05
技術的な話が終わったなら、sage進行でお願いできますでしょうか。
0139デフォルトの名無しさん2010/01/11(月) 11:43:26
そうはいくかい
0140デフォルトの名無しさん2010/01/11(月) 13:36:50
>>118
> なので、Sさんの方に問題があるのではないかと思い、Sさんに原因調査を依頼しました
原因がどちらにあるか切り分けもせず「俺は悪くないからお前のせいだろ!」なんてそりゃ誰でも調査を断るわw
0141デフォルトの名無しさん2010/01/11(月) 13:42:19
コーディングが正しくて、プログラムが正しく動かないという事は、コンパイラが間違っているのだろう。
お前の責任じゃないから、コンパイラが悪いと主張すればクビにはならないよ。
0142デフォルトの名無しさん2010/01/11(月) 13:42:22
でもSさんも自分のコードに問題が無いと思ってる糞だろ
0143デフォルトの名無しさん2010/01/11(月) 13:55:13
でも>>1みたいなアホに「俺のコードは絶対正しいだ。お前のコード間違っている」って言われたら
お前らだって「お前のコードが正しいはずないだろボケ!」と答えるだろ?
0144デフォルトの名無しさん2010/01/11(月) 14:00:10
でもライブラリ単体でエラーでないんだったら見てやるのがSだろ
まったくダメなSだ
0145デフォルトの名無しさん2010/01/11(月) 14:04:56
>>1がSに責任転嫁するために書いた情報でSが悪いと言っている人たちって…馬鹿?
0146デフォルトの名無しさん2010/01/11(月) 15:19:24
コンパイルが通る = 正しいコーディング
だと思っている時点で頭がおかしい
0147デフォルトの名無しさん2010/01/11(月) 16:42:31
int x;
int* p;
p=&x;
p[10000]=500;
これもコンパイルはとおるな
0148デフォルトの名無しさん2010/01/11(月) 16:55:22
>>1が正しいと言っているのだから疑ってはいけない。
0149デフォルトの名無しさん2010/01/11(月) 17:22:55
そうだそうだ
0150デフォルトの名無しさん2010/01/11(月) 17:49:07
俺ならSみたいなやつは切る
0151デフォルトの名無しさん2010/01/11(月) 17:52:20
>>147
それはデバッグ版でも動かないだろう
デバッグ版では動いてリリース版では動かない理由を考えないと
0152デフォルトの名無しさん2010/01/11(月) 18:02:25
p[1]ならDebugで動くんじゃない?
0153デフォルトの名無しさん2010/01/11(月) 18:42:51
ちょうどデバッグ用に取られた領域を書きつぶしてて実行できたんじゃないの
0154デフォルトの名無しさん2010/01/11(月) 22:19:35
デバッグ版とリリース版でメモリの初期化状況が違うんじゃねーの?
変数はちゃんと初期化してからつかおーね
0155デフォルトの名無しさん2010/01/11(月) 22:29:05
デバッグ版は未初期化のところはフフフフで埋められるからな。

char s[100];
printf("(´ー`)%s", s);
↓
(´ー`)フフフフフ…
0156デフォルトの名無しさん2010/01/12(火) 02:58:40
>>126
前々から噂にはなっては消えてる話だろ?
VC(.NETになる前)のmalloc辺りに問題があって
alloc/deallocを数十億回繰り返してフラグメンテーションが
発生すると落ちる場合があるって噂
嘘くさいと思ってる(メモリデフラグソフトがデビューしだした
頃の噂だから)
0157デフォルトの名無しさん2010/01/12(火) 03:11:12
>>156
ネットがADSLになって普及した2000年代前半の頃
盛んにホットフィックスが行われたが少なからず
メモリ周りのセキュリティーホールフィックスが
行われたらしいがその際にバグが混入したとかしなかった
とか聞くね。そのせいかどうか知らんが、ウチの会社では
端末も基幹もWindowsだけど、端末から基幹のほうには
telnetでしか接続出来なかったりしてる(端末はしっかり7
が入っているが、基幹は未だにWindows NT4.0 Server )
0158デフォルトの名無しさん2010/01/12(火) 05:25:08
もう少しまともな改行しろ
0159デフォルトの名無しさん2010/01/12(火) 07:29:43
そういえばメモリのデフラグってだれがやってるの?
勝手にスワップしてデフラグされるの?
0160デフォルトの名無しさん2010/01/12(火) 08:06:45
>>159
ここでのフラグメンテーションは、プロセスメモリ空間上での
話で要するにmalloc/freeなどのライブラリヒープマネージャー
が管理する情報が混乱した状態になる事だろ。
VCみたいなメイジャーなコンパイラとかじゃまずありえないん
じゃね?
0161デフォルトの名無しさん2010/01/12(火) 08:18:38
俺が気にする必要は無いってことですね?
0162デフォルトの名無しさん2010/01/12(火) 08:34:44
>>161
否、気にすべきで、コード記述に便利だからとか奇麗だから
という理由だけでC++とかで安直にクラスの下にクラスを
何層にもぶら下げてるような設計にしてたりすると
new/deleteの回数が増えて、ヒープマネージャに負荷がかか
って、デーモンとかサービスのように途中終了する機会がなく
長時間動作させるようなアプリではシステムによっては、
パフォーマンスが突然滅茶苦茶落ちてフリーズ状態になる
可能性がある
と昔、習った。
0163デフォルトの名無しさん2010/01/12(火) 17:43:09
>>162
可能性があるだけですね?
どのみちWindowsUpdateで再起動するし問題ないですね
0164デフォルトの名無しさん2010/01/13(水) 03:04:33
>>1
は早くソース晒せ
0165デフォルトの名無しさん2010/01/13(水) 05:20:02
>>157
>telnetでしか接続出来なかったり
セキュリティも糞もねぇなw
0166デフォルトの名無しさん2010/01/13(水) 05:24:58
>>159
何をトンチキなことを…
アプリケーションがポインタ直接保持してんのに
勝手に移動されたらどーすんだよ。ハンドルならいざ知らず。
0167デフォルトの名無しさん2010/01/13(水) 06:01:25
今や SSHは敢えてTelnetと区別しないだろ
PuttyとかTera-SSH使っているとでもいいたいんだろ
0168デフォルトの名無しさん2010/01/13(水) 16:39:29
>>167
区別するっつーのwどういう職場なら区別しないんだ。
telnetはtelnet。sshはsshだ。
0169デフォルトの名無しさん2010/01/13(水) 17:57:54
TelnetクライアントのSSH通信対応版も
Telnetと区別しないで伝統名称Telnetと
呼ぶ職場も多いね。
んなことよりもソース晒さないの?
017012010/01/13(水) 22:03:16
出張していたため、暫く2chできませんでした。

>>126,>>164
申し訳ございませんが、コードのアップは控えさせて下さい。
それに、今回の問題の本質は、コードがどうだったかよりも、
異常終了するコードの箇所と全く違う部分のコードが原因と
なっていることもあり、そのような場合にプログラマはどう
デバッグすればいいかと言うことだと思います。

>>127,>>151
デバッグであってもリリースであっても、動かない場合は
基本的にはコードに問題があると思っています。変数の
初期化や配列インデックス値の不正はよくあるミスです
ので注意しています。デバッグ版の場合はデバッグ用の
領域が広くとられているため、バグが表面化しない場合が
あるということなんだろうと思います。

>>128
どう糞なのか教えてください。
14で示したコードはnewやdeleteで落ちるものだから、
その部分の概要が分かるように簡略化して書きました。
それとも、STLやスマートポインタを使ってないことが
糞なのでしょうか。
0171デフォルトの名無しさん2010/01/14(木) 01:12:35
コードもきちんと検証せんとまた同じ事繰り返すかもしれんよ?
0172デフォルトの名無しさん2010/01/14(木) 02:37:15
自分で正解にたどり着けたんなら「なぜそれを最初に行わなかったか」それが君の課題じゃないの
言い訳するなら俺らに対してじゃなく会社にすべきだよね。まあどうでもいいけど
0173デフォルトの名無しさん2010/01/14(木) 03:50:44
>そのような場合にプログラマはどう
>デバッグすればいいかと
まともな人ならちゃんとデバッガ駆使します。
0174デフォルトの名無しさん2010/01/14(木) 04:21:03
>>1
Windowsマシンは安価故、大量生産されて世のPCの95%以上がWindowsマシンであることは一般常識であることは言う迄もない
が、それらは決定的に重要なところに使われているわけでもない
が故に、バグがあると影響がゆっくりと現れて、数が多いが故に
中々取れないんで、バグの存否情報は大きな社会問題に発展する
可能性を秘めている。
会社と君の関係の問題も重要だがWindowsの重要なライブラリの
バグではないかという主張を公開ネット上で一つのスレを使って
主張した以上、多少時間がかかってもいいからその状況を可能な
限り忠実に再現できるファイルセットをアップして真相が決定で
きるようにして欲しい。もちろん君がどの会社のどの部署に
所属しているのか絶対にわからないように変数や関数の名前を無
意味な英数字にするとかそういう工夫は必須だしそうしても貰わ
ないとこの板の住人にも迷惑がかかる。
0175デフォルトの名無しさん2010/01/14(木) 08:31:07
> STLやスマートポインタを使ってないことが糞なのでしょうか。
知識の不足なんてさして問題じゃない。
察しの良い奴ならすぐに学習するからな。

メモリ破壊を指摘されても「僕悪くない!!」に徹した
技術屋としては最低最悪な外道だから糞なんだよ。
0176デフォルトの名無しさん2010/01/14(木) 09:10:13
>>175
コードの話をしてるんじゃなかったのか?w
0177デフォルトの名無しさん2010/01/14(木) 13:03:29
ここまで読んでみましたが、ライブラリというより、呼び出し元が原因ぽいんですよね。
どういうことをしていて、newで落ちてたようだ、ということだけでも書いていただければ、勉強になるんですが。
はっきりしないんでしょうかね。
0178デフォルトの名無しさん2010/01/14(木) 13:04:56
>>170
>>43
■ このスレッドは過去ログ倉庫に格納されています