WebView にあった各種 delegate は Cocoa の流儀で実装されていたのでやりやすかったのだけど WKView ではそれがなくなってしまい、泣いてました。これができるかどうかが SafariStand にとって死活問題。 WebKit2 では delegate ではなく WKPageXxxClient という呼び方になっている。Objective-C クラスではなく関数をまとめた構造体。setter はあるが getter がないため元の値を取っておくのが難しい。WebKit2 側の保存場所をつきとめるか、Safari 側の呼び出しを捉えるか。で、前者が見つかったので対応してみる。 WKView → WKViewData → webPageProxy と辿ると、Client の構造体を捕まえられる。この関数ポインタを自前のものと置き換えればOKのようだった。Objectiv
デバッグやテストを行っていると、プログラムが無限ループに入り込んで返ってこないような状況が発生することがあります。 そのバグが再現の難しいものであれば「gdbを使って起動しとけば良かった。。。」というような気分になる時があります。 しかし、gdbには既に起動しているプログラムの制御を横から奪い取ってデバッグするというありがたい機能があります。 ここでは、既に起動しているプログラムをgdbでいじる方法を説明したいと思います。 実際にデバッグをする方法を説明するというよりは、gdbで動いているプロセスにアタッチする例を説明します。 その後のデバッグに関しては、いつものgdbの使い方をしていただければ大丈夫です。 とりあえずアタッチしてみる 既に起動しているプロセスをgdbを解析するのは非常に簡単です。 単にgdbでプロセスにアタッチするだけです。 gdbでプロセスにアタッチする方法は2つありま
strace システムコールをトレース。カーネルと何を話しているか。 strace -p PID でプロセスにアタッチ。実行中のプロセスをトレース。 straceを使ったデバッグ - SourceForge.JP Magazine : オープンソースの話題満載 Linuxカーネルの作り出す世界 − @IT自分戦略研究所 - ふつうのLinuxプログラミング 青木峰郎 システムコールとライブラリ関数 − @IT自分戦略研究所 システムコール・ライブラリルーチン - UNIX の部屋 ltrace 共有ライブラリの呼び出しをトレース。*.soと何を話しているか。 ltrace -p PID でプロセスにアタッチ。実行中のプロセスをトレース。 ltrace で共有ライブラリの関数呼び出しをトレースする - bkブログ 404 - エラー: 404 - Linux JF ƒ‰ƒCƒuƒ‰ƒŠ‚ÌŠ
Please donate here if you are willing. Class-dump-x is modified from class-dump 3.1.2 (http://www.codethecode.com/projects/class-dump/). Objective-c 2.0 changed its ABI by removal of OBJC segment and introduced some sections in data segment, the class/obj layout is changed too. We have waited someone to add this support to class-dump, but it seems "Better rely on yourself than look to other
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く