CentOS 64bit版でとりあえず32bitバイナリを動かしてみるの術
http://oshiete.goo.ne.jp/qa/2324332.html よーするに-m32つけてビルドしてみりゃ、32bitバイナリとしては動くんじゃね? というお話。 当然、64bitOSで動かすうまみはない…
http://oshiete.goo.ne.jp/qa/2324332.html よーするに-m32つけてビルドしてみりゃ、32bitバイナリとしては動くんじゃね? というお話。 当然、64bitOSで動かすうまみはない…
64ビット対応してたらはまったのでメモ。 http://0xcc.net/blog/archives/000113.html 64ビット環境ではポインタのサイズが4バイトから8バイトになっているケースが多々。 キャストす…
このsample.cppを とソースでインストールしたg++4.4.3でビルドすると領域破壊を検出しないのに、 CentOS標準のg++4.1.2でビルドすると、セグメンテーション違反を検出する。 バージョン低い方が高性…
まずはインストール(環境はCentOS5.5) サンプルコードsample1.cpp作成 まずは普通にビルドして実行。 領域破壊してるのに、なんもでねぇ・・・・。 次にElectricFenceを有効化してビルド。 おお…
バッファオーバーフローはcoreだけ見てもわからないケースがある。 発生した瞬間に落ちるわけじゃないから、落ちるポイントがまちまちでcoreだけではわからない。 ということで、検出した瞬間にcore吐いてくれるツールがな…
setrlimit()、getrlimit()を使うべし。 OS側で有効化していなくても、該当するプログラムだけcoreファイルを出力させるといった使い方が可能になる。
で終了すればcoreファイルを出力して終了する。 ただし、事前にulimitでコアファイルの出力を有効化しておく必要はある。 アタッチとか面倒だから、とりあえずやばい箇所に到達したらコアで中身をさらしてお亡くなりください…
http://sugarpot.sakura.ne.jp/yuno/?gcc/warning -Weffc++とかあるんだねぇ。知らなかった。 下手なコーディング規約つくるぐらいなら、これ使った方がいいかも。
これで使いまわしOK。
みたいなコードが普通に通った。 scaleの中で、inにconstついてるけど、渡してるのはoutなので、scaleの中でinが実質的に書き換えられている。 見た目上、inが書き換えられていなければそれでいいのかなー。 …
最近のコメント