该dtruss
手册页说:
-f follow children as they are forked
Run Code Online (Sandbox Code Playgroud)
这听起来就像我想要的那样.但是,请遵循以下行为:
WhiteAndNerdy% uname -a
Darwin WhiteAndNerdy.local 13.4.0 Darwin Kernel Version 13.4.0: Wed Dec 17 19:05:52 PST 2014; root:xnu-2422.115.10~1/RELEASE_X86_64 x86_64
WhiteAndNerdy% sudo dtruss -f -t writev /bin/echo hello world
hello world
PID/THRD SYSCALL(args) = return
37273/0x90e264: writev(0x1, 0x7F8832D00000, 0x4) = 12 0
WhiteAndNerdy% sudo dtruss -f -t writev sh -c '/bin/echo hello world'
PID/THRD SYSCALL(args) = return
WhiteAndNerdy% sudo dtruss -f -t writev bash -c '/bin/echo hello world'
PID/THRD SYSCALL(args) = …
Run Code Online (Sandbox Code Playgroud) 我遇到一种情况,我的 ROM 只能占用某些内存区域,这些区域是不相交的。例如,假设我在链接器脚本中定义了以下内存区域:
MEMORY
{
lowrom (rx) : ORIGIN = 0x5000, LENGTH = 0x2000
midrom (rx) : ORIGIN = 0xD000, LENGTH = 0x1000
hirom (rx) : ORIGIN = 0xF000, LENGTH = 0x1000
}
Run Code Online (Sandbox Code Playgroud)
我想要的是让代码进入lowrom
直到它已满,然后让代码进入midrom
直到它充满,然后让剩余的代码进入hirom
.
GNU ld 文档说链接器不会随机排列部分以适应可用区域。 所以听起来我想做的事情是不可能的。
有某种解决方法吗?我想避免手动选择哪些内容进入哪个内存区域。
(或者是否有另一个开源可重定向链接器支持此功能?)