问题标签 [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 投票
0 回答
745 浏览

ios - _BSMachError: (os/kern) 无效能力(20)/名称(15) 错误 - *IQKeyboardManager*

_BSMachError: (os/kern) 无效能力 (20)

_BSMachError: (os/kern) 无效名称 (15)

在我的所有视图中都会生成此错误,当我在文本视图中通过键盘键入时,它不会发生在文本字段上。

我删除IQKeyboardManager,然后它工作正常。可能与IQKeyboardManager.

0 投票
1 回答
508 浏览

macos - dtrace 打印父进程命令

我想要一个脚本,为每个新运行的进程打印它的启动命令,以及它的父进程。

我正在使用以下探针:

在脚本主体中,命令行字符串是从curproc->p_dtrace_argv.

父 pid (ppid) 也是可用的,但到目前为止我还没有弄清楚如何提取父进程名称(最好是可以从父 argv[0] 中获取的全名)。

0 投票
0 回答
300 浏览

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

也许你可以告诉我我的脚本有什么问题?

0 投票
1 回答
895 浏览

c - 设置复杂的马赫消息头

我正在尝试设置一个 mach 消息,以便使用 mach IPC 发送一个字符串。但是,(ipc/send) invalid msg-header在尝试发送外线消息时出现错误。

这是消息结构。

我正在设置这样的标题。下面的变量msg是一个struct ool_msg

这就是我设置 Mach 消息的其余部分的方式。

那么如何正确设置 OOL Mach IPC 的消息头呢?

编辑

这是一个重现我的问题的程序。

0 投票
0 回答
1529 浏览

c - 如何使用 mach 消息接收行外内存

我正在尝试接收与复杂的马赫消息一起发送的字符串。更具体地说,是线外内存(OOL)消息。不幸的是,互联网上或印刷品上几乎没有 OOL mach 消息的文档或示例。例如http://www.amazon.com/Mac-OS-Internals-Systems-Approach/dp/0321278542在第 1091 页上有一个发送 OOL 消息的部分示例,但没有接收 OOL 消息的示例。

收到 mach 消息时,我没有收到错误,即mach_msg()返回成功,但发送的字符串是NULL而不是"123456789". 那么如何正确接收在 OOL mach 消息中发送的数据呢?

0 投票
1 回答
235 浏览

c - OSX setgid 系统调用 - 哪个 API 是正确的

我想使用系统调用 setgid 来更改当前进程的组 ID。试图查找这个函数,我发现的唯一实现是在 kern_prot.c :

请注意,根据 /usr/unistd.h,API 完全不同(int setgid(gid_t);)。

  1. int setgid(gid_t);是一个包装器int setgid(proc_t p, struct setgid_args *uap, __unused int32_t *retval)
  2. 我在哪里可以找到 的实施int setgid(gid_t);
  3. 是否有任何选项可以从 kern_prot.c 调用 setgid 的实现?

更新:

在监视我的程序dtruss以观察系统调用之后,似乎调用setgid(gid_t)触发了具有 3 个参数的系统调用, 这些参数setgid(0x2, 0x7F9AA3803200, 0x1000)与 kern_prot.c 中的实现相匹配。问题是,我在哪里可以找到包装源代码,它属于哪个库(可能是 glibc?)

谢谢 ,

0 投票
1 回答
185 浏览

ios - 达尔文:线程挂起/唤醒

使用案例:

线程A:请把我从活动线程池中删除,调度员先生。

线程B:调度器先生,请将线程A添加到活动线程池中,如果他还没有的话

这是一个相当具体且包含良好的问题。当然,我可以使用 pthread 的条件变量来做到这一点——但它们解决了一个更复杂的问题。

想知道是否有更直接的路线可用。例如,sigwait

0 投票
1 回答
4082 浏览

macos - 可执行文件中公共字符串的含义?

似乎有一些看起来相似的长字母数字字符串,通常出现在 Mach-O 64 位可执行文件和 ELF 64 位 LSB 可执行文件中,以及其他非字母数字符号:

有 181 个结果,并且

有 9 个结果。

在此处输入图像描述

这些字符串是什么?

0 投票
1 回答
2247 浏览

ios - Xcode 8 beta 5:操作无法完成

我正在开发Xcode 8 beta 5。在 iPhone SE 模拟器上运行应用程序时出现错误The operation couldn't be completed. (Mach error - 308 - (pic/mig) server died).

截图 1

我尝试了干净的构建,重新启动 Xcode 但没有奏效。

有什么修复吗?

0 投票
1 回答
72 浏览

linux - 用于查看线程何时处于活动状态的系统 API

是否有适用于 Linux 和 Darwin 的低级系统 API,以获取调度程序的“快照”,查看哪些线程在给定时间运行(活动)、抢占、等待资源或类似情况?

例如,Ubuntu“系统监视器”有一个进程的“等待通道”列,有没有办法为进程内的所有线程获得类似的输出?

我有一个多线程排队系统,其中作业被分派给线程,并有一个可视时间线显示作业何时开始/完成。为了优化它,我想添加一些视觉指示,说明作业何时实际运行(例如在一个处理器内核上),以及它们何时被抢占。