問題タブ [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 投票する
2 に答える
475 参照

input - MACHxo2 ボードで LED ピンを入力として設定する

オンボード LED に接続されているピンを入力ピンとして設定しようとしています。ドキュメンテーションには、それらはフリー I/O であると記載されていますが、スコープでプローブすると、「高」信号を出力していると表示されます。これは MACHXO2 7000he cpld 上にありますが、答えはどの MACH ボードでも同じであると思います。助けてくれてありがとう。

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

ios - デフォルトのフリーザー (iOS)

Levin は彼の著書Mac OS X and iOS internals: To the Apple's Core に章を持っていました。仮想メモリ管理で使用できるデフォルトのフリーザーに関連しています。で実施されていることが記載されている.osfmk/vm/default_freezer.c

これを書いている時点では、これはまだ不完全でした。これが新しいバージョンの iOS に実装されているかどうかは誰にもわかりませんか? これに関する多くのドキュメントは見つかりませんでした。

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

objective-c - NSWorkspace runningApplications が XPC マッハ サービスを返さない

実行中のアプリケーションとエージェントを返しますが、実行中の XPC mach サービスが表示されません (ただし、実行中であり、アクティビティ モニター プロセスで表示されます)。

アクティビティモニターでPIDを調べても

私は res nil を取得しますが、他のプロセスではこれはうまく機能します

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

xcode - MacOSX で構造化された mh_bundle をビルドするために最低限必要なコマンド ライン引数は何ですか?

Xcode を使用してバンドル ライブラリを構築すると、出力は bundlename.bundle という形式の構造化されたディレクトリになります。内部は、Info.plist を含む Contents ディレクトリ、およびバンドル ファイルを内部に含む MacOS ディレクトリです。

Xcode を必要とせずにこの同じ出力をビルドする方法を知りたいです。.pro ファイルを使用して QtCreator でこの動作を再現するために必要な手順を理解したいと思います。

何か案は?

0 投票する
6 に答える
6709 参照

swift - MACH_TASK_BASIC_INFO での Swift ポインターの問題

ObjC スタックオーバーフローの回答を Swift に変換しようとしていますが、失敗しています。UnsafeMutablePointer<mach_msg_type_number_t>渡す必要があるときに を渡しているように見えますがinout mach_msg_type_number_t、問題を解決できないようです。Swiftポインタのドキュメント(あまりない)について私が理解していることから、これらは交換可能であるはずです..?

詳細は以下をご覧ください。

目的 C は次のとおりです。

そして、これがSwiftで得た限りです(型チェックを簡単にするために多くの行があります)

task_info署名は次のとおりです。

最後の行のエラーは次のとおりです。

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

ios - thread_info が KERN_SUCCESS ではなく MACH_SEND_INVALID_DEST を返す

代わりにnowへの呼び出しがthread_info返されますが、この新しい状況の原因はまだわかりません。MACH_SEND_INVALID_DESTKERN_SUCCESS

この戻り値の理由は何でしょうか。asmach_thread_self()内で呼び出されたときに取得した有効な値を渡します (つまり、最初のパラメーター)。への呼び出しが行われた時点で、操作は完了している可能性がありますが、まだ保持されています。呼び出し時に存在しなくなったスレッドで実行された可能性がありますか?NSOperationthread_act_tthread_info()NSOperationQueueNSOperation

基本的に、スレッドのユーザー時間とシステム時間の観点から操作にかかった時間を調べたいと思います。操作は、その末尾で非同期サービスを呼び出し、thread_info()そのサービスの完了ハンドラーから呼び出されます。

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

grand-central-dispatch - OSX 10.10 でのコード実行の遅延

OSX 10.10 システムでのみ実行しているコードに影響する非常に奇妙な問題に遭遇しました。私のコードを実行している 25 以上の OSX 10.10 システムでこの異常が発生するのを見てきましたが、アップグレード (10.7) する前はまったく同じコードでこの動作は見られませんでした。さらに、この問題は 0 ~ 5% の確率でランダムに発生するため、100% 再現可能ではありません。コードをテストしている間、マシン上で他に重要なことや CPU を消耗させることは何も起きていません。何か他のことが起こっていたとしても、私が経験している遅延が途方もなく長いというまさにその事実は、その結論が疑わしいように思われる. とにかく、これ以上苦労することなく、次の NSLog プリントを見てください。

時間はナノ秒単位です。NSLog タイムスタンプによると、実際には、必要な 0.679 秒ではなく、20.68 秒待機することになりました。それでは、コードを見てみましょう。

mach_wait が何であるか疑問に思っている場合のために説明すると、これはデフォルトで使用可能な高解像度タイマーです。含めるだけ

しかし、 mach_wait_until を次のように置き換えた場合、まったく同じ問題が発生したため、それは問題ではありません。

  • sleep()
  • usleep()
  • [NSThread sleepForTimeInterval:]
  • GCD's dispatch_after(,^{});
  • mach_wait_until()

どのような遅延方法を使用しようNSLogとしても、正しいミリ秒数であることを確認するためのサニティ チェックとして「遅延」値をコンソールに出力してから、上記のいずれかを実行します。約 95% の確率で、仕様に従って動作します。しかし、時折ランダムに、10 秒から 20 秒のような遅延が発生します。何を与える?これは Yosemite カーネルの問題ですか? 繰り返しますが、10.7 で実行されている同じコードでこれを経験したことはありません。そして、コードの実行を遅らせるために上記のすべての方法をテストしました。


アップデート:

コメントのアドバイスに従って、私は先に進みましたsudo dtruss -f -e sudo -u USER MyApp 2> ~/myapps.log. いつものように、ほとんどの mach_wait と sleep は想定どおりに動作しました。そのため、識別しやすくするために、実際の睡眠時間が本来の 3 倍を超える場合に DELAY ISSUE を出力するチェックを追加しました。私のプログラムを実行し、遅延の問題を検索しました。以下にリストされているのは、mach_wait ステートメントの直前と直後のログ出力の間に発生する最も頻繁なシステム コール (dtruss 出力) です。

  • 99613/0xcf33b9: 30250 __semwait_signal(0xD07, 0x0, 0x1) = -1 Err#60
  • 99613/0xcf33b9: 16 workq_kernreturn(0x20, 0x0, 0x1) = 0 0

上記の 2 つの呼び出しが約 250 以上あります。おそらく、__semwait よりも少し作業量が多くなります。通常、semwait のすべてが完了するまでに約 30000 '単位' の時間がかかります。どのように dtruss 時間かわかりません。これらが通話の大部分を占めています。

  • 752/0xcf3320: 2787191 kevent64 (0x3、0x0、0x0) = 1 0
  • 752/0xcf335d: 189948 選択 (0x40、0x7FC080E18220、0x7FC080E13B40、0x0、0x0) = 1 0
  • 752/0xcf335d: 1648403 選択 (0x40、0x7FC080E18220、0x7FC080E13B40、0x0、0x0) = 1 0

これら 3 つのシステム コールは、時間の単位数が最も長くかかりました。そして、それらはそれぞれ、約 20 秒の待機ギャップ中に出力に 1 回表示されました。

上記の =X をどうするかわからない