I was observing the memory layout for different OpenCV applications (edge.cpp, for example) by looking at /proc/$PID/maps
. As expected, there is a heap, and a stack as well as other expected segments. However, when I'm instrumenting these applications with my DebugTrace Pintool, the maps
file doesn't show a heap. I was wondering how Pin changes the memory layout of applications and how could it possibly handle a large heap?
Pin user guide talks about how Pin and Pintools manage the memory they need. However, it doesn't explain how Pin changes the user program memory layout. Also, in this answer, Mackie points out that Pin changes memory layout but I was hoping for a more detailed answer.
I'm using Pin 3.7 under Fedora 24 with kernel 4.9 on an x86_64 machine.