问题标签 [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 打印父进程命令
我想要一个脚本,为每个新运行的进程打印它的启动命令,以及它的父进程。
我正在使用以下探针:
在脚本主体中,命令行字符串是从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 消息,以便使用 mach IPC 发送一个字符串。但是,(ipc/send) invalid msg-header
在尝试发送外线消息时出现错误。
这是消息结构。
我正在设置这样的标题。下面的变量msg
是一个struct ool_msg
。
这就是我设置 Mach 消息的其余部分的方式。
那么如何正确设置 OOL Mach IPC 的消息头呢?
编辑
这是一个重现我的问题的程序。
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 消息中发送的数据呢?
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
以观察系统调用之后,似乎调用setgid(gid_t)
触发了具有 3 个参数的系统调用,
这些参数setgid(0x2, 0x7F9AA3803200, 0x1000)
与 kern_prot.c 中的实现相匹配。问题是,我在哪里可以找到包装源代码,它属于哪个库(可能是 glibc?)
谢谢 ,
ios - 达尔文:线程挂起/唤醒
使用案例:
线程A:请把我从活动线程池中删除,调度员先生。
线程B:调度器先生,请将线程A添加到活动线程池中,如果他还没有的话
这是一个相当具体且包含良好的问题。当然,我可以使用 pthread 的条件变量来做到这一点——但它们解决了一个更复杂的问题。
想知道是否有更直接的路线可用。例如,sigwait
linux - 用于查看线程何时处于活动状态的系统 API
是否有适用于 Linux 和 Darwin 的低级系统 API,以获取调度程序的“快照”,查看哪些线程在给定时间运行(活动)、抢占、等待资源或类似情况?
例如,Ubuntu“系统监视器”有一个进程的“等待通道”列,有没有办法为进程内的所有线程获得类似的输出?
我有一个多线程排队系统,其中作业被分派给线程,并有一个可视时间线显示作业何时开始/完成。为了优化它,我想添加一些视觉指示,说明作业何时实际运行(例如在一个处理器内核上),以及它们何时被抢占。