Wednesday, 9 April 2014

lldb vs gdb

だいぶ lldb に慣れました。なんだが、Linux 側は gdb 。こういう

ちょっと違うが、同じ機能を持つもの

を交互に使うと手がつります。そして、両方の悪い部分だけ目立つ。

To instruct gdb to go ahead and use the init files anyway, invoke gdb like this:
$ gdb -q -iex "set auto-load safe-path /home/user/gdb" ./gdb

とかいうのを発明した人がいるらしい。.gdbinit を読んでくれない。current directory が信用できないって話は、ls のトロイの木馬からあるけど、それでも、これはひどいんじゃないか?

lldb は b で gdb と同じように break point をかけられるが、cond はない。

break modify 1 -c hoge==1

とか書くらしい。modify と set があるらしいが、そんなものを区別して誰がうれしいのか。-c があれば十分ではないのか? その辺りを吸収するコマンドとか定義しても良いけど、

なるべくカスタマイズしないで、そのまま使う

方針です。そうでないと、他人の環境に行った時に死ぬ。

gdb は、p fun(x) とかで、プログラマ中のfunを呼び出せるが、

fun が segv すると、プログラム自体が死ぬ

gdb が死なないだけ許すという気持ちにはあまりなれないです。この辺りは lldb の方が良くできてる。

でも、lldb は fun の返り値の型がわからないらしく、

p (int)fun(x)

とか書かないとだめ。いろいろ疲れるね。

あと、gdb で、wh とかすると、windows height (ヘイトと読んだ奴は高校からやり直し) の意味で、source window が curses ででる。しかも、scroll regieon しないたこな実装で。つまり、

wh すると表示が激遅になる

だれだよ、こんな中途半端な実装したのは…

まぁ、でも、lldb しか使わなくなってきたので、それはそれで幸せです。

No comments: