問題タブ [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.

0 投票する
1 に答える
587 参照

macos - Mac OS X でシステム コールをキャッチする

自作プログラムを使用して、特定の PID によって呼び出されるすべてのシステム コールをキャッチしようとしています (strace、dtruss、gdb のいずれも使用できません...)。
kern_return_t task_set_emulation(task_t target_port, vm_address_t routine_entry_pt, int routine_number)だから私はで宣言された関数を使用しました/usr/include/mach/task.h
syscall をキャッチする小さなプログラムを作成しましたwrite

出力は次のとおりです。

カーネル エラー 46 はKERN_NOT_SUPPORTED、「空のスレッド アクティベーション (スレッドがリンクされていません)」として説明されているマクロに対応し、/usr/include/mach/kern_return.hを呼び出す前に発生していwriteました。
私の質問は次のとおりです。このプロセスで何が間違っていましたか? Kern_not_supported は、無意味なスレッドの問題ではなく、まだ実装されていないことを意味しますか?

0 投票する
1 に答える
379 参照

macos - カーネル関数の mach_msg ヘルパーはどこで実装または生成されますか?

mach カーネル関数との通信は、mach メッセージを使用して行われます。libsystem_kernel.dylib システム ライブラリは、任意の mach メッセージを送受信するための mach_msg(...) ヘルパー関数を実装しますが、task_get_special_port などの特定のカーネル関数を使用するためのメソッドも用意されています (同じ関数名で実行されます)。これは、lib バイナリを逆アセンブルすることで確認できます。

mach_msg のソースはここにありますが、task_get_special_port のような関数固有のヘルパーのソースは、libsyscall ソース ツリーのどこにも表示されないようです。これらの kernelFunction-to-machMsg-adapters はどこで実装または生成されますか?

また、メッセージとカーネル関数呼び出しの間で変換するマッハ メッセージのレシーバーはどこに実装されていますか? (task_get_special_port の実際のカーネル実装は、ここで見つけることができます)

0 投票する
1 に答える
97 参照

excel - 一致検索とは異なる結果となり、直接 cell() をチェックします

以下の問題について、CR で誤ってレビューを依頼しましたが、適切な場所ではないと言われたので、同じ質問を差し上げます。

一人では答えを見つけられません。この非常に単純なコードが 2 つの異なる結果を返すのはなぜですか?!?! 気が狂う...

FirstDay("20161107")範囲内で関数を呼び出しsh("Diary").(columns(1))ます

Var は 12 である必要がありますが、Error2042 を取得すると FirstDay = false になりますが、すぐにウィンドウに文字列が表示される場合

「はい」を取得

誰かが追加内容を教えてもらえますか? ありがとうファブリツィオ

0 投票する
5 に答える
11955 参照

gradle - アーティファクト キャッシュ (/path/to/.gradle/caches/modules-2) をロックするのを待っているタイムアウト。現在、別の Gradle インスタンスによって使用されています

この質問がstackoverflowまたはスーパーユーザー向けかどうかわからない

EDIT:スーパーユーザーにはgradleタグさえないので、これはstackoverflow用だと思います

こんにちは、./mach gradle app:test を実行して、mozillas コードのバグ修正をテストしようとしています。

実行すると、このエラーが発生します

Timeout waiting to lock artifact cache (/home/user/.gradle/caches/modules-2). It is currently in use by another Gradle instance.

実行時に同じエラーが発生するので、コマンド./mach gradle app:checkstyleでこれを取得すると仮定しますgradle

どのデーモンが実行されているかを確認しましservice --status-allたが、gradleという単語が含まれているものは何もありません

私が見た他の質問にはgradle --stop、デーモンが実行されているかどうかを確認するために実行するという回答がありました。そのコマンドを実行するとStopping daemon(s)、ハングアップします

どうすればこれを修正できますか? ターミナルを閉じて再度開いてみました。

0 投票する
1 に答える
281 参照

ios - シミュレーターで実行すると mach_wait_until が遅くなるのはなぜですか?

以下のコードを使用して、mach_wait_until() を使用して、指定された時間 (ナノ秒単位) 待機します。

実際の iPhone デバイスでこれを実行すると、エラーは通常約 1 ミリ秒で、出力は次のようになります。

timeUnits = 30003126 for target nanos 1250130250 when numer = 125 and denom = 3

deadline (aka mach-abs-time + timeUnitsFor()) = 4025277628801.0

(mach-abs-y)-(mach-abs-x) = 30027213

timeUnits = 30003126 for target nanos 1250130250 when numer = 125 and denom = 3

error in time units = 24087

elapsed nanos actual = 1251133875

elapsed nanos ideal = 1250130250

error in nanoseconds = 1003625

ただし、シミュレーターでこれを実行すると、タイマーは一貫して 70 ~ 74 ミリ秒遅れます。出力は次のとおりです。

timeUnits = 1250130250 for target nanos 1250130250 when numer = 1 and denom = 1

deadline (aka mach-abs-time + timeUnitsFor()) = 691695760744956.0

(mach-abs-y)-(mach-abs-x) = 1322288698

timeUnits = 1250130250 for target nanos 1250130250 when numer = 1 and denom = 1

error in time units = 72158448

elapsed nanos actual = 1322288698

elapsed nanos ideal = 1250130250

error in nanoseconds = 72158448

シミュレーターが毎回 70 ~ 74 ミリ秒遅れている理由を知りたいです。ナノ秒単位とマッハ時間単位の間の変換を間違っていますか? ありがとう

0 投票する
1 に答える
171 参照

operating-system - Mach vs Spring オペレーティング システム

オペレーティング システムに関する論文を書かなければなりません。Mach と Spring (マイクロカーネルとオブジェクト指向オペレーティング システムの両方) に関する情報を入手することにしました。2 つのシステムのいくつかの特定の側面を比較した論文にしたいと思います (完全な比較は 6 ~ 7 ページの論文には大きすぎます)。2 つのシステムのどの側面を比較できますか?