I am invoking the command go symbol.exit(myfunc). Sometimes the program control reaches at the end of function but sometimes it ends with beginning of the function.
Do we have any other method to reach at the end of function? Please suggest me why this behavior I observed in my environment.
I suggest to use the command Go.Return.
Using Go.Return with the latest version of TRACE32 will stop the CPU at the current function's epilog. Using Go.Return from there again, stops the CPU at the function's exit point.
However Go sYmbol.EXIT(myfunc)
should also stop the CPU at the exit point of the function "myfunc" (unless no other breakpoint is stopping the CPU earlier).
If it fails I could imaging that this could be caused by compiler optimizations. (E.g. if the function was inlined the debugger might not find an exit point). So try to set your compilers optimization level to a low value.
Otherwise maybe you should contact the Lauterbach support, telling them your issue and which PowerPC you are using exactly, which compiler (and its version) and which build number of TRACE32 you are using.