I am experiencing some random crashes in my program due to corruptions in apparently random places in the heap. I suspect it is because I am allocating fairly large blocks on the stack (globally), and it is extending into the heap. I am using in total about 150KB of stack space. Is it too much? Would someone please give me a bulk figure as to how big stacks are typically in a modern OS (I understand that it varies quite a bit, but is it something like several KBs or several MBs)? My Googling has been fruitless.
Also, how do I get the memory map from a core dump? (assuming it's recorded in there).
I couldn't seem to find anything in gdb documentation.
I want to see the core dump because valgrind reports an invalid read just before the program crashes, but I don't know where that address is in memory (doesn't seem to be in gdb's symbol table).