``define_user_data_var`` defines a user data variable ``var_type`` at the virtual address ``addr``. :param int addr: virtual address to define the given data variable :param binaryninja.Type var_type: type to be defined at the given virtual address :param Optional[Union[str, _types.CoreSym
( self, addr: int, var_type: StringOrType, name: Optional[Union[str, '_types.CoreSymbol']] = None )
| 4990 | self.define_auto_symbol(name) |
| 4991 | |
| 4992 | def define_user_data_var( |
| 4993 | self, addr: int, var_type: StringOrType, name: Optional[Union[str, '_types.CoreSymbol']] = None |
| 4994 | ) -> Optional['DataVariable']: |
| 4995 | """ |
| 4996 | ``define_user_data_var`` defines a user data variable ``var_type`` at the virtual address ``addr``. |
| 4997 | |
| 4998 | :param int addr: virtual address to define the given data variable |
| 4999 | :param binaryninja.Type var_type: type to be defined at the given virtual address |
| 5000 | :param Optional[Union[str, _types.CoreSymbol]] name: Optionally, additionally define a symbol at this same address |
| 5001 | :rtype: Optional[DataVariable] |
| 5002 | :Example: |
| 5003 | |
| 5004 | >>> t = bv.parse_type_string("int foo") |
| 5005 | >>> t |
| 5006 | (<type: int32_t>, 'foo') |
| 5007 | >>> bv.define_user_data_var(bv.entry_point, t[0]) |
| 5008 | <var 0x2394c: int32_t> |
| 5009 | >>> bv.define_user_data_var(bv.entry_point + 4, "int", "foo") |
| 5010 | <var 0x23950: int32_t> |
| 5011 | >>> bv.get_symbol_at(bv.entry_point + 4) |
| 5012 | <DataSymbol: "foo" @ 0x23950> |
| 5013 | >>> bv.get_data_var_at(bv.entry_point + 4) |
| 5014 | <var 0x23950: int32_t> |
| 5015 | """ |
| 5016 | |
| 5017 | if isinstance(var_type, str): |
| 5018 | (var_type, _) = self.parse_type_string(var_type) |
| 5019 | tc = var_type._to_core_struct() |
| 5020 | core.BNDefineUserDataVariable(self.handle, addr, tc) |
| 5021 | |
| 5022 | if name is not None: |
| 5023 | if isinstance(name, str): |
| 5024 | name = _types.Symbol(SymbolType.DataSymbol, addr, name) |
| 5025 | self.define_user_symbol(name) |
| 5026 | |
| 5027 | return self.get_data_var_at(addr) |
| 5028 | |
| 5029 | def undefine_data_var(self, addr: int, blacklist: bool = True) -> None: |
| 5030 | """ |
no test coverage detected