mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-08 23:08:08 +00:00
fix torture; adjust raddbg test exemplar dumping to avoid dumping info for anything other than the main module, so that we don't get non-deterministic dumps (for e.g. system PDBs)
This commit is contained in:
@@ -58,9 +58,6 @@ lines:
|
|||||||
}
|
}
|
||||||
ip_voff: 0x1044
|
ip_voff: 0x1044
|
||||||
ip_voff_symbol: raddbg_thread_id__impl
|
ip_voff_symbol: raddbg_thread_id__impl
|
||||||
lines
|
|
||||||
ip_voff: 0x15890
|
|
||||||
ip_voff_symbol: ""
|
|
||||||
lines:
|
lines:
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
@@ -166,9 +163,6 @@ lines:
|
|||||||
}
|
}
|
||||||
ip_voff: 0x1044
|
ip_voff: 0x1044
|
||||||
ip_voff_symbol: raddbg_thread_id__impl
|
ip_voff_symbol: raddbg_thread_id__impl
|
||||||
lines
|
|
||||||
ip_voff: 0x15890
|
|
||||||
ip_voff_symbol: ""
|
|
||||||
lines:
|
lines:
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
@@ -364,9 +358,6 @@ lines:
|
|||||||
}
|
}
|
||||||
ip_voff: 0x1af4
|
ip_voff: 0x1af4
|
||||||
ip_voff_symbol: mule_init
|
ip_voff_symbol: mule_init
|
||||||
lines
|
|
||||||
ip_voff: 0x20830
|
|
||||||
ip_voff_symbol: ""
|
|
||||||
lines:
|
lines:
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -73,9 +73,6 @@ lines:
|
|||||||
}
|
}
|
||||||
ip_voff: 0x1044
|
ip_voff: 0x1044
|
||||||
ip_voff_symbol: raddbg_thread_id__impl
|
ip_voff_symbol: raddbg_thread_id__impl
|
||||||
lines
|
|
||||||
ip_voff: 0x15890
|
|
||||||
ip_voff_symbol: ""
|
|
||||||
lines:
|
lines:
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
@@ -271,9 +268,6 @@ lines:
|
|||||||
}
|
}
|
||||||
ip_voff: 0x1af4
|
ip_voff: 0x1af4
|
||||||
ip_voff_symbol: mule_init
|
ip_voff_symbol: mule_init
|
||||||
lines
|
|
||||||
ip_voff: 0x20830
|
|
||||||
ip_voff_symbol: ""
|
|
||||||
lines:
|
lines:
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:87783650d5ceb1dd991ae3a01ca4a55cefc9eacd54ead4fcc5deb72af4f9b8a3
|
oid sha256:446e9b14f298e3824edccf61d857108d6100a3c1a3a5dcd7fa7d52fe5a1d6a8d
|
||||||
size 2667692
|
size 2768548
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:3bc47bac888fae6cbeb969e59763431847e30f380e24c9ccfd05565beacc9995
|
oid sha256:73c47bf20d8d12057fa9e4d12873620f6c860b1bc5d4f831b4925f03e9f7c0b4
|
||||||
size 5379652
|
size 5518096
|
||||||
|
|||||||
+1
-1
@@ -49,7 +49,7 @@ commands =
|
|||||||
// .f1 = { .win = "raddbg_stable --ipc kill_all && build raddbg", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, },
|
// .f1 = { .win = "raddbg_stable --ipc kill_all && build raddbg", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, },
|
||||||
// .f1 = { .win = "raddbg_stable --ipc kill_all && build raddbg debug telemetry", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, },
|
// .f1 = { .win = "raddbg_stable --ipc kill_all && build raddbg debug telemetry", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, },
|
||||||
// .f1 = { .win = "raddbg_stable --ipc kill_all && build radbin", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, },
|
// .f1 = { .win = "raddbg_stable --ipc kill_all && build radbin", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, },
|
||||||
.f1 = { .win = "raddbg_stable --ipc kill_all && build raddbg telemetry", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, },
|
.f1 = { .win = "raddbg_stable --ipc kill_all && build torture", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, },
|
||||||
|
|
||||||
//- rjf: [raddbg wsl]
|
//- rjf: [raddbg wsl]
|
||||||
// .f1 = { .win = "wsl ./build.sh raddbg", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, },
|
// .f1 = { .win = "wsl ./build.sh raddbg", .linux = "", .out = "*compilation*", .footer_panel = true, .save_dirty_files = true, .cursor_at_end = false, },
|
||||||
|
|||||||
@@ -10,13 +10,6 @@ target:
|
|||||||
enabled: 1
|
enabled: 1
|
||||||
}
|
}
|
||||||
target:
|
target:
|
||||||
{
|
|
||||||
executable: "../raddebugger_exemplar/build/raddbg.exe"
|
|
||||||
working_directory: "../raddebugger"
|
|
||||||
arguments: "--user:C:/devel/raddebugger/build/raddbg_test.user --project:C:/devel/raddebugger/build/raddbg_test.project"
|
|
||||||
debug_subprocesses: 0
|
|
||||||
}
|
|
||||||
target:
|
|
||||||
{
|
{
|
||||||
executable: "build/mule_main.exe"
|
executable: "build/mule_main.exe"
|
||||||
working_directory: build
|
working_directory: build
|
||||||
@@ -37,32 +30,3 @@ target:
|
|||||||
working_directory: build
|
working_directory: build
|
||||||
arguments: "--rdi raddbg"
|
arguments: "--rdi raddbg"
|
||||||
}
|
}
|
||||||
target:
|
|
||||||
{
|
|
||||||
executable: "build/debugstringperf.exe"
|
|
||||||
working_directory: build
|
|
||||||
}
|
|
||||||
target:
|
|
||||||
{
|
|
||||||
executable: "build/radbin.exe"
|
|
||||||
working_directory: build
|
|
||||||
arguments: "--rdi raddbg.exe --thread_count=1"
|
|
||||||
}
|
|
||||||
target:
|
|
||||||
{
|
|
||||||
executable: "build/raddbg.exe"
|
|
||||||
working_directory: build
|
|
||||||
arguments: "--bin --quiet --rdi --out:C:/devel/raddebugger_stable/build/radbin.rdi --thread_count:1 C:/devel/raddebugger_stable/build/radbin.exe"
|
|
||||||
}
|
|
||||||
target:
|
|
||||||
{
|
|
||||||
executable: "build/raddbg.exe"
|
|
||||||
working_directory: build
|
|
||||||
arguments: "--bin --rdi C:\\SymbolCache\\ntdll.pdb\\180BF1B90AA75697D0EFEA5E5630AC7E1\\ntdll.pdb --thread_count=1"
|
|
||||||
}
|
|
||||||
target:
|
|
||||||
{
|
|
||||||
executable: "build/raddbg.exe"
|
|
||||||
working_directory: build
|
|
||||||
arguments: "--bin --rdi --thread_count=1 C:/SymbolCache/kernel32.pdb/E02F64ED8DA50EC6E7691C0AC0BC25781/kernel32.pdb"
|
|
||||||
}
|
|
||||||
|
|||||||
+15
-1
@@ -6,6 +6,10 @@
|
|||||||
** stepping, breakpoints, evaluation, cross-module calls.
|
** stepping, breakpoints, evaluation, cross-module calls.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#if defined(__clang__)
|
||||||
|
#define _ALLOW_COMPILER_AND_STL_VERSION_MISMATCH 1
|
||||||
|
#endif
|
||||||
|
|
||||||
#if _WIN32 && _DEBUG
|
#if _WIN32 && _DEBUG
|
||||||
#pragma comment(linker, "/nodefaultlib:libcmt")
|
#pragma comment(linker, "/nodefaultlib:libcmt")
|
||||||
#pragma comment(lib, "libcmtd")
|
#pragma comment(lib, "libcmtd")
|
||||||
@@ -2363,7 +2367,8 @@ overloaded_function(int x){
|
|||||||
// NOTE(allen): Control Flow Stepping
|
// NOTE(allen): Control Flow Stepping
|
||||||
|
|
||||||
static void
|
static void
|
||||||
control_flow_stepping_tests(void){
|
control_flow_stepping_tests(void)
|
||||||
|
{
|
||||||
{
|
{
|
||||||
int a = 1;
|
int a = 1;
|
||||||
if (a < 1){
|
if (a < 1){
|
||||||
@@ -2532,6 +2537,15 @@ control_flow_stepping_tests(void){
|
|||||||
} while (i < 10);
|
} while (i < 10);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(__clang__)
|
||||||
|
for (int i = 0; i < 1;
|
||||||
|
++i, ({ goto exit; }))
|
||||||
|
{
|
||||||
|
int x = 0;
|
||||||
|
}
|
||||||
|
exit:;
|
||||||
|
#endif
|
||||||
|
|
||||||
{
|
{
|
||||||
int i = 17;
|
int i = 17;
|
||||||
|
|
||||||
|
|||||||
@@ -13059,6 +13059,7 @@ rd_frame(void)
|
|||||||
RDI_Symbol *procedure = rdi_procedure_from_voff(rdi, voff);
|
RDI_Symbol *procedure = rdi_procedure_from_voff(rdi, voff);
|
||||||
String8 name = fully_qualified_str8_from_rdi_symbol(scratch.arena, rdi, procedure);
|
String8 name = fully_qualified_str8_from_rdi_symbol(scratch.arena, rdi, procedure);
|
||||||
name = escaped_from_raw_str8(scratch.arena, name);
|
name = escaped_from_raw_str8(scratch.arena, name);
|
||||||
|
str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " ip_module: \"%S\"\n", str8_skip_last_slash(module->string));
|
||||||
str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " ip_voff: 0x%I64x\n", voff);
|
str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " ip_voff: 0x%I64x\n", voff);
|
||||||
str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " ip_voff_symbol: \"%S\"\n", name);
|
str8_list_pushf(rd_state->cmd_output_arena, &rd_state->cmd_outputs, " ip_voff_symbol: \"%S\"\n", name);
|
||||||
access_close(access);
|
access_close(access);
|
||||||
|
|||||||
@@ -181,15 +181,20 @@ rd_test__stepping_regressions(Arena *arena, TestCtx *ctx, String8 target_binary,
|
|||||||
// rjf: if we are ready for the next operation, then accumulate deterministic log info
|
// rjf: if we are ready for the next operation, then accumulate deterministic log info
|
||||||
if(ready_for_next_operation)
|
if(ready_for_next_operation)
|
||||||
{
|
{
|
||||||
MD_Node *lines = md_child_from_string(state, s("lines"), 0);
|
MD_Node *ip_module = md_child_from_string(state, s("ip_module"), 0);
|
||||||
MD_Node *ip_voff = md_child_from_string(state, s("ip_voff"), 0);
|
String8 ip_module_name = ip_module->first->string;
|
||||||
MD_Node *ip_voff_symbol = md_child_from_string(state, s("ip_voff_symbol"), 0);
|
if(str8_match(str8_chop_last_dot(ip_module_name), target_binary, 0))
|
||||||
String8 lines_dump = md_string_from_tree(scratch.arena, lines);
|
{
|
||||||
String8 ip_voff_dump = md_string_from_tree(scratch.arena, ip_voff);
|
MD_Node *lines = md_child_from_string(state, s("lines"), 0);
|
||||||
String8 ip_voff_symbol_dump = md_string_from_tree(scratch.arena, ip_voff_symbol);
|
MD_Node *ip_voff = md_child_from_string(state, s("ip_voff"), 0);
|
||||||
str8_list_push(scratch.arena, &test_log_strings, lines_dump);
|
MD_Node *ip_voff_symbol = md_child_from_string(state, s("ip_voff_symbol"), 0);
|
||||||
str8_list_push(scratch.arena, &test_log_strings, ip_voff_dump);
|
String8 lines_dump = md_string_from_tree(scratch.arena, lines);
|
||||||
str8_list_push(scratch.arena, &test_log_strings, ip_voff_symbol_dump);
|
String8 ip_voff_dump = md_string_from_tree(scratch.arena, ip_voff);
|
||||||
|
String8 ip_voff_symbol_dump = md_string_from_tree(scratch.arena, ip_voff_symbol);
|
||||||
|
str8_list_push(scratch.arena, &test_log_strings, lines_dump);
|
||||||
|
str8_list_push(scratch.arena, &test_log_strings, ip_voff_dump);
|
||||||
|
str8_list_push(scratch.arena, &test_log_strings, ip_voff_symbol_dump);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// rjf: are we without line info? -> step out
|
// rjf: are we without line info? -> step out
|
||||||
|
|||||||
@@ -33,6 +33,8 @@
|
|||||||
#include "mdesk/mdesk.h"
|
#include "mdesk/mdesk.h"
|
||||||
#include "metagen/metagen.h"
|
#include "metagen/metagen.h"
|
||||||
#include "window_manager/window_manager_inc.h"
|
#include "window_manager/window_manager_inc.h"
|
||||||
|
#include "http/http_inc.h"
|
||||||
|
#include "symbol_server/symbol_server_inc.h"
|
||||||
#include "config/config_inc.h"
|
#include "config/config_inc.h"
|
||||||
#include "content/content.h"
|
#include "content/content.h"
|
||||||
#include "file_stream/file_stream.h"
|
#include "file_stream/file_stream.h"
|
||||||
@@ -111,6 +113,8 @@
|
|||||||
#include "mdesk/mdesk.c"
|
#include "mdesk/mdesk.c"
|
||||||
#include "metagen/metagen.c"
|
#include "metagen/metagen.c"
|
||||||
#include "window_manager/window_manager_inc.c"
|
#include "window_manager/window_manager_inc.c"
|
||||||
|
#include "http/http_inc.c"
|
||||||
|
#include "symbol_server/symbol_server_inc.c"
|
||||||
#include "config/config_inc.c"
|
#include "config/config_inc.c"
|
||||||
#include "content/content.c"
|
#include "content/content.c"
|
||||||
#include "file_stream/file_stream.c"
|
#include "file_stream/file_stream.c"
|
||||||
|
|||||||
Reference in New Issue
Block a user