問題タブ [xnu]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
macos - Kext ドライバーがシンボル OSPrintBacktrace を見つけられない
私のiokitコマンドの1つが呼び出されているときに、次の関数を使用しています。で定義されています
ただし、このシンボルが見つからなかったため、kext の読み込みに失敗したようです。
カーネルバイナリには存在しますが
ここで何が欠けているのか誰か教えてもらえますか?
xcode - Xcode を使用した Kext のデバッグ
私の lldb デバッガーを xcode で実行できれば素晴らしいことです。ユーザー空間のアプリケーションでは問題なく動作しますが、Kext はどうでしょうか。
次のシナリオのいずれかでデバッガーを使用する場合は、ユーザー空間で:
- プロジェクトから新しいプロセスを開始します。
- 特定の名前のプロセスが立ち上がるのを待ちます。
- (IP に従って) 既存のプロセスに接続します。
これらのオプションはすべて、lldb コマンド ラインで開始する必要がないため、xcode 構成チャートから簡単にトリガーできます。
kdp <remote ip>
ただし、カーネル拡張機能のデバッグでは、デバッグ中のマシンを接続するためにトリガーする必要があるため、まったく別の話です。xcode からそうするのはオプションですか?
あるいは、このタスクに対応できる lldb の他の GUI ラッパーについて聞きたいです。
ありがとう
macos - kext のデバッグ時にユーザー空間アドレス address を読み取る
lldb
経由でリモート マシン ドライバー (kext) をデバッグするときに、ユーザー空間アドレスを読み取りたいと思いますkdp
。コードをカーネル空間に移動して簡単に読み取るために使用できるコードを知っているcopyin
ので、予想どおり、ユーザーメモリを直接読み取ろうとすると失敗しました:
copyin
ランタイム デバッグ セッション中にデータをデバッガーから読み取ることができる場所に変換するための代替手段はありますか?
ありがとう
c - mmap ファイルのメモリにファイルをロードする Mach ページャー
ここでの質問に続いて、ファイル mmap を呼び出すときのファイルからメモリへの実際の読み取り/書き込み、およびその逆についての調査を拡張しました。READ および WRITE システムコールとは異なり、MMAP のケースは異なります。以下のバックトレースに示されています。
マッハページャーがここですべての作業を行っているようです (ファイルをメモリに読み込む)。に新しい画像をロードするときにload_machfile
ファイルの読み取り部分を通常使用することは知っていますが、関数ツリーに同義語が見つかりませんでした。vn_rdwr
execve
vnode_pager_map
私の質問は、どのメソッドが実際に mmap sys call でファイルの内容を読み取ったかです。
macos - Mac OS X での mmap システムコールの何が問題になっていますか?
標準ライブラリを使用せずに syscall のみを使用して、Mac OS X で簡単なアプリケーションを作成しようとしています。
main.c
start.s
ご覧のとおり、アプリケーションは基本的に simple を反映していますecho
。exit
引数なしでプログラムを実行すると、プログラムは正常に終了するため、呼び出しが機能すると想定しています。しかし、引数を指定して実行すると、Segmentation fault: 11
. 私が今理解している限り、mmap
が呼び出されると、カーネルは奇妙な値を返します: 9. 9 は適切なアドレスではないと思いますが、ドキュメントによると、渡されたすべての値syscall
が正しいため、私の間違いを理解できません。syscall 番号はここから取得されます。