I have inserted the following asm code in my C++ code. I am using a VC++ compiler.
char c;
curr_stack_return_addr = s.AddrFrame.Offset; //I am doing a stack walk
    __asm{  
            push bx
            mov eax, curr_stack_return_addr  
            mov bl, BYTE PTR [eax - 1]
            mov c,bl
            pop bx
     }
I get the correct value in c for my functions but it crashes when it reaches system functions on stack. I get no compiler errors. What did I do wrong?
Resolved: I forgot to check for end of stack! The return address in last frame is 0. Thanks everyone.
 
     
     
    