util: Make refcnt and symbol debuggers work on windows
Signed-off-by: Jakob Bornecrantz <jakob@vmware.com>
This commit is contained in:
@@ -43,7 +43,8 @@ int debug_refcnt_state;
|
||||
struct os_stream* stream;
|
||||
|
||||
/* TODO: maybe move this serial machinery to a stand-alone module and expose it? */
|
||||
static pipe_mutex serials_mutex;
|
||||
pipe_static_mutex(serials_mutex);
|
||||
|
||||
static struct util_hash_table* serials_hash;
|
||||
static unsigned serials_last;
|
||||
|
||||
@@ -66,6 +67,15 @@ static boolean debug_serial(void* p, unsigned* pserial)
|
||||
{
|
||||
unsigned serial;
|
||||
boolean found = TRUE;
|
||||
#ifdef PIPE_SUBSYSTEM_WINDOWS_USER
|
||||
static boolean first = TRUE;
|
||||
|
||||
if (first) {
|
||||
pipe_mutex_init(serials_mutex);
|
||||
first = FALSE;
|
||||
}
|
||||
#endif
|
||||
|
||||
pipe_mutex_lock(serials_mutex);
|
||||
if(!serials_hash)
|
||||
serials_hash = util_hash_table_create(hash_ptr, compare_ptr);
|
||||
|
||||
@@ -196,7 +196,7 @@ debug_symbol_print(const void *addr)
|
||||
}
|
||||
|
||||
struct util_hash_table* symbols_hash;
|
||||
pipe_mutex symbols_mutex;
|
||||
pipe_static_mutex(symbols_mutex);
|
||||
|
||||
static unsigned hash_ptr(void* p)
|
||||
{
|
||||
@@ -217,6 +217,15 @@ const char*
|
||||
debug_symbol_name_cached(const void *addr)
|
||||
{
|
||||
const char* name;
|
||||
#ifdef PIPE_SUBSYSTEM_WINDOWS_USER
|
||||
static boolean first = TRUE;
|
||||
|
||||
if (first) {
|
||||
pipe_mutex_init(symbols_mutex);
|
||||
first = FALSE;
|
||||
}
|
||||
#endif
|
||||
|
||||
pipe_mutex_lock(symbols_mutex);
|
||||
if(!symbols_hash)
|
||||
symbols_hash = util_hash_table_create(hash_ptr, compare_ptr);
|
||||
|
||||
Reference in New Issue
Block a user