This was built to track decompiler and CFG progress.
Unexpected AstNode sub-type on stack. Expected Assignable.
{
"frames": [
{
"line": 282,
"file": ".\\gbf_core\\src\\decompiler\\function_decompiler_context.rs",
"function": "gbf_core::decompiler::function_decompiler_context::FunctionDecompilerContext::pop_assignable"
},
{
"line": 33,
"file": ".\\gbf_core\\src\\decompiler\\handlers\\special_two_operand.rs",
"function": "gbf_core::decompiler::handlers::special_two_operand::impl$0::handle_instruction"
},
{
"line": 171,
"file": ".\\gbf_core\\src\\decompiler\\function_decompiler_context.rs",
"function": "gbf_core::decompiler::function_decompiler_context::FunctionDecompilerContext::process_instruction"
},
{
"line": 467,
"file": ".\\gbf_core\\src\\decompiler\\function_decompiler.rs",
"function": "gbf_core::decompiler::function_decompiler::FunctionDecompiler::process_regions"
},
{
"line": 286,
"file": ".\\gbf_core\\src\\decompiler\\function_decompiler.rs",
"function": "gbf_core::decompiler::function_decompiler::FunctionDecompiler::decompile"
}
]
}
{
"current_block_id": {
"index": 6,
"address": 6907,
"block_type": "Normal"
},
"current_ast_node_stack": [
{
"StandaloneNode": {
"Expression": {
"Assignable": {
"Identifier": {
"metadata": {
"properties": {},
"comments": []
},
"node_id": 72223,
"ptr": {
"ssa_version": 40,
"id": "gbf_new_obj"
}
}
}
}
}
},
{
"StandaloneNode": {
"Expression": {
"Assignable": {
"Identifier": {
"metadata": {
"properties": {},
"comments": []
},
"ptr": {
"ssa_version": 18,
"id": "gbf_new_obj"
},
"node_id": 72224
}
}
}
}
},
{
"StandaloneNode": {
"Expression": {
"Assignable": {
"Identifier": {
"metadata": {
"properties": {},
"comments": []
},
"node_id": 72225,
"ptr": {
"ssa_version": 29,
"id": "extent"
}
}
}
}
}
},
{
"BuildingArray": []
}
],
"current_instruction": {
"opcode": "AccessMember",
"operand": null,
"address": 6924
}
}
function joinTab(tab#0)
{
fn_call#5 = GuiRCTabs.findtext(tab#0);
lit#6 = 0;
// RegionId(1)
if (fn_call#5 >= lit#6)
{
lit#7 = 0;
return lit#7;
}
// RegionId(2)
else
{
fn_call#9 = GuiRCTabs.rowcount();
fn_call#11 = GuiRCTabs.addrow(fn_call#9, tab#0);
fn_call#12 = GuiRCTabs.rowcount();
lit#13 = 1;
// RegionId(2)
// RegionId(3)
if (fn_call#12 == lit#13)
{
lit#14 = 0;
fn_call#16 = GuiRCTabs.setselectedrow(lit#14);
}
lit#17 = "GuiRCConsoleScroll_Tab_";
gbf_new_obj#18 = lit#17 @ tab#0;
lit#19 = "GuiScrollCtrl";
new_node#20 = new lit#19(gbf_new_obj#18);
gbf_new_obj#21 = new_node#20;
// RegionId(4)
// RegionId(5)
with (gbf_new_obj#18)
{
lit#23 = "GuiRCScrollProfile";
profile#24 = lit#23;
lit#28 = 22;
extent#30 = {GuiRCConsole.clientwidth, GuiRCConsole.clientheight - lit#28};
lit#32 = "alwaysOff";
hscrollbar#33 = lit#32;
lit#35 = "alwaysOn";
vscrollbar#36 = lit#35;
lit#38 = "width";
horizsizing#39 = lit#38;
lit#41 = "height";
vertsizing#42 = lit#41;
lit#44 = false;
visible#45 = lit#44;
lit#46 = "GuiRCConsoleMLText_Tab_";
gbf_new_obj#47 = lit#46 @ tab#0;
lit#48 = "GuiMLTextCtrl";
new_node#49 = new lit#48(gbf_new_obj#47);
gbf_new_obj#50 = new_node#49;
// RegionId(5)
// RegionId(6)
with (gbf_new_obj#47)
{
lit#51 = "GuiRCMLTextProfile";
profile#52 = lit#51;
lit#54 = 0;
lit#55 = 4;
position#56 = {lit#55, lit#54};
lit#57 = "GuiRCConsoleScroll_Tab_";
lit#58 = "GuiRCConsoleScroll_Tab_";
lit#59 = 0;
lit#60 = 20;
extent#61 = {((lit#58 @ tab#0).clientwidth - position#56[lit#59]) - lit#60, lit#57 @ tab#0.clientheight};
lit#62 = "width";
horizsizing#63 = lit#62;
lit#64 = "height";
vertsizing#65 = lit#64;
lit#67 = "b";
lit#68 = "a";
lit#69 = "font";
allowedtags#70 = {lit#69, lit#68, lit#67};
lit#72 = true;
htmllinks#73 = lit#72;
fn_call#75 = scrolltobottom#74();
}
fn_call#77 = addcontrol#76(phi<idx=0, regions=()>);
}
fn_call#78 = addcontrol#76(phi<idx=0, regions=()>);
lit#79 = "GuiRCConsoleScroll_Tab_";
fn_call#80 = GuiRCConsole.addcontrol(lit#79 @ tab#0);
lit#81 = 0;
temp.i = lit#81;
fn_call#82 = GuiRCTabs.rowcount();
while (temp.i < fn_call#82)
{
lit#83 = "GuiRCConsoleScroll_Tab_";
fn_call#86 = GuiRCTabs.rows[temp.i].gettext();
fn_call#88 = GuiRCTabs.isrowselected(temp.i);
lit#83 @ fn_call#86.visible = fn_call#88;
temp.i++;
}
lit#89 = 0;
return lit#89;
}
}
Use the mouse wheel + shift to zoom in and out, and click and drag to pan.
Use the mouse wheel + shift to zoom in and out, and click and drag to pan.
Step 1 of 20