Ejemplo n.º 1
0
 def _convert_addresses_to_symbols_where_possible(self, addresses):
     for i, address in enumerate(addresses):
         symbol_name = disassembly.get_symbol_for_address(self.disassembly_data, address)
         if symbol_name is not None:
             addresses[i] = symbol_name
         else:
             addresses[i] = self._address_to_string(address)
Ejemplo n.º 2
0
    def set_label_name(self, acting_client):
        if self.state_id != EditorState.STATE_LOADED:
            return ERRMSG_TODO_BAD_STATE_FUNCTIONALITY

        current_address = self.get_address(acting_client)
        symbol_name = disassembly.get_symbol_for_address(self.disassembly_data, current_address)
        # Prompt user to edit the current label, or add a new one.
        new_symbol_name = acting_client.request_label_name(symbol_name)
        if new_symbol_name is not None and new_symbol_name != symbol_name:
            match = RE_LABEL.match(new_symbol_name)
            if match is None:
                return ERRMSG_INVALID_LABEL_NAME
            disassembly.set_symbol_for_address(self.disassembly_data, current_address, new_symbol_name)