(1) Why does Func save and restore the RBX register if it never changes it? Compilers tend to do that (frame pointer things).This is only one form of exception handling: it uses unwind information
(2) If 'LibFunc' throws an exception, how does it know where to jump
back to? In normal circumstances if the function returned normally, it
would jump back to the 'jmp .L1' instruction, but instead it has to
jump back to one instruction after that. How does it know what offset
of the return address to jump back to?
(3) I don't know why those last four lines are there. They look like >unreachable code to me.As above, theyrCOll be reached by changing the return address. Your
| Sysop: | Amessyroom |
|---|---|
| Location: | Fayetteville, NC |
| Users: | 65 |
| Nodes: | 6 (0 / 6) |
| Uptime: | 06:20:45 |
| Calls: | 862 |
| Files: | 1,311 |
| D/L today: |
921 files (14,318M bytes) |
| Messages: | 264,699 |