Print this page
3992 mdb ::stacks segv
*** 19,28 ****
--- 19,29 ----
* CDDL HEADER END
*/
/*
* Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2013, Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
*/
#include <mdb/mdb_modapi.h>
#include <mdb/mdb_ctf.h>
*** 338,347 ****
--- 339,350 ----
}
if (stacks_array != NULL)
mdb_free(stacks_array,
stacks_array_size * sizeof (*stacks_array));
+ mdb_free(stacks_hash, STACKS_HSIZE * sizeof (*stacks_hash));
+
} else if (stacks_array != NULL) {
for (idx = 0; idx < stacks_array_size; idx++) {
if ((cur = stacks_array[idx]) != NULL) {
while ((next = cur->se_dup) != NULL) {
cur->se_dup = next->se_dup;
*** 358,367 ****
--- 361,372 ----
stacks_findstack_cleanup();
stacks_array_size = 0;
stacks_state = STACKS_STATE_CLEAN;
+ stacks_hash = NULL;
+ stacks_array = NULL;
}
/*ARGSUSED*/
int
stacks_thread_cb(uintptr_t addr, const void *ignored, void *cbarg)