This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Problem In returning

Hi
I had many c files in my project. Two of them are main.c and Print.c. I wrote a function delay() in Print.c. I call this function from main.c. After complete execution of delay() code didnot return to main.c. Rather it goes in middle of a function in Print.c.
Any body have the solution of my this problem.
Regards
Farhan Arshad

Parents Reply Children
  • HI
    I call a function in the main.In that function i call delay(). So there is only one function call before delay is called.(so only after ane function call the stack over flow ??????).Another thing is that when is saw the assembly code generated during debuging it shows that correct address is stored in the stack. But when the function returns it return at the correct address but in the incorrect file.
    Regards
    Farhan Arshad

  • But when the function returns it return at the correct address but in the incorrect file.

    That would suggest you're just over-interpreting the debugger's behaviour as you're stepping through highly optimized code. In the case at hand, common code folding would mean that identical code found in several places will only exist once, which of code makes it hard for the debugger to tell which source code line this code actually came from...

  • "so only after ane function call the stack over flow ??????"

    As I said before, even if the stack doesn't overflow, there are plenty of other opportunities to mess it up!

    Invalid and/or uninitialised pointers are excellent for trashing memory - including the stack...!