mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-11 16:18:07 +00:00
fix unmapped address visualization when reading is impossible + stop it from terminating rest of useful visualization
This commit is contained in:
@@ -5272,6 +5272,7 @@ d_ctrl_thread__open_crash_dump(DMN_CtrlCtx *ctrl_ctx, D_Msg *msg)
|
||||
String8 module_name_raw_data = str8_prefix(str8_skip(data, off), module_name_size);
|
||||
String16 module_name_16 = str16((U16 *)module_name_raw_data.str, module_name_raw_data.size / sizeof(U16));
|
||||
module_name = str8_from_16(scratch.arena, module_name_16);
|
||||
module_name = path_normalized_from_string(scratch.arena, module_name);
|
||||
}
|
||||
|
||||
// rjf: open module
|
||||
|
||||
@@ -1849,25 +1849,20 @@ ev_string_iter_next(Arena *arena, EV_StringIter *it, String8 *out_string)
|
||||
//- rjf: step 0: do pre-prefix pointer value if requested
|
||||
case 0:
|
||||
{
|
||||
if(!(params->flags & EV_StringFlag_DisableAddresses) &&
|
||||
(!ptr_data->addr_is_good || params->flags & EV_StringFlag_AddressesBeforeContent))
|
||||
if(!(params->flags & EV_StringFlag_DisableAddresses) && params->flags & EV_StringFlag_AddressesBeforeContent)
|
||||
{
|
||||
Temp scratch = scratch_begin(&arena, 1);
|
||||
String8 ptr_value_string = str8_from_u64(scratch.arena, ptr_data->value_eval.value.u64,
|
||||
ptr_data->value_eval.value.u64 != 0 ? 16 : 10, 0, 0);
|
||||
if(ptr_data->value_eval.value.u64 != 0 && !ptr_data->addr_is_good && params->flags & EV_StringFlag_ReadOnlyDisplayRules)
|
||||
if(params->flags & EV_StringFlag_DisplayAddressUnmappedStatus && ptr_data->value_eval.value.u64 != 0 && !ptr_data->addr_is_good && params->flags & EV_StringFlag_ReadOnlyDisplayRules)
|
||||
{
|
||||
ptr_value_string = str8f(scratch.arena, "%S (unmapped)", ptr_value_string);
|
||||
}
|
||||
*out_string = str8_copy(arena, ptr_value_string);
|
||||
ptr_data->did_pre_prefix_ptr = 1;
|
||||
need_pop = !ptr_data->addr_is_good;
|
||||
scratch_end(scratch);
|
||||
}
|
||||
else
|
||||
{
|
||||
need_pop = 0;
|
||||
}
|
||||
need_pop = 0;
|
||||
}break;
|
||||
|
||||
//- rjf: step 1 -> try "prefix content", which we want to print before the pointer value,
|
||||
@@ -2134,7 +2129,7 @@ ev_string_iter_next(Arena *arena, EV_StringIter *it, String8 *out_string)
|
||||
{
|
||||
Temp scratch = scratch_begin(&arena, 1);
|
||||
String8 ptr_value_string = str8_from_u64(scratch.arena, ptr_data->value_eval.value.u64, ptr_data->value_eval.value.u64 != 0 ? 16 : 10, 0, 0);
|
||||
if(params->flags & EV_StringFlag_ReadOnlyDisplayRules && ptr_data->value_eval.value.u64 != 0 && !ptr_data->addr_is_good)
|
||||
if(params->flags & EV_StringFlag_DisplayAddressUnmappedStatus && params->flags & EV_StringFlag_ReadOnlyDisplayRules && ptr_data->value_eval.value.u64 != 0 && !ptr_data->addr_is_good)
|
||||
{
|
||||
ptr_value_string = str8f(scratch.arena, "%S (unmapped)", ptr_value_string);
|
||||
}
|
||||
|
||||
@@ -234,6 +234,7 @@ enum
|
||||
EV_StringFlag_DisableChars = (1<<4),
|
||||
EV_StringFlag_DisableStringQuotes = (1<<5),
|
||||
EV_StringFlag_AddressesBeforeContent = (1<<6),
|
||||
EV_StringFlag_DisplayAddressUnmappedStatus = (1<<7),
|
||||
};
|
||||
|
||||
typedef struct EV_StringParams EV_StringParams;
|
||||
|
||||
@@ -10,8 +10,8 @@
|
||||
typedef U32 FNT_RasterFlags;
|
||||
enum
|
||||
{
|
||||
FNT_RasterFlag_Smooth = (1<<0),
|
||||
FNT_RasterFlag_Hinted = (1<<1),
|
||||
FNT_RasterFlag_Smooth = (1<<0),
|
||||
FNT_RasterFlag_Hinted = (1<<1),
|
||||
};
|
||||
|
||||
////////////////////////////////
|
||||
|
||||
@@ -12,8 +12,8 @@
|
||||
typedef U32 FP_RasterFlags;
|
||||
enum
|
||||
{
|
||||
FP_RasterFlag_Smooth = (1<<0),
|
||||
FP_RasterFlag_Hinted = (1<<1),
|
||||
FP_RasterFlag_Smooth = (1<<0),
|
||||
FP_RasterFlag_Hinted = (1<<1),
|
||||
};
|
||||
|
||||
typedef struct FP_Handle FP_Handle;
|
||||
|
||||
@@ -12302,6 +12302,10 @@ rd_frame(void)
|
||||
{
|
||||
rd_state->eval_viz_base_string_flags |= EV_StringFlag_AddressesBeforeContent;
|
||||
}
|
||||
if(!d_user_state->ctrl_is_running)
|
||||
{
|
||||
rd_state->eval_viz_base_string_flags |= EV_StringFlag_DisplayAddressUnmappedStatus;
|
||||
}
|
||||
|
||||
////////////////////////////
|
||||
//- rjf: autosave if needed
|
||||
|
||||
Reference in New Issue
Block a user