parameters: (self)
return_statement: return seh_chain
docstring: @rtype:  list of tuple( int, int )
          @return: List of structured exception handlers.
              Each SEH is represented as a tuple of two addresses:
                  - Address of this SEH block
                  - Address of the SEH callback function
              Do not confuse this with the contents of the SEH block itself,
              where the first member is a pointer to the B{next} block instead.
  
          @raise NotImplementedError:
              This method is only supported in 32 bits versions of Windows.
docstring_summary: @rtype:  list of tuple( int, int )
          @return: List of structured exception handlers.
              Each SEH is represented as a tuple of two addresses:
                  - Address of this SEH block
                  - Address of the SEH callback function
              Do not confuse this with the contents of the SEH block itself,
              where the first member is a pointer to the B{next} block instead.
docstring_tokens: @rtype : list of tuple ( int int ) @return : List of structured exception handlers . Each SEH is represented as a tuple of two addresses : - Address of this SEH block - Address of the SEH callback function Do not confuse this with the contents of the SEH block itself where the first member is a pointer to the B { next } block instead .
function: def get_seh_chain(self):
          """
          @rtype:  list of tuple( int, int )
          @return: List of structured exception handlers.
              Each SEH is represented as a tuple of two addresses:
                  - Address of this SEH block
                  - Address of the SEH callback function
              Do not confuse this with the contents of the SEH block itself,
              where the first member is a pointer to the B{next} block instead.
  
          @raise NotImplementedError:
              This method is only supported in 32 bits versions of Windows.
          """
          seh_chain = list()
          try:
              process = self.get_process()
              seh = self.get_seh_chain_pointer()
              while seh != 0xFFFFFFFF:
                  seh_func = process.read_pointer( seh + 4 )
                  seh_chain.append( (seh, seh_func) )
                  seh = process.read_pointer( seh )
          except WindowsError:
              seh_chain.append( (seh, None) )
          return seh_chain
function_tokens: def get_seh_chain ( self ) : seh_chain = list ( ) try : process = self . get_process ( ) seh = self . get_seh_chain_pointer ( ) while seh != 0xFFFFFFFF : seh_func = process . read_pointer ( seh + 4 ) seh_chain . append ( ( seh , seh_func ) ) seh = process . read_pointer ( seh ) except WindowsError : seh_chain . append ( ( seh , None ) ) return seh_chain