diff options
author | Bryan Cantrill <bryan@joyent.com> | 2014-10-28 14:23:52 +0000 |
---|---|---|
committer | Bryan Cantrill <bryan@joyent.com> | 2014-10-28 14:23:52 +0000 |
commit | ffdeaf1b981384455e23e8ad553460daadbd2b7f (patch) | |
tree | 84dc971148acb104c0531cf8d4c06743c7481387 | |
parent | 2ed0a4ca564eaed362a0372a13944a293168193c (diff) | |
download | illumos-joyent-ffdeaf1b981384455e23e8ad553460daadbd2b7f.tar.gz |
OS-3478 lx brand: mdb(1) can't load C++ demangler
-rw-r--r-- | usr/src/cmd/mdb/common/mdb/mdb_demangle.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/usr/src/cmd/mdb/common/mdb/mdb_demangle.c b/usr/src/cmd/mdb/common/mdb/mdb_demangle.c index 7ab7d19716..27c8a1d21d 100644 --- a/usr/src/cmd/mdb/common/mdb/mdb_demangle.c +++ b/usr/src/cmd/mdb/common/mdb/mdb_demangle.c @@ -24,7 +24,9 @@ * Use is subject to license terms. */ -#pragma ident "%Z%%M% %I% %E% SMI" +/* + * Copyright (c) 2014, Joyent, Inc. All rights reserved. + */ #include <mdb/mdb_modapi.h> #include <mdb/mdb_demangle.h> @@ -263,7 +265,8 @@ int cmd_demangle(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv) { mdb_demangler_t *dmp = mdb.m_demangler; - const char *path = LIB_DEMANGLE; + const char *path; + char buf[MAXPATHLEN]; if (argc > 1 || (argc > 0 && argv->a_type != MDB_TYPE_STRING)) return (DCMD_USAGE); @@ -272,6 +275,10 @@ cmd_demangle(uintptr_t addr, uint_t flags, int argc, const mdb_arg_t *argv) if (dmp != NULL) mdb_dem_unload(mdb.m_demangler); path = argv->a_un.a_str; + } else { + (void) snprintf(buf, MAXPATHLEN, + "%s/%s", mdb.m_root, LIB_DEMANGLE); + path = buf; } if (dmp != NULL && argc == 0 && !(mdb.m_flags & MDB_FL_DEMANGLE)) { |