Thank you for the reply, your recommendation works.

I could however not find ptrace anywhere in druntime. There is only one mention of it in std.process, in a comment.

But I do have some other questions:

(1) Can I declare a ptrace function which calls the original ptrace? (I would like to check the return value and errno for exception throwing and such). I essentially want to shadow the original.

(2) Is it more D-ish to use something like "enum PTRequest { traceMe = 0, ... }" instead of the fully capitalised originals? It doesn't seem to affect the working of things.

(3) wait() is declared as returning a pid_t in the manpage, and is declared as such in core.sys.posix.sys.wait. In std.c.process however, it returns an int. I can't even find a process.h in my Linux install. What am I supposed to use? I know it essentially doesn't matter, as pid_t is aliased as int.

Are there D alternatives to wait() and fork() that I could use with ptrace() instead of the C posix system functions?

(4) Some things are declared only in core.*, not in std.*. Will they be added at some point or is this how it's supposed to be?

Reply via email to