コンパイルすると .dSYM って出来るよね
http://firewood.txt-nifty.com/bbc/2005/12/introduction_to.html に情報が。ありがとうございます。
ちょっとコピペさせて頂く。
DWARF(Debugging With Attibute Record Format)はコンパイラ言語のソースコードデバッグのための仕様である。たぶんバイナリファイルの仕様のELF(Executable and Linking Format)にひっかけて命名されたものだろう。
プログラムをデバッグオプションをつけてコンパイルすると、デバッグ情報つきのバイナリファイルができあがる。バイナリファイルは、.textや. dataといったプログラムを動作させるのに必要なセクションと、.debugなどのデバッグ情報を格納したセクションからなる。.debugはバイナリ化したデバッグ情報であり、.debugの生成方法、すなわち、デバッグ情報をどういう形式でバイナリ化するかを規定するのがDWARFである。
GDBなどのデバッガは、バイナリファイルからバイナリ化されたデバッグ情報を読み込んで、デバッグ情報を復元し、ソースコードデバッグを行えるようにする。
なるほどー。
この前、OpenCV のサンプルプログラムをコンパイルしたら、もさもさ .dSYM が出来て、なんじゃこりゃと思ったのが少しスッキリした。
コンパイル用のシェルスクリプトを見ると
#!/bin/sh if [[ $# > 0 ]] ; then base=`basename $1 .c` echo "compiling $base" gcc -ggdb `pkg-config opencv --cflags --libs` $base.c -o $base else for i in *.c; do echo "compiling $i" gcc -ggdb `pkg-config --cflags opencv` -o `basename $i .c` $i `pkg-config --libs opencv done for i in *.cpp; do echo "compiling $i" g++ -ggdb `pkg-config --cflags opencv` -o `basename $i .cpp` $i `pkg-config --libs open done fi
となっているので、いかにもな gcc -ggdb を外して
gcc `pkg-config --cflags opencv` -o `basename $i .c` $i `pkg-config --libs opencv`;
とすると、ふつーのバイナリが出来た。