問題タブ [mach]
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.
ios - _BSMachError: (os/kern) 無効な機能 (20)/名前 (15) エラー - *IQKeyboardManager*
_BSMachError: (os/kern) 無効な機能 (20)
_BSMachError: (os/kern) 無効な名前 (15)
このエラーは、すべてのビューで発生します。テキスト ビューでキーボードから入力すると、テキスト フィールドでは発生しません。
削除するIQKeyboardManager
と、正常に動作します。おそらく何かに関連していIQKeyboardManager
ます。
macos - dtrace print 親プロセス コマンド
新しい実行中のプロセスごとに、開始コマンドとその親プロセスを出力するスクリプトが必要です。
私は次のプローブを使用しています:
スクリプト本体内から、コマンド ライン文字列が から作成されcurproc->p_dtrace_argv
ます。
親 pid (ppid) も利用できますが、これまでのところ、親プロセス名 (できれば親 argv[0] から取得できるフルネーム) を抽出する方法を理解できていません。
macos - プロセス コマンド ラインを抽出するときの DTrace 無効アドレス エラー
新しいプロセスのコマンドラインとそれに対応する親名を出力する dtrace スクリプトが必要です。つまり、bash から /Users/bla/myexec arg1 arg2 arg3 を実行すると、次のような結果が得られます。
parent is bash process is --> /Users/bla/myexec arg1 arg2 arg3
ただし、スクリプトの実行中に、一部のプローブでは初期化されていない変数や破損した変数があるようです。
次の bash コマンドの出力例を次に示しますsudo dtrace -C -s ./procargs.d
。プローブproc:mach_kernel:__mac_execve:exec-success
の値が初期化されていないことがわかりますcurproc->p_dtrace_argv
。
おそらく、私のスクリプトの何が問題なのか教えていただけますか?
c - コンプレックス マッチ メッセージ ヘッダーの設定
mach IPC を使用して行外に文字列を送信するための mach メッセージをセットアップしようとしています。ただし、(ipc/send) invalid msg-header
行外メッセージを送信しようとするとエラーが発生します。
これがメッセージ構造です。
このようにヘッダーを設定しています。以下の変数msg
はstruct ool_msg
.
これが、Mach メッセージの残りの部分をセットアップする方法です。
では、OOL Mach IPC のメッセージ ヘッダーを正しく設定するにはどうすればよいでしょうか。
編集
これが私の問題を再現するプログラムです。
c - マッハメッセージを使用してアウトオブラインメモリを受信する方法
複雑なマッハ メッセージで送信された文字列を受信しようとしています。具体的には、out of line memory(OOL) メッセージです。残念ながら、インターネットや印刷物には、OOL マッハ メッセージのドキュメントや例はほとんどありません。たとえば、http: //www.amazon.com/Mac-OS-Internals-Systems-Approach/dp/0321278542 には、1091 ページに OOL メッセージを送信する部分的な例がありますが、OOL メッセージを受信する例はありません。
mach メッセージを受信してもエラーは発生しません。つまり、mach_msg()
success が返されますが、送信される文字列NULL
は"123456789"
. では、OOL マッハ メッセージで送信されたデータを正しく受信するにはどうすればよいでしょうか。
c - OSX setgid システム コール - どの API が正しいか
システム コール setgid を使用して、現在のプロセスのグループ ID を変更したいと考えています。この関数を検索しようとすると、私が見つけた唯一の実装は kern_prot.c にあります:
/usr/unistd.h によると、API がまったく異なることに注意してください ( int setgid(gid_t);
)。
- のラッパー
int setgid(gid_t);
ですint setgid(proc_t p, struct setgid_args *uap, __unused int32_t *retval)
- の実装はどこにあり
int setgid(gid_t);
ますか? - kern_prot.c から setgid の実装を呼び出すオプションはありますか?
アップデート:
dtruss
システム コールを監視するためにプログラムを監視した後、kern_prot.c の実装と一致するsetgid(gid_t)
3 つのパラメータでシステム コールを
呼び出すようです。setgid(0x2, 0x7F9AA3803200, 0x1000)
問題は、ラッパーのソース コードをどこで見つけることができるか、それがどのライブラリに属しているか (おそらく glibc?) です。
ありがとう 、
linux - スレッドがいつアクティブになるかを確認するためのシステム API
Linux および Darwin 用の低レベル システム API はありますか?
たとえば、Ubuntu の「システム モニター」には、プロセスの「待機チャネル」列があります。プロセス内のすべてのスレッドに対して同様の出力を取得する方法はありますか?
ジョブがスレッドにディスパッチされるマルチスレッド キューイング システムがあり、ジョブがいつ開始/終了したかを示す視覚的なタイムラインがあります。それを最適化するために、ジョブが実際に実行されているとき (たとえば、1 つのプロセッサ コア上) と、ジョブがプリエンプトされているときの視覚的な表示を追加したいと考えています。