@@ -469,13 +469,13 @@ <h1>Source code for libdebug.architectures.amd64.amd64_stack_unwinder</h1><div c
469469 < span class ="k "> while</ span > < span class ="n "> current_rbp</ span > < span class ="p "> :</ span >
470470 < span class ="k "> try</ span > < span class ="p "> :</ span >
471471 < span class ="c1 "> # Read the return address</ span >
472- < span class ="n "> return_address</ span > < span class ="o "> =</ span > < span class ="nb "> int</ span > < span class ="o "> .</ span > < span class ="n "> from_bytes</ span > < span class ="p "> (</ span > < span class ="n "> target</ span > < span class ="o "> .</ span > < span class ="n "> memory</ span > < span class ="p "> [</ span > < span class ="n "> current_rbp</ span > < span class ="o "> +</ span > < span class ="mi "> 8</ span > < span class ="p "> ,</ span > < span class ="mi "> 8</ span > < span class ="p "> ],</ span > < span class ="n "> byteorder</ span > < span class ="o "> =</ span > < span class ="s2 "> "little"</ span > < span class ="p "> )</ span >
472+ < span class ="n "> return_address</ span > < span class ="o "> =</ span > < span class ="nb "> int</ span > < span class ="o "> .</ span > < span class ="n "> from_bytes</ span > < span class ="p "> (</ span > < span class ="n "> target</ span > < span class ="o "> .</ span > < span class ="n "> memory</ span > < span class ="p "> [</ span > < span class ="n "> current_rbp</ span > < span class ="o "> +</ span > < span class ="mi "> 8</ span > < span class ="p "> ,</ span > < span class ="mi "> 8</ span > < span class ="p "> , </ span > < span class =" s2 " > "absolute" </ span > < span class =" p " > ],</ span > < span class ="n "> byteorder</ span > < span class ="o "> =</ span > < span class ="s2 "> "little"</ span > < span class ="p "> )</ span >
473473
474474 < span class ="k "> if</ span > < span class ="ow "> not</ span > < span class ="nb "> any</ span > < span class ="p "> (</ span > < span class ="n "> vmap</ span > < span class ="o "> .</ span > < span class ="n "> start</ span > < span class ="o "> <=</ span > < span class ="n "> return_address</ span > < span class ="o "> <</ span > < span class ="n "> vmap</ span > < span class ="o "> .</ span > < span class ="n "> end</ span > < span class ="k "> for</ span > < span class ="n "> vmap</ span > < span class ="ow "> in</ span > < span class ="n "> vmaps</ span > < span class ="p "> ):</ span >
475475 < span class ="k "> break</ span >
476476
477477 < span class ="c1 "> # Read the previous rbp and set it as the current one</ span >
478- < span class ="n "> current_rbp</ span > < span class ="o "> =</ span > < span class ="nb "> int</ span > < span class ="o "> .</ span > < span class ="n "> from_bytes</ span > < span class ="p "> (</ span > < span class ="n "> target</ span > < span class ="o "> .</ span > < span class ="n "> memory</ span > < span class ="p "> [</ span > < span class ="n "> current_rbp</ span > < span class ="p "> ,</ span > < span class ="mi "> 8</ span > < span class ="p "> ],</ span > < span class ="n "> byteorder</ span > < span class ="o "> =</ span > < span class ="s2 "> "little"</ span > < span class ="p "> )</ span >
478+ < span class ="n "> current_rbp</ span > < span class ="o "> =</ span > < span class ="nb "> int</ span > < span class ="o "> .</ span > < span class ="n "> from_bytes</ span > < span class ="p "> (</ span > < span class ="n "> target</ span > < span class ="o "> .</ span > < span class ="n "> memory</ span > < span class ="p "> [</ span > < span class ="n "> current_rbp</ span > < span class ="p "> ,</ span > < span class ="mi "> 8</ span > < span class ="p "> , </ span > < span class =" s2 " > "absolute" </ span > < span class =" p " > ],</ span > < span class ="n "> byteorder</ span > < span class ="o "> =</ span > < span class ="s2 "> "little"</ span > < span class ="p "> )</ span >
479479
480480 < span class ="n "> stack_trace</ span > < span class ="o "> .</ span > < span class ="n "> append</ span > < span class ="p "> (</ span > < span class ="n "> return_address</ span > < span class ="p "> )</ span >
481481 < span class ="k "> except</ span > < span class ="p "> (</ span > < span class ="ne "> OSError</ span > < span class ="p "> ,</ span > < span class ="ne "> ValueError</ span > < span class ="p "> ):</ span >
@@ -507,17 +507,17 @@ <h1>Source code for libdebug.architectures.amd64.amd64_stack_unwinder</h1><div c
507507< span class ="sd "> Returns:</ span >
508508< span class ="sd "> int: The return address.</ span >
509509< span class ="sd "> """</ span >
510- < span class ="n "> instruction_window</ span > < span class ="o "> =</ span > < span class ="n "> target</ span > < span class ="o "> .</ span > < span class ="n "> memory</ span > < span class ="p "> [</ span > < span class ="n "> target</ span > < span class ="o "> .</ span > < span class ="n "> regs</ span > < span class ="o "> .</ span > < span class ="n "> rip</ span > < span class ="p "> ,</ span > < span class ="mi "> 4</ span > < span class ="p "> ]</ span >
510+ < span class ="n "> instruction_window</ span > < span class ="o "> =</ span > < span class ="n "> target</ span > < span class ="o "> .</ span > < span class ="n "> memory</ span > < span class ="p "> [</ span > < span class ="n "> target</ span > < span class ="o "> .</ span > < span class ="n "> regs</ span > < span class ="o "> .</ span > < span class ="n "> rip</ span > < span class ="p "> ,</ span > < span class ="mi "> 4</ span > < span class ="p "> , </ span > < span class =" s2 " > "absolute" </ span > < span class =" p " > ]</ span >
511511
512512 < span class ="c1 "> # Check if the instruction window is a function preamble and handle each case</ span >
513513 < span class ="n "> return_address</ span > < span class ="o "> =</ span > < span class ="kc "> None</ span >
514514
515515 < span class ="k "> if</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _preamble_state</ span > < span class ="p "> (</ span > < span class ="n "> instruction_window</ span > < span class ="p "> )</ span > < span class ="o "> ==</ span > < span class ="mi "> 0</ span > < span class ="p "> :</ span >
516- < span class ="n "> return_address</ span > < span class ="o "> =</ span > < span class ="n "> target</ span > < span class ="o "> .</ span > < span class ="n "> memory</ span > < span class ="p "> [</ span > < span class ="n "> target</ span > < span class ="o "> .</ span > < span class ="n "> regs</ span > < span class ="o "> .</ span > < span class ="n "> rbp</ span > < span class ="o "> +</ span > < span class ="mi "> 8</ span > < span class ="p "> ,</ span > < span class ="mi "> 8</ span > < span class ="p "> ]</ span >
516+ < span class ="n "> return_address</ span > < span class ="o "> =</ span > < span class ="n "> target</ span > < span class ="o "> .</ span > < span class ="n "> memory</ span > < span class ="p "> [</ span > < span class ="n "> target</ span > < span class ="o "> .</ span > < span class ="n "> regs</ span > < span class ="o "> .</ span > < span class ="n "> rbp</ span > < span class ="o "> +</ span > < span class ="mi "> 8</ span > < span class ="p "> ,</ span > < span class ="mi "> 8</ span > < span class ="p "> , </ span > < span class =" s2 " > "absolute" </ span > < span class =" p " > ]</ span >
517517 < span class ="k "> elif</ span > < span class ="bp "> self</ span > < span class ="o "> .</ span > < span class ="n "> _preamble_state</ span > < span class ="p "> (</ span > < span class ="n "> instruction_window</ span > < span class ="p "> )</ span > < span class ="o "> ==</ span > < span class ="mi "> 1</ span > < span class ="p "> :</ span >
518- < span class ="n "> return_address</ span > < span class ="o "> =</ span > < span class ="n "> target</ span > < span class ="o "> .</ span > < span class ="n "> memory</ span > < span class ="p "> [</ span > < span class ="n "> target</ span > < span class ="o "> .</ span > < span class ="n "> regs</ span > < span class ="o "> .</ span > < span class ="n "> rsp</ span > < span class ="p "> ,</ span > < span class ="mi "> 8</ span > < span class ="p "> ]</ span >
518+ < span class ="n "> return_address</ span > < span class ="o "> =</ span > < span class ="n "> target</ span > < span class ="o "> .</ span > < span class ="n "> memory</ span > < span class ="p "> [</ span > < span class ="n "> target</ span > < span class ="o "> .</ span > < span class ="n "> regs</ span > < span class ="o "> .</ span > < span class ="n "> rsp</ span > < span class ="p "> ,</ span > < span class ="mi "> 8</ span > < span class ="p "> , </ span > < span class =" s2 " > "absolute" </ span > < span class =" p " > ]</ span >
519519 < span class ="k "> else</ span > < span class ="p "> :</ span >
520- < span class ="n "> return_address</ span > < span class ="o "> =</ span > < span class ="n "> target</ span > < span class ="o "> .</ span > < span class ="n "> memory</ span > < span class ="p "> [</ span > < span class ="n "> target</ span > < span class ="o "> .</ span > < span class ="n "> regs</ span > < span class ="o "> .</ span > < span class ="n "> rsp</ span > < span class ="o "> +</ span > < span class ="mi "> 8</ span > < span class ="p "> ,</ span > < span class ="mi "> 8</ span > < span class ="p "> ]</ span >
520+ < span class ="n "> return_address</ span > < span class ="o "> =</ span > < span class ="n "> target</ span > < span class ="o "> .</ span > < span class ="n "> memory</ span > < span class ="p "> [</ span > < span class ="n "> target</ span > < span class ="o "> .</ span > < span class ="n "> regs</ span > < span class ="o "> .</ span > < span class ="n "> rsp</ span > < span class ="o "> +</ span > < span class ="mi "> 8</ span > < span class ="p "> ,</ span > < span class ="mi "> 8</ span > < span class ="p "> , </ span > < span class =" s2 " > "absolute" </ span > < span class =" p " > ]</ span >
521521
522522 < span class ="k "> return</ span > < span class ="nb "> int</ span > < span class ="o "> .</ span > < span class ="n "> from_bytes</ span > < span class ="p "> (</ span > < span class ="n "> return_address</ span > < span class ="p "> ,</ span > < span class ="n "> byteorder</ span > < span class ="o "> =</ span > < span class ="s2 "> "little"</ span > < span class ="p "> )</ span > </ div >
523523
0 commit comments