08/12/26 01:21:46 J6rqLCsP
>>969
はい
971:login:Penguin
09/01/04 15:13:41 +pbzPaSy
デバッガのようなものを作っています。
ブレークポイントでブレークしたときに、デバッギプロセスのバックトレースを
取りたいのですが、これはどうやったら実現できるのでしょうか?
同一プロセスならば、glibのbacktrace関数で取得できることは分かっているのですが、
他プロセスに対応させる方法がわかりません。
972:login:Penguin
09/01/04 15:40:40 kuD2oS5t
>>971
GETREGSでspもらってきて、頑張ってそこからたぐる。
973:login:Penguin
09/01/04 16:05:25 +pbzPaSy
>>972
マジすか。フレームポインターの有無などを考えると、
逆汗が必須になるような気がするのですが、そういうものなのですか。
974:login:Penguin
09/01/04 17:38:36 XjZJ56+3
>>973
フレームポインタ云々より、逆汗無しのデバッガって…
975:login:Penguin
09/01/05 02:47:28 6ZtmY4qM
>>973
そういうのです。
デバッグ情報が使えればそこにスタックフレームの使われ方が書いてあるけど、
ダメなら力業で解析するしかない。
gdbにもそういうコードが入ってる。
976:login:Penguin
09/01/10 09:29:17 8wtLHioo
ユーザ空間で使えるspinlockって無いですか?
977:login:Penguin
09/01/13 13:31:25 UMzYTyeo
自分でCAS(x86ならcmpxchg等)で実装する
978:login:Penguin
09/01/15 00:43:11 DlEX9Fn8
>>977
自由に使えるデータ構造もないし
全部自分で実装かぁ
979:login:Penguin
09/01/15 11:32:08 /IjFWv27
単純なspinlockだけならint値と操作関数だけでよくね?
まあpthread_spin_lock使えば?
980:login:Penguin
09/01/16 02:11:25 ePdupyOX
そういえばpthread_rwlockってmutexより良い感じ?