デバッグ技術を話しましょう
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG0175デフォルトの名無しさん
NGNG無用なバグを産みそうだなぁ
構文解析きちんとしないと危なくてイヤン
0176デフォルトの名無しさん
NGNG#ifdef debug
hogehoge;
#endif
を知った時とても衝撃的だった
0177デフォルトの名無しさん
NGNG逝ってるテストケースも知らないVB厨も馬鹿だな。
0178デフォルトの名無しさん
NGNGdebug(hoge) {
hogehoge;
...
} else {
hugehuge;
...
}
0179デフォルトの名無しさん
NGNG0180デフォルトの名無しさん
NGNG0181デフォルトの名無しさん
NGNGそこまでやるなら、なんかツール作った方がいいと思うけど。
0182デフォルトの名無しさん
NGNGなぜか出てないけどassertは滅茶苦茶重要だと思う。
処理の前に前提条件が満たされているかどうかassert
処理の後に結果が正しいかどうかassert
ちょっと動かせばバグはすぐに見つかる。
0183デフォルトの名無しさん
NGNG0184デフォルトの名無しさん
NGNGprintf 系コマンドで
「間違ってるよ」
メッセージを表示するよりは、さっさと assert でチェックしる!ということですか?
0185デフォルトの名無しさん
NGNG製品出した後にassertで転ぶとこを想像するとガクブルでとても使えない。
0186デフォルトの名無しさん
NGNG製品にassertのこしとくの?プリプロセッサなりなんなりで外したり
できんのかな?
まあ、ユーザー環境でassert引っかかるようなら、そもそも品質問題
だろうけど。
0187デフォルトの名無しさん
NGNG0188デフォルトの名無しさん
NGNG0189デフォルトの名無しさん
NGNGなんかの手違いでデバッグ版のobjやらdllやらが混じっちゃうかもよ。
品質問題っちゃそれまでだけど。
0190デフォルトの名無しさん
NGNGんな奴まで知るかボケェ、DEBUG以前の問題じゃ。
0191デフォルトの名無しさん
NGNG0192デフォルトの名無しさん
NGNGassert を自作する。
トッパンから出ているP.J.プラウガーの標準Cライブラリって本が参考になる。
0193デフォルトの名無しさん
NGNG> 引数が 0 のとき発動するんだよな。
なんて考えてるから、混乱するんだよ。
「式を評価し、結果が false の場合はデバッグ レポートを生成します。」と考えれば何の問題もないと思う。
(まあ、MS のヘルプも悪いけどな。)
0194デフォルトの名無しさん
NGNG0195デフォルトの名無しさん
NGNGそうか ?
printf は変数 watch で、assert は条件付ブレークみたいなもんだと思うが。
0197デフォルトの名無しさん
NGNG(゚∀゚)まあそうなんだけど、結局どっちも
「この変数(条件)がおかしかったらバグだよな」
とアタリをつけながらデバッグする手法だし
0198デフォルトの名無しさん
NGNGそこまで言うと、普通のデバッグ技法はすべてそれになっちゃうわけだが。
0199182
NGNG「この変数(条件)がおかしかったらバグだよな」
ってのはそうだけど、ニュアンスが違う。
後からアタリを付けるのではなく、あらかじめそこらじゅうに
assertをばらまいておく。短い関数だとassert行の方が多いくらい。
当然、デバッグを始めてから入れるのでは遅い。
コードを組むときに手当たり次第に入れておく。
敵を探してねらい打ちするのではなく、あらかじめ地雷を
そこらじゅうに埋めておく感じかな?
0200デフォルトの名無しさん
NGNGデタッチができるデバッグツールは存在しますか?
0201デフォルトの名無しさん
NGNGあるよ。
0202デフォルトの名無しさん
NGNGあるなら、いくらくらいもらえるのかな
0203デフォルトの名無しさん
NGNGバグを探すだけの人はデバッガではない。
0204デフォルトの名無しさん
NGNGそんな話はしてないだろ。
0205デフォルトの名無しさん
NGNGどんな話なの?
0206デフォルトの名無しさん
NGNG0207デフォルトの名無しさん
NGNG私の職場ではGDB(The GNU Source-Level Debugger)を毎日のように起動しているのにバグが修正されません。
誇大広告で訴えるべきでしょうか?
0208デフォルトの名無しさん
NGNGマジレスすると、バグを修正するにはgccも必要。
パッチ作るだけならgdbだけでもなんとかなるが
0209デフォルトの名無しさん
NGNG適当な開設サイトや開設書籍が見当たらない、、、
0210デフォルトの名無しさん
NGNG確か本もあったと思うけど忘れた。
断片的な情報を自分で集めることは必要だろうね。
このサイトなんていいこと書いてる。
ttp://www1.kcn.ne.jp/~robe/index.html
0211山崎渉
NGNG0212山崎渉
NGNG( ^^ )< ぬるぽ(^^)
0213デフォルトの名無しさん
NGNG0214デフォルトの名無しさん
NGNGfprintf に昇格だ
0215デフォルトの名無しさん
NGNG0216デフォルトの名無しさん
NGNG0217名無しさん@Emacs
NGNGスタックトレース等を行いたいです。
OSはlinuxとWindows2000です。
それぞれの方法を教えてください。
言語はC++でお願いします。
0218デフォルトの名無しさん
NGNGICE
0219名無しさん@Emacs
NGNGOSの権限がないとそういうことできないんすかね?
アプリが落ちたときに、例えばcygwinやwin9xとかだとレジスタやスタックの値が出るじゃないですか。
あれをやりたかったんですが。
スタックトレースぐらいできないですかね?
0220デフォルトの名無しさん
NGNG> 言語はC++でお願いします。
C++ だけじゃ無理。
インラインアセンブラ使え。
あとスタックトレースは常にできるとは限らないぞ。
0221デフォルトの名無しさん
NGNG毎秒ごとにファイルに書き出せば、
落ちても、大丈夫。
Windowsアプリなら、楽に実装できますが。
0222デフォルトの名無しさん
NGNG0223221
NGNG僕は設計しないで書く。
いつも、デバッグしまくり。
たまに上手くいくとうれしい。
そんな人は、グローバル変数がやけに多い人です。
あなたはどうです?
0224デフォルトの名無しさん
NGNGバグデータベースの共有って標準的なスタイルがあるのかな?
0225デフォルトの名無しさん
NGNGWindowsにはSEHと呼ばれる構造化例外処理機構があり、
アクセスバイオレーション、0除算、ブレークポイントなどの例外を
トラップすることができます。
SEHの機能を使って例外ハンドラを登録しておけば、
例外が発生したとき、レジスタの内容が保存されるので、
例外ハンドラの中から、それを参照するということができたはずです。
MSDNにはどこにレジスタの内容が保存されているかは書かれていなかったと思います。
海外のサイトでSEHを解析しているところがあったと思うので、
それを探してみてください。
C++(Visual C++)では例外処理にSEHを使っていたはずなので、
競合しないように注意が必要かと思います。
0226山崎渉
NGNG0227山崎渉
NGNGピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
0228デフォルトの名無しさん
NGNG0229デフォルトの名無しさん
NGNG0230デフォルトの名無しさん
NGNG0231デフォルトの名無しさん
NGNGあげていいですか?
0232デフォルトの名無しさん
NGNG0233デフォルトの名無しさん
NGNG0234山崎 渉
NGNG0235デフォルトの名無しさん
NGNG今まで、
(少しコード書いて→実行→デバッグ)の繰り返しでしたが
最近じゃバグがあんまりでないので、
一気にコード書いて
一気にデバッグやりたいものです。
上の細かいステップじゃ、無駄な実行時間と確認時間が多いのです。
基本的なfprintf(fpやstderr),ASSERT等、
windowsは、上でVCやBCB標準のデバッガを使ってますが
他に何かあればと、
書籍探したのですが
http://www.amazon.co.jp/exec/obidos/ASIN/4756103642/249-4948129-8749118
http://www.amazon.co.jp/exec/obidos/ASIN/4774111252/ref=pd_sim_dp_4/249-4948129-8749118
http://www.amazon.co.jp/exec/obidos/ASIN/4756117457/ref=pd_bxgy_text_1/249-4948129-8749118
http://www.amazon.co.jp/exec/obidos/ASIN/4756102107/ref=pd_bxgy_text_2/249-4948129-8749118
http://www.amazon.co.jp/exec/obidos/ASIN/4756117163/qid=1060413922/sr=1-16/ref=sr_1_0_16/249-4948129-8749118
http://www.amazon.co.jp/exec/obidos/ASIN/4274064166/qid=1060413904/sr=1-1/ref=sr_1_2_1/249-4948129-8749118
http://www.amazon.co.jp/exec/obidos/ASIN/4891001860/ref=pd_sim_dp_5/249-4948129-8749118
やっぱり、あんまりないようです。
とりあえず、
上の2つが気になるので買ってみます。
0236デフォルトの名無しさん
NGNG0237勢いないので、書籍のリンクでネタ振りしてみたの
NGNGもうだめぽ。
>windowsは、上でVCやBCB標準のデバッガを使ってますが
windows上では、VCやBCB標準のデバッガを使ってますが
修正しますた。
0238デフォルトの名無しさん
NGNG2件しかない(デバッグ関係ない)上に
http://page2.auctions.yahoo.co.jp/jp/auction/b39899423
_| ̄|○ こんなのが3万かよ
0240山崎 渉
NGNG│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
0241デフォルトの名無しさん
NGNGデバッガーってどういう風につくってるんですか
オブジェクトコードをオペコード単位でexecみたいなので読み込むとか?
GDBのソース嫁とかなしねv(^_^)v
0242デフォルトの名無しさん
NGNGどうやって作ってるって…
エディターでソース書いて、コンパイラーでコンパイルして、リンカーでリンクする。
↓ここらへんでも読んでみんさい
http://www.ascii.co.jp/books/detail/4-7561/4-7561-1745-7.html
0243デフォルトの名無しさん
NGNGバカジャネーノ
デバッカーの仕組みを聞いてんだよ
誰もコンパイリングの仕方なんかキイテネーヨ
わからんならでシャバン名や
0244241
NGNGたぶん
1,オブジェクトコードを読み込む
2,disアセンブルする
3,ブレークさせたいところにint 3 みたいなのをいれる
4,実行(int 3でとまる)
5,セグメントの変数を見るウマー
ですかね?
0245デフォルトの名無しさん
NGNGチミの質問が余りに要領を得ないからからかっただけよん。
リンクは本物なんで、その本買って読め。
ちなみにint3使うなんてDOS時代のカビの生えた方法。
0246デフォルトの名無しさん
NGNG作者?
やけに宣伝するね
前に立ち読みしたけど内容薄いよ
0247デフォルトの名無しさん
NGNG0248Jonathan B.Rosenberg(偽)
NGNGなら、お前が>>241の電波な質問に答えてやれ。
0249デフォルトの名無しさん
NGNGんじゃないのけ?JavaもVC++もそうヤッテルよね?
0250デフォルトの名無しさん
NGNG0251Jonathan B.Rosenberg(偽)
NGNG全然違う。そのくらいは書いてあるから、私の本を読みなさい。(笑
0252デフォルトの名無しさん
NGNG>>ちなみにint3使うなんてDOS時代のカビの生えた方法。
じゃあどうやるんですか!!!!!!!!
おねがい教えて!!
じゃないとボク逝っちゃうううううううううううううううううううううううう
ああああああああおまんこでるうううううううううううううう
call___main
movl$LC0, (%esp)
call_printf
int$3#←
movl$LC1, (%esp)
ってやったらexception 〜で終了させられました
0253Jonathan B.Rosenberg(偽)
NGNG本代をけちる奴には教えない(笑)
0254Jonathan B.Rosenberg(偽)
NGNG>>243の非礼な態度を詫びるならヒントぐらいはやろう。
0255デフォルトの名無しさん
NGNGIA32のマニュアル下巻にかいてあったのでもういいです氏ね
アクロバットリーダー バージョン 6.0.糞おめぇ
その本「はじめてよむ486」より1000円たかいやん
イッテヨシ
0256Jonathan B.Rosenberg(偽) の本物
NGNG吐いた唾飲み込むなよ。その方法は使えない。
0257デフォルトの名無しさん
NGNGどうしたらいいんだ?
なんか、そういうライブラリがあったような気がするけど、
使い方がわからなかったんだよなぁ・・・。
誰か、教えて。
0258デフォルトの名無しさん
NGNGコンパイルするときアセンブラを出力すればいい
0259デフォルトの名無しさん
NGNGhttp://download.microsoft.com/download/0/6/7/0678184e-905e-4783-9511-d4dca1f492b4/Feb99BugSlayer.exe
を解凍してその中のfigure1.bmpみたいなASSERT作りたいです。
0260デフォルトの名無しさん
NGNG窓はint3でも通ったような気がする。
ちゅーかリリースバイナリに埋め込んどくのやめてくれ。
デバッガで追っかけてると、いきなり止まるんでうざい。
0261デフォルトの名無しさん
NGNGようわかりません
たんにevalしてるだけじゃないんですか標準でついてくるデバッガは
自分で書いたのはこんなかんじ
while(<>){
eval $_;
print $_;#標準出力にevalしたコードをprintする
}
0262デフォルトの名無しさん
NGNGman perldebguts
0263デフォルトの名無しさん
NGNGデバッグ入門〜みたいな本とかないかな。オレ自身はデバッガでプログラム覚えたような
もんで、もう10年以上お世話になっているわけだけれども、最近の新人君なんかはなか
なか覚える機会がないようで。サンプル使ってVCでなんか作る分にはデバッグ機能なし
でもなんとかなっちゃうからねぇ。
プログラムを覚える上でもすげー便利だと思うんだけど、あんまりデバッグ関連の書籍が
ないのはやっぱ出来る人でもデバッガ使わないとかいう人が多いからだろうか。
0264デフォルトの名無しさん
NGNGトレースデバッグしていた。今やるならIDEで追いかける、
条件コンパイル向けにデバッグコード書いてVT端末orファイル
出力でやるんだろうけど。あ、lint使うのもアリだな…構文検査だけだけど。
つか…アセンブラレベルのデバッガ。ソースコードなんざsimtel.netやら
freedos.orgに転がっているのだが…。
0265デフォルトの名無しさん
NGNGlintぐらいは、ざーっとチェックした後、あやしい箇所には
こうじゃないですか? という候補を提示して対話的にささっと
修正できると便利じゃないかと思うんだが。
……俺が知らないだけでありそうな気はする。
0266デフォルトの名無しさん
NGNG0267デフォルトの名無しさん
NGNG0268デフォルトの名無しさん
NGNGおとなりに塀が出来たんだってね
ウォーーーーール!
0269デフォルトの名無しさん
NGNGうぉっ!
0270デフォルトの名無しさん
NGNG柔道着ブルマのスレ作ったのはあんたか?
0271268
NGNG解説キボンヌ
帯ギュは未読
読んだ方がよろしいの?
0272デフォルトの名無しさん
NGNG0274デフォルトの名無しさん
NGNG■ このスレッドは過去ログ倉庫に格納されています