Kodama's home / tips.

プログラミング関連のいろいろ

  1. tips.html#プログラミング,
  2. C Programming FAQs(by Steve Summit)
  3. nm : オブジェクトファイル内のシンボルを表示する. どこで用いられているか調べるのに便利(nm -l).
  4. strings : オブジェクトファイル内の文字列を表示する.
  5. ヘッダ中の文字列を探す: grep -r -I -H -n -E '文字列' /usr/include
  6. ldd : 共有ライブラリへの依存関係を表示.

    検索順:

    1. 環境変数 LD_PRELOAD
    2. 環境変数 LD_LIBRARY_PATH, LD_AOUT_LIBRARY_PATH
    3. キャッシュファイル /etc/ld.so.cache
      (/etc/ld.so.conf でパスを定義し ldconfig でキャッシュを作る.)
    4. /usr/lib
    5. /lib
    6. 環境変数 LD_AOUT_PRELOAD
    (c.f. ld.so(8), ldconfig(8) )
  7. gprof : gcc コンパイラオプションで -pg を用いる.

    $ cc -pg sample.c
    $ gprof -b a.out
    
  8. gdb : gcc コンパイラオプションで -g 又は -ggdb を用いる.

    M-x gdb (emacs gdbモード)

    $ cc -ggdb sample.c
    $ gdb a.out
    
  9. ワイルド ポインタの検出: ワイルド ポインタ, 特に ダングリング リファレンスは, メモリ領域の再利用のタイミングと関連しあって 再現や検証が難しいメモリ破壊(memory smash)バグの原因となる.

Kodama's home / tips.