forked from koniifer/ableos
disasm now displays literal string value
This commit is contained in:
parent
1a162af06b
commit
69f362b53d
|
@ -8,7 +8,7 @@ use {
|
||||||
parser::{self, find_symbol, idfl, CtorField, Expr, ExprRef, FileId, Pos},
|
parser::{self, find_symbol, idfl, CtorField, Expr, ExprRef, FileId, Pos},
|
||||||
HashMap,
|
HashMap,
|
||||||
},
|
},
|
||||||
std::{fmt::Display, ops::Range, rc::Rc},
|
std::{fmt::Display, ops::Range, rc::Rc, usize},
|
||||||
};
|
};
|
||||||
|
|
||||||
type Offset = u32;
|
type Offset = u32;
|
||||||
|
@ -3275,12 +3275,19 @@ impl Codegen {
|
||||||
)
|
)
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
.chain(
|
.chain(self.output.strings.iter().map(|s| {
|
||||||
self.output
|
(
|
||||||
.strings
|
s.range.start,
|
||||||
.iter()
|
(
|
||||||
.map(|s| (s.range.start, ("string", s.range.len() as _, DisasmItem::Global))),
|
std::str::from_utf8(
|
||||||
)
|
&self.output.code[s.range.start as usize..s.range.end as usize - 1],
|
||||||
|
)
|
||||||
|
.unwrap_or("!!!!invalid string"),
|
||||||
|
s.range.len() as _,
|
||||||
|
DisasmItem::Global,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
}))
|
||||||
.collect::<HashMap<_, _>>();
|
.collect::<HashMap<_, _>>();
|
||||||
crate::disasm(&mut sluce, &functions, output, |bin| {
|
crate::disasm(&mut sluce, &functions, output, |bin| {
|
||||||
if self.ct.active()
|
if self.ct.active()
|
||||||
|
|
Loading…
Reference in a new issue