问题标签 [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.
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
。
我写了一个小程序来捕捉系统调用write
:
输出是:
内核错误 46 对应于KERN_NOT_SUPPORTED
描述为“空线程激活(没有线程链接到它)”的宏/usr/include/mach/kern_return.h
,甚至在我调用write
.
我的问题是:我在这个过程中做错了什么?Kern_not_supported 确实意味着它还没有实现,而不是一个无意义的线程问题?
macos - 内核函数的 mach_msg 助手在哪里实现或生成?
与 mach 内核函数的通信使用 mach 消息进行。libsystem_kernel.dylib 系统库实现了一个 mach_msg(...) 辅助函数来发送/接收任意 mach 消息,但它也包含使用某些内核函数的准备方法,例如 task_get_special_port (使用相同的函数名称)。这可以通过反汇编 lib 二进制文件来看到。
mach_msg 源代码可以在这里找到,但是像 task_get_special_port 这样的函数特定助手的源代码似乎没有出现在 libsyscall 源代码树的任何地方。那些 kernelFunction-to-machMsg-adapter 在哪里实现或生成?
另外,在消息和内核函数调用之间进行转换的 mach 消息的接收器在哪里实现?(task_get_special_port 的实际内核实现可以在这里找到)
excel - 匹配搜索的不同结果并直接检查 cell()
对于以下问题,我错误地要求在 CR 中进行审查,但他们告诉我不是正确的地方,所以我向您提出了同样的问题。
我一个人找不到答案。这个非常简单的代码返回 2 个不同的结果,为什么?!?!我会疯的...
FirstDay("20161107")
我用我的范围调用我的函数sh("Diary").(columns(1))
是
Var 应该是 12 但我检索 Error2042 然后 FirstDay = false,但如果我在即时窗口上看到字符串
检索“是”
有人可以让我知道什么是附加的吗?感谢法布里齐奥
gradle - 等待锁定工件缓存(/path/to/.gradle/caches/modules-2)的超时。它当前正被另一个 Gradle 实例使用
不确定这个问题是针对stackoverflow还是超级用户
编辑:超级用户甚至没有 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
所以我假设我会用 andgradle
命令得到这个
我已经检查过哪些守护进程在运行,service --status-all
但是里面没有 gradle 这个词
我看过的其他问题的答案是运行gradle --stop
以检查守护程序是否正在运行。当我运行该命令时,它会说Stopping daemon(s)
并挂起
我怎样才能解决这个问题?我试过关闭并重新打开终端。
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 毫秒。我在纳秒和马赫时间单位之间的转换是否错误?谢谢
operating-system - Mach 与 Spring 操作系统
我必须写一篇关于操作系统主题的论文。我决定获取一些关于 Mach 和 Spring(同时是微内核和面向对象的操作系统)的信息。我希望这篇论文能够对这两个系统的某些特定方面进行比较(完整的比较对于 6-7 页的论文来说太大了)。我可以比较两个系统的哪些方面?
macos - 格式错误的 mach-o 图像 __TEXT 段映射文件的开头,但可写
我在正在编写的 VST 主机插件中加载 VST 插件时遇到问题。我已经成功加载了我发现的大多数插件,但似乎有一个给我带来了奇怪的问题。我可以在 adobe 试听和使用 JUCE 框架的主机中加载它。
调用 dlopen 时出现此错误,我似乎在互联网上找不到类似的东西:
dlopen(/Library/Audio/Plug-Ins/VST/Plugin Alliance/SPL De-Verb.vst/Contents/MacOS/SPL De-Verb, 9):找不到合适的图像。确实找到了:Library/Audio/Plug-Ins/VST/Plugin Alliance/SPL De-Verb.vst/Contents/MacOS/SPL De-Verb: malformed mach-o image: __TEXT segment maps start of file but is writable
在其上运行文件显示它是具有两种架构的通用二进制文件:
$ 文件 ./SPL\ 去动词
这是插件的网站: https ://www.plugin-alliance.com/en/products/spl_de-verb.html
这是我用来加载它的代码:
macos - macOS Mach-O dylib LC_ID_DYLIB 名称或 install_name 的意义是什么?
我正在开发一个在 Xcode 之外开发的 macOS dylib 框架,并且我正在尝试了解该install_name
选项的重要性。
例如,我可以使用这样的参数将该LC_ID_DYLIB
部分设置name
为更类似于您在应用程序包的框架中找到的内容install_name
。
然后otool -l
我可以看到我的名字已在二进制文件中设置,与默认值不同(默认情况下与-o
选项匹配)。
所以我了解如何设置它,但我不明白该值究竟用于知道它应该是什么,我也找不到任何关于它的文档。
我可以看到为什么这些LC_LOAD_DYLIB
部分需要关于在哪里找到二进制文件的信息(因为这些部分引用了其他二进制文件),但是为什么 dylib 需要关于在哪里找到自己的信息?链接到它的二进制文件应该是找到它的那个?
那么 macOS dylib 究竟是做什么的LC_ID_DYLIB
install_name
呢?
c - Mac内核编程通用内核扩展prinf()不起作用
我遵循了使用 Xcode教程创建通用内核扩展。
MyKext.c:
我还禁用了 csrutil,它允许我加载自己的 kext。
当我将自己的 kext 加载到内核中时
printf() 的结果没有写入 /var/log/system.log。
我还设置了 boot-args
谁能帮我吗?