タグ

ブックマーク / ymmt.hatenablog.com (2)

  • C++チップス - 誰かの役に立てばいいブログ

    最近 120 年ぶりに C++ を書くことにしたので、もだーんとは何かという禅問答を繰り返した記録を公開。 C++ のススメ なぜ C ではなく C++ を使うのか。その理由の 99.999% は std::string にある。 char* は忘れるんだ! std::string を使うだけで↓のように幸せになれる! void f(const std::string& s) { g("hoge "+s); } C ならこんな感じになるところだ。 void f(const char* s) { char buf[256]; sprintf(buf, "hoge %s", s); g(buf); } ライブラリ STL は機能リッチとはとても言えないので、ちょっとなにかやりたいことがあるとライブラリをまず探すという面倒なことになる。まあ主要なところをいくつかまとめておく。 用途名称URLコメ

    C++チップス - 誰かの役に立てばいいブログ
  • アセンブリ読んだら負けかなと思ってる - 誰かの役に立てばいいブログ

    子供のころからできるだけ手抜きして成果を挙げることだけは長けている山です。 今回は、C/C++ で作ったプログラムが運用中にクラッシュするときのデバッグ方法のお話しです。 開発中のデバッグは gdb などでソース追いながらデバッグできますが、運用中ですと strip していたり最適化していたりしてデバッグが難しくなります。 そもそも、いきなりクラッシュすると情報が残らずに困ってしまいます。そんなときどうするか。 Step1. スタックトレースを出力する こんな関数を用意しましょう。Linux 以外の人はそれなりに実装してください。 #include <execinfo.h> #include <unistd.h> void dump_stack() { void* bt[100]; int n = backtrace(bt, 100); backtrace_symbols_fd(bt,

    アセンブリ読んだら負けかなと思ってる - 誰かの役に立てばいいブログ
  • 1