plug in dwarf converter to radbin; hook up to both rdi generation & breakpad generation; radbin exe -> pdb / elf -> dwarf inferences; cleanup / unification passes

This commit is contained in:
Ryan Fleury
2025-06-10 08:53:57 -07:00
parent 638adad93b
commit 49de09883e
29 changed files with 1524 additions and 1019 deletions
+12 -8
View File
@@ -26,6 +26,10 @@ bucket_list_pop(BucketList *list)
////////////////////////////////
#define XXH_STATIC_LINKING_ONLY
#include "third_party/xxHash/xxhash.c"
#include "third_party/xxHash/xxhash.h"
internal U64
hash_table_hasher(String8 string)
{
@@ -47,7 +51,7 @@ hash_table_purge(HashTable *ht)
{
// reset key count
ht->count = 0;
// concat buckets
for (U64 ibucket = 0; ibucket < ht->cap; ++ibucket) {
bucket_list_concat_in_place(&ht->free_buckets, &ht->buckets[ibucket]);
@@ -339,20 +343,20 @@ internal U64Array
remove_duplicates_u64_array(Arena *arena, U64Array arr)
{
Temp scratch = scratch_begin(&arena, 1);
HashTable *ht = hash_table_init(scratch.arena, ((U64)(F64)arr.count * 0.5));
for (U64 i = 0; i < arr.count; ++i) {
KeyValuePair *is_present = hash_table_search_u64(ht, arr.v[i]);
if (!is_present) {
hash_table_push_u64_raw(scratch.arena, ht, arr.v[i], 0);
}
}
U64Array result = {0};
result.count = ht->count;
result.v = keys_from_hash_table_u64(arena, ht);
scratch_end(scratch);
return result;
}
@@ -361,10 +365,10 @@ internal String8List
remove_duplicates_str8_list(Arena *arena, String8List list)
{
Temp scratch = scratch_begin(&arena, 1);
String8List result = {0};
HashTable *ht = hash_table_init(scratch.arena, list.node_count);
for (String8Node *node = list.first; node != 0; node = node->next) {
KeyValuePair *is_present = hash_table_search_string(ht, node->string);
if (!is_present) {
@@ -372,7 +376,7 @@ remove_duplicates_str8_list(Arena *arena, String8List list)
str8_list_push(arena, &result, node->string);
}
}
scratch_end(scratch);
return result;
}