SQLiteのお勉強

SQLiteを使うというよりは、つくる方に興味があって、特にトランザクション周りの勉強をしたいなと思ったので、gdbでステップ実行をしてみることにした。

mac osxでは、なぜか、かなり早い段階で

Single stepping until exit from function dyld_stub_pthread_mutex_lock,
which has no line number information.

てのが出て、途中で終了。

仕方ないので、CentOSでやってみると、大分先まで行くようになった。が、同じようなメッセージが出たりする。ので、その部分を飛ばしたところにブレークポイントいれながら、少しずつ、ソース解析。やっぱり、ネットワークが絡まないソースコードは、gdbが動作するから解析がすすみやすいよね。

そういえば、

typedef struct hoge hoge;

とできることを初めて知った。例えば、インターフェース的には、ヘッダだけを用意してコンパイル、その後、プロダクトとして共有ライブラリのバイナリのみとリンカでリンク。というときに、てっきり、ライブラリ側で利用する構造体をユーザに非公開にしたい時には、

typedef void hoge;

みたいなことしか方法がないと思ってた。後者だと、微妙にキャストが入ってちょっとイヤ。勉強になった。

Cでも、まだまだ知らないことが多いんだなーと思う、35才冬。