mirror of
https://github.com/open-goal/jak-project
synced 2026-09-03 02:14:07 -04:00
[goalc] Address-to-line (#783)
* refactor debug info stuff before adding form to emit * source mapping working for non-macro sourced forms * support macros
This commit is contained in:
@@ -4,27 +4,30 @@
|
||||
|
||||
DebugInfo::DebugInfo(std::string obj_name) : m_obj_name(std::move(obj_name)) {}
|
||||
|
||||
std::string FunctionDebugInfo::disassemble_debug_info(bool* had_failure) {
|
||||
std::string FunctionDebugInfo::disassemble_debug_info(bool* had_failure,
|
||||
const goos::Reader* reader) {
|
||||
std::string result = fmt::format("[{}]\n", name);
|
||||
result += disassemble_x86_function(generated_code.data(), generated_code.size(), 0x10000, 0x10000,
|
||||
instructions, irs, had_failure);
|
||||
result += disassemble_x86_function(generated_code.data(), generated_code.size(), reader, 0x10000,
|
||||
0x10000, instructions, function.get(), had_failure);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
std::string DebugInfo::disassemble_all_functions(bool* had_failure) {
|
||||
std::string DebugInfo::disassemble_all_functions(bool* had_failure, const goos::Reader* reader) {
|
||||
std::string result;
|
||||
for (auto& kv : m_functions) {
|
||||
result += kv.second.disassemble_debug_info(had_failure) + "\n\n";
|
||||
result += kv.second.disassemble_debug_info(had_failure, reader) + "\n\n";
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
std::string DebugInfo::disassemble_function_by_name(const std::string& name, bool* had_failure) {
|
||||
std::string DebugInfo::disassemble_function_by_name(const std::string& name,
|
||||
bool* had_failure,
|
||||
const goos::Reader* reader) {
|
||||
std::string result;
|
||||
for (auto& kv : m_functions) {
|
||||
if (kv.second.name == name) {
|
||||
result += kv.second.disassemble_debug_info(had_failure) + "\n\n";
|
||||
result += kv.second.disassemble_debug_info(had_failure, reader) + "\n\n";
|
||||
}
|
||||
}
|
||||
return result;
|
||||
|
||||
Reference in New Issue
Block a user