Stephen Kell

Results 275 comments of Stephen Kell

- the motivation for `fake_dlsym()`, i.e. avoiding allocation where possible - the bootstrapping issues around use of malloc both 'early' (before systrapping: our private mallocs should not grow the 'maps'...

- something about the practicalities of working in-process, making explicit the ptrace() contrast, i.e. why it's preferable, but harder, to get reflection happening in-process

- sizeofness analysis generalised, if I get around to that (e.g. the perlbench case: sizeofness in fields / as a conceptually dynamic quantity, but one that happens to be mostly...

- recap the -ffunction-sections need, then cover how we eliminated the custom binutils (maybe borrowing the also-forthcoming blog post about more robust symbol interposition)

- reentrancy redux: we had malloc-malloc reentrancy via dlsym (eliminate by fake_dlsym) but also malloc-mmap-malloc reentrancy via sys_alloc (eliminate by a never-mmaping private malloc).

- also see malloc_hooks_stubs_preload.c for an interesting lock reentrancy issue

Could make a point that all this reentrancy-avoidance is about 'stratifying' (in the sense of Bracha and Ungar) the memory allocation system in the process. We rely on the lower...

The old mallochooks approach of separating out reentrant calls to a sideline malloc requires on `free()` a way to tell apart sideline from mainline chunks, because reentrant alloc contexts needn't...

Of course, generating trampolines at run time compromises debuggability, or more generally meta-completeness, unless we can generate debug info / metadata for our trampolines. See #16. Ideally we would create...

Perhaps an appealing way to do the hooking would be by return-address hooking. But then we need to worry about breaking stack walkers, both from debugging and from our own...