I recently read this article http://codearcana.com/posts/2012/05/06/securing-and-exploiting-go-binaries.html which claims in Go that the heap is executable. This raises a few different questions for me about the interaction between the runtime and the operating system.
In java:My question is with this above example we know that the lock WILL always get unlocked because finally always executes, but what is the guarantee with C++?
For example . When a function, that has a local integer variable x, ends, what does C++ do to the value stored at memory location corresponding to x? Does it insert a random value?
From Stroustrup's Foundations of C++, he offers a pure object-oriented language (on Page 4).He assumes a in the pure object-oriented language is allocated on the heap, and a's memory layout looks like:
I'm trying to understand the relationship between C language system calls API, syscall assembler instruction and the exception mechanism (interrupts) used to switch contexts between processes. There's a lot to study out on my own, so please bear with me.