I have a massive data structure (stored on sd card) that is managed via tcp network messages. I have found an exact set of steps to reproduce the problem, and have used printf("%d\n", LINE) style debugging to figure out where it happens.
The problem is that the mbed locks up with an fopen() call. No further response is given to tcp connections, and no further progress is shown with the printf() lines.
How do I determine which of the following is my problem?
1. corrupted the heap?
2. overrun the stack?
3. found a libc bug?
4. networking vs. sd overruning shared memory buffers?
5. other networking or sd bug?
Any hints on how to tell the difference?
I have some ideas, but also looking for suggestions from the community.
Thanks.
I have a massive data structure (stored on sd card) that is managed via tcp network messages. I have found an exact set of steps to reproduce the problem, and have used printf("%d\n", LINE) style debugging to figure out where it happens.
The problem is that the mbed locks up with an fopen() call. No further response is given to tcp connections, and no further progress is shown with the printf() lines.
How do I determine which of the following is my problem?
1. corrupted the heap? 2. overrun the stack? 3. found a libc bug? 4. networking vs. sd overruning shared memory buffers? 5. other networking or sd bug?
Any hints on how to tell the difference?
I have some ideas, but also looking for suggestions from the community.
Thanks.