Debug
主に、VC6+STLPortでC++ sort library saltを使うときに気になったので対処法のまとめ http://bit.ly/cAPGMy
std::stringのclear()が宣言されていない、ブロックが大きすぎるという謎のコンパイルエラーについて・・・VC6の標準STLを使っているとVC6が駄々をこねるという構造。STLPortのパスを間違って設定した事が原因。
VCでReleaseの時にのみ Heap corruption detected at 009D1090 HEAP[foo.exe]: Invalid Address specified to RtlFreeHeap(のエラーがデバッガに表示されたら STLPortを使用している場合は #define _STLP_NO_OWN_IOSTREAMS を宣言すればよい。 昔、よく嵌っ…
Powered by dKingyo 逆引きハンドブック | Access | CSS | Java | Eclipse 最近HDDが安くなってきたのでついに買ってしまった。 HDDには10000円の法則というのがあり、この値段のHDDは1GB単価が安いのだ。 早速フォーマットし、古いHDDから新しいHDDにファイ…
Powered by dKingyo Java | C言語 | C++ | C言語 | 逆引きハンドブック今日のRubyで嵌った事。 Rubyの String#gsub! はsに行った処理によってオブジェクト内の文字列の置換してくれるのだと思っていた。 だが、違っていたのだ。 str = "abc def" i = 0 str.g…
1秒あたり何KB/secの読み込みができるかと言う部分でファイルサイズの指定を一部間違っているパラメータを渡している部分がありこれも影響していてバグが取れなかったというのもあります。 見た目バグではないのですが、処理結果がどうも腑に落ちないのでか…
処理結果を表示するテキストボックスを上と下で間違えていたという極めて人的な陥りやすいバグでした・・・。 なんか、orzって感じになります。 とりあえず、処理にばらつきはあれどFILE DEVICE BENCHMARKに極めて近い状態になってきました。
for(i=0;i
error C2601: 'filesize' : ローカル関数の定義が正しくありません。コードは間違っていない・・・。何故だ!? ... ...... ......... int filesize;ではなく・・・int filesize: と定義されていた。コロンじゃなくてセミコロンにしなくちゃ!!! 久々にこういうミスをや…
sizeは関数の引数です。 mov ecx,sizeだと error C2400: 'オペランド 2' の 'newline' はインライン アセンブラの構文エラーになります。 になり 関数の引数をsizにして mov ecx,sizとすると、 上手くコンパイルできます。 こんなのにかなり時間かけちゃいました。もう訳が…
実は、CamelliaのCBC CFB OFB版を作っていたのだが、どうがんばってもCFBとOFBを上手く複合化できない。 何故だ!と思った所、 Camelliaの暗号はConvert形式ではなかったのだ。 私がここで勝手にConvert形式と呼んでいるが、Encrypt Decrypt処理が同じという…
OFBエンコードデコードのアルゴリズムをついさっきまで組んでいたのだ。 OFBはエンコードおよびデコードのプログラムは同じはずである。 しかしながらデコードすると全く違う値が返ってくるのだ。 これはオカシイ。 OFBの実装の仕方が悪かったのかと考え並々…
送ってきてくれたメールをスパムと一緒に削除されてしまったようなのでもう一回送っていただけないでしょうか?メーラーのトラブルでメールアドレスもちょっと紛失してしまったもので・・・すみません。 確か、BML_LoadXMLFileで18回目の所でエラーすると言った…
前回の記事:(http://d.hatena.ne.jp/studiokingyo/20060307) ってか、最近気づいたのだが・・・私が移植したAVL木のlibdsって再帰構造を使っているんだよね・・・orz 自分で書き直しかなぁ・・・。libdsって自分にとっては結構見難い部類のソースにはいるんで・・・ …
各caseの最後にbreak文を記述しないと,それ以降の処理が無条件で 実行されてしまうので注意が必要です. これはフォールスルー(fall through)と言い、よくバグの温床として 問題視されてきました. そのためC#など,breakを記述しないと コンパイルエラーを…
そう言う実装もあるらしい。気を付けなければ・・・ 関連:(http://d.hatena.ne.jp/studiokingyo/20050901#p1)
http://d.hatena.ne.jp/xor/20060204/p3 より、 どこでエラーが発生しているのか頭の中で解きなさいとの事。 なるなる。 どれどれ、フローチャートは以下のような感じだ。 見た感じ、割り算を使っているので多分0除算、よって除算部を念頭に頭に状態遷移を…
boost::spiritでini parserを作っていたら fatal error C1076: コンパイラの制限 : ヒープの領域を使い果たしました; 上限を設定するために /Zm オプションを使用してください。 yaneSDK2ndか3rdとかでよく出ていた。このエラー。 ここ数年、比較的そういう風にライブ…
http://www.freeml.com/ctrl/html/MessageForm/vcpp@freeml.com/1203/
前回の続き:(http://d.hatena.ne.jp/studiokingyo/20051225) やったぞ!ついに完成した!MMXを使うための良い練習になった。 もっとがんばれば細かいところを最適化できるかもしれない。 この場を借りましてこのソースコードの製作に関することでアドバイ…
#define MD5_VC_MMX_ROTATE(d,w,s)\ _asm movq d,w\ _asm psllq d,s\ _asm psrlq w,32-s\ _asm por d,w#define MD5_VC_MMX_ROTATE2(d,a,s)\ _asm movq d,a\ _asm pslld d,s\ _asm psrld a,32-s\ _asm por d,aどちらとも同じ処理結果なのだが・・・ウーム。自爆!…
__asm{ #define COPY(a,s) \ mov a,s mov eax,s\ mov ebx,s COPY(ecx,10) }このように\が抜けているとバグルので注意!(上記の例は厳密には当てはまらないかもしれないが・・・)
前回の続き:(http://d.hatena.ne.jp/studiokingyo/20051224) はい!早速バグ発見。アホですね。ワタシ・・・あはははは・・・。。。 おrz!!!! #define MD5_VC_MMX_F1(d,x,y,z)\ _asm pxor y,z\ _asm pand x,y\ _asm pxor z,x\ _asm movq d,z 早速アップデ…
http://www.nk.rim.or.jp/~jun/lxasm/asm02.html より。 例えば次の例ではラベルの宣言が異なりますが, foo equ 1 bar dw 2 mov ax, foo mov ax, bar この場合は ax には定数値が代入され, move ax, [foo] move ax, [bar] この例では,ax には メモリの内…
cppというコマンドラインツールを使うらしい。 via http://www.wakhok.ac.jp/~kanayama/C/03/node114.htmlが、その他にはなにかいいツールはないのかなぁ〜。 なんかcpp使うと#の付いたいらない行が出力されるしなぁ〜。 う〜ん。 解決: mcpp(http://www.m1…
src\local_impl.cppのmake_classic_locale()でtime_get等をnewし _Init_timeinfo()を呼ぶのだが、copy_cstringの時にstd::stringで確保されたバッファ領域がデストラクタが呼ばれず?、メモリリークをおこしてしまう。(VC6で確認) とりあえず、ソースに手…
デバッガでのシンボル名に余計な文が入っていませんか? 例えば、初期化していないクラスのポインタのメンバ関数を参照したりとかですよ。 はまっちゃいましたよ。ん〜時間無駄にしましたよ!!むきぃ!!! CClass e;//ここでbreak point;そして変数をシンボル…
switchを書くときは必ず先にcaseとbreakを書くようにするとbreak抜けが少なくなるみたいだ・・・。
共通インターフェイス ストリーム ライブラリ*1をデバッグしていたらbreak抜けを多数確認。 もう、嫌!やめて〜(某弁護士風) *1:dkcStream.cの実装(あまりスマートとは言えないが気に入っているので自分で勝手に使用している 「我が子はかわいいのだ!!」…
printfとかにある可変引数だが、C++のクラスといっしょに使うとクラスの仕様によってはなんかバグってしまう。むぅ。 誤: /// なんかC++のクラス + 可変引数って相性悪いみたい・・・ inline void dODS_base(parm_string base,...){詳しく調べる気にはなら…