MCPcopy Create free account
hub / github.com/lief-project/LIEF / define_array_at

Method define_array_at

plugins/binaryninja/analysis/src/AnalyzerBase.cpp:103–129  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

101}
102
103void AnalyzerBase::define_array_at(
104 uint64_t addr, BinaryNinja::Ref<BinaryNinja::Type> type,
105 size_t count, std::optional<std::string> name, bool force)
106{
107 if (count == 0) {
108 return;
109 }
110
111 if (force) {
112 bv_.UndefineDataVariable(addr, /*blacklist=*/false);
113 }
114
115 if (auto var = get_defined_var(addr)) {
116 BN_DEBUG("Type '{}' already defined at 0x{:016x}",
117 binaryninja::to_string(var->type->GetTypeName()), addr);
118 return;
119 }
120
121 auto array_ty = Type::ArrayType(type, count);
122 if (name) {
123 auto bn_sym = new Symbol(DataSymbol, *name, addr, NoBinding);
124 bv_.DefineAutoSymbolAndVariableOrFunction(
125 bv_.GetDefaultPlatform(), bn_sym, array_ty);
126 } else {
127 bv_.DefineDataVariable(addr, array_ty);
128 }
129}
130
131void AnalyzerBase::define_blob(uint64_t addr, size_t size,
132 std::optional<std::string> name, bool force)

Callers

nothing calls this directly

Calls 2

to_stringFunction · 0.50
ArrayTypeClass · 0.50

Tested by

no test coverage detected