raddbg: store connected remote controller address correctly, ui: fix tooltips escaping window

This commit is contained in:
Ryan Fleury committed 2026-10-07 13:05:08 -07:00
1 parent 297cb626f5
commit 9262938b2f
7 files changed
+27 -22

No files matched your search

+1 -1
View File
@@ -7,6 +7,7 @@ target:
working_directory: build
arguments: "--user:raddbg_test.user"
debug_subprocesses: 0
enabled: 1
}
target:
{
@@ -35,7 +36,6 @@ target:
executable: "build/raddbg"
working_directory: build
arguments: "--user:raddbg_test.user"
enabled: 1
}
target:
{
+2 -2
View File
@@ -224,7 +224,7 @@ RD_VocabInfo rd_vocab_info_table[374] =
{str8_lit_comp("eval"), str8_lit_comp(""), str8_lit_comp("Eval"), str8_lit_comp(""), RD_IconKind_Null},
{str8_lit_comp("line_from_vaddr"), str8_lit_comp(""), str8_lit_comp("Line From Virtual Address"), str8_lit_comp(""), RD_IconKind_Null},
{str8_lit_comp("remote_controller_connect"), str8_lit_comp(""), str8_lit_comp("Remote Controller Connect"), str8_lit_comp(""), RD_IconKind_Null},
{str8_lit_comp("remote_controller_connect"), str8_lit_comp(""), str8_lit_comp("Remote Controller Connect"), str8_lit_comp(""), RD_IconKind_Null},
{str8_lit_comp("remote_controller_disconnect"), str8_lit_comp(""), str8_lit_comp("Remote Controller Disconnect"), str8_lit_comp(""), RD_IconKind_Null},
{str8_lit_comp("wm_event"), str8_lit_comp(""), str8_lit_comp("OS Event"), str8_lit_comp(""), RD_IconKind_Null},
{str8_lit_comp("select_thread"), str8_lit_comp(""), str8_lit_comp("Select Thread"), str8_lit_comp(""), RD_IconKind_Thread},
{str8_lit_comp("select_unwind"), str8_lit_comp(""), str8_lit_comp("Select Unwind"), str8_lit_comp(""), RD_IconKind_Null},
@@ -652,7 +652,7 @@ RD_CmdKindInfo rd_cmd_kind_info_table[261] =
{ str8_lit_comp("eval"), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Expr, str8_lit_comp("")}},
{ str8_lit_comp("line_from_vaddr"), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Vaddr, str8_lit_comp("")}},
{ str8_lit_comp("remote_controller_connect"), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}},
{ str8_lit_comp("remote_controller_connect"), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}},
{ str8_lit_comp("remote_controller_disconnect"), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}},
{ str8_lit_comp("wm_event"), str8_lit_comp(""), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*0), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("")}},
{ str8_lit_comp("select_thread"), str8_lit_comp("Selects a thread."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*1)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*1)|(RD_QueryFlag_Required*1), RD_RegSlot_Thread, str8_lit_comp("query:threads")}},
{ str8_lit_comp("select_unwind"), str8_lit_comp("Selects an unwind frame number for the selected thread."), str8_lit_comp(""), str8_lit_comp(""), (RD_CmdKindFlag_ListInUI*0)|(RD_CmdKindFlag_ListInIPCDocs*1), {(RD_QueryFlag_AllowFiles*0)|(RD_QueryFlag_AllowFolders*0)|(RD_QueryFlag_CodeInput*0)|(RD_QueryFlag_KeepOldInput*0)|(RD_QueryFlag_SelectOldInput*0)|(RD_QueryFlag_Floating*0)|(RD_QueryFlag_Required*0), RD_RegSlot_Null, str8_lit_comp("query:call_stack")}},
+2 -2
View File
@@ -1047,8 +1047,8 @@ RD_CmdTable: // | | | |
{Eval 0 0 1 "" Expr 0 0 0 0 0 0 0 Null "eval" "Eval" "" "" "" }
{LineFromVAddr 0 0 1 "" Vaddr 0 0 0 0 0 0 0 Null "line_from_vaddr" "Line From Virtual Address" "" "" "" }
{RemoteControllerConnect 0 0 1 "" Null 0 0 0 0 0 0 0 Null "remote_controller_connect" "Remote Controller Connect" "" "" "" }
{RemoteControllerDisconnect 0 0 1 "" Null 0 0 0 0 0 0 0 Null "remote_controller_connect" "Remote Controller Connect" "" "" "" }
{RemoteControllerDisconnect 0 0 1 "" Null 0 0 0 0 0 0 0 Null "remote_controller_disconnect" "Remote Controller Disconnect" "" "" "" }
//- rjf: os event passthrough
{WMEvent 0 0 0 "" Null 0 0 0 0 0 0 0 Null "wm_event" "OS Event" "" "" "" }
+11 -8
View File
@@ -7912,16 +7912,19 @@ rd_window_frame(void)
{
CFG_Node *rc = n->v;
String8 ip_addr = rc->first->string;
UI_VisualMargin(ui_top_font_size()*0.5f)
UI_CornerRadius(ui_top_font_size()*0.5f)
{
ui_set_next_pref_width(ui_children_sum(1));
ui_set_next_child_layout_axis(Axis2_X);
UI_Box *rc_box = ui_build_box_from_stringf(UI_BoxFlag_Clickable|
UI_BoxFlag_DrawBackground|
UI_BoxFlag_DrawHotEffects|
UI_BoxFlag_DrawActiveEffects,
"###rc_button");
UI_Box *rc_box = &ui_nil_box;
UI_VisualMargin(ui_top_font_size()*0.5f)
UI_CornerRadius(ui_top_font_size()*0.5f)
{
rc_box = ui_build_box_from_stringf(UI_BoxFlag_Clickable|
UI_BoxFlag_DrawBackground|
UI_BoxFlag_DrawHotEffects|
UI_BoxFlag_DrawActiveEffects,
"###rc_button");
}
wm_window_push_custom_title_bar_client_area(ws->os, rc_box->rect);
UI_Parent(rc_box)
UI_PrefWidth(ui_text_dim(10, 0))
@@ -13976,7 +13979,7 @@ rd_frame(void)
{
CFG_Node *transient = cfg_node_child_from_string(cfg_node_root(), s("transient"));
CFG_Node *ctrlr = cfg_node_new(rd_state->cfg, transient, s("remote_controller"));
cfg_node_new(rd_state->cfg, ctrlr, rd_regs()->string);
cfg_node_new(rd_state->cfg, ctrlr, sock_string_from_endpoint(scratch.arena, rd_state->ipc_sock_endpoint));
}break;
case RD_CmdKind_RemoteControllerDisconnect:
{
+1
View File
@@ -421,6 +421,7 @@ struct RD_State
B32 override_focus_on_stop;
S32 frame_depth;
U64 frame_eval_memread_endt_us;
SOCK_Endpoint ipc_sock_endpoint;
// rjf: installation setting state
B32 installed;
+5 -4
View File
@@ -690,8 +690,8 @@ entry_point(CmdLine *cmd_line)
d_set_wakeup_hook(wakeup_hook_ctrl);
}
//- rjf: set up socket session for ICP
SOCK_Session icp_sock_session = sock_session_open((U16)ipc_port, wakeup_hook_ctrl);
//- rjf: set up socket session for IPC
SOCK_Session ipc_sock_session = sock_session_open((U16)ipc_port, wakeup_hook_ctrl);
//- rjf: main application loop
{
@@ -704,7 +704,7 @@ entry_point(CmdLine *cmd_line)
{
Temp scratch = scratch_begin(0, 0);
String8 packet = {0};
if(sock_recv(scratch.arena, icp_sock_session, &ipc_protocol, &ipc_endpoint, &packet, 0))
if(sock_recv(scratch.arena, ipc_sock_session, &ipc_protocol, &ipc_endpoint, &packet, 0))
{
// rjf: use header to determine message portion
String8 msg = {0};
@@ -761,6 +761,7 @@ entry_point(CmdLine *cmd_line)
}
rd_request_frame();
ipc_command_frame = 1;
rd_state->ipc_sock_endpoint = ipc_endpoint;
}
}
}
@@ -798,7 +799,7 @@ entry_point(CmdLine *cmd_line)
str8_list_push_front(scratch.arena, &rd_state->cmd_outputs, str8_struct(&packet_size));
str8_list_push_front(scratch.arena, &rd_state->cmd_outputs, str8_struct(&ipc_packet_magic_start));
String8 msg = str8_list_join(scratch.arena, &rd_state->cmd_outputs, 0);
sock_send(icp_sock_session, ipc_protocol, ipc_endpoint, msg, now_time_us()+5000000);
sock_send(ipc_sock_session, ipc_protocol, ipc_endpoint, msg, now_time_us()+5000000);
}
}
}
+5 -5
View File
@@ -1256,8 +1256,8 @@ ui_end_build(void)
}
else
{
ui_state->tooltip_root->rect.x0 = 10000;
ui_state->tooltip_root->rect.y0 = 10000;
ui_state->tooltip_root->rect.x0 = ui_state->tooltip_root->rect.x1 = 10000;
ui_state->tooltip_root->rect.y0 = ui_state->tooltip_root->rect.y1 = 10000;
}
}
@@ -1951,8 +1951,8 @@ ui_tooltip_begin_base(void)
ui_push_flags(0);
ui_push_text_raster_flags(ui_bottom_text_raster_flags());
ui_push_font_size(ui_bottom_font_size());
ui_push_tag(str8_lit("."));
ui_push_tag(str8_lit("floating"));
ui_push_tag(s("."));
ui_push_tag(s("floating"));
}
internal void
@@ -1973,7 +1973,7 @@ ui_tooltip_begin(void)
ui_tooltip_begin_base();
ui_set_next_squish(0.1f-ui_state->tooltip_open_t*0.1f);
ui_set_next_transparency(1-ui_state->tooltip_open_t);
UI_Flags(UI_BoxFlag_Floating|UI_BoxFlag_DrawBorder|UI_BoxFlag_DrawBackground|UI_BoxFlag_DrawBackgroundBlur|UI_BoxFlag_DrawDropShadow|UI_BoxFlag_SquishAnchored)
UI_Flags(UI_BoxFlag_DrawBorder|UI_BoxFlag_DrawBackground|UI_BoxFlag_DrawBackgroundBlur|UI_BoxFlag_DrawDropShadow|UI_BoxFlag_SquishAnchored)
UI_PrefWidth(ui_children_sum(1))
UI_PrefHeight(ui_children_sum(1))
UI_CornerRadius(ui_top_font_size()*0.25f)