Changeset 2187
- Timestamp:
- 28/05/2008 18:04:18 (4 years ago)
- File:
-
- 1 edited
-
box/trunk/lib/common/Utils.cpp (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
box/trunk/lib/common/Utils.cpp
r2178 r2187 78 78 79 79 BOX_TRACE("Obtained " << size << " stack frames."); 80 81 size_t output_len = 256; 82 char* output_buf = new char [output_len]; 80 83 81 84 for(i = 0; i < size; i++) … … 93 96 end - start - 1); 94 97 95 size_t len = 256;96 std::auto_ptr<char> output_buf(new char [len]);97 98 int status; 98 99 99 if (abi::__cxa_demangle(mangled_func.c_str(), output_buf.get(), 100 &len, &status) == NULL) 100 char* result = abi::__cxa_demangle(mangled_func.c_str(), 101 output_buf, &output_len, &status); 102 103 if (result == NULL) 101 104 { 102 105 if (status == 0) … … 113 116 else if (status == -2) 114 117 { 118 // Probably non-C++ name, don't demangle 115 119 /* 116 120 BOX_WARNING("Demangle failed with " … … 134 138 else 135 139 { 140 output_buf = result; 136 141 output_frame = mangled_frame.substr(0, start + 1) + 137 142 // std::string(output_buf.get()) + 138 output_buf.get() + 139 mangled_frame.substr(end); 143 result + mangled_frame.substr(end); 140 144 } 141 145 #endif // HAVE_CXXABI_H … … 143 147 BOX_TRACE("Stack frame " << i << ": " << output_frame); 144 148 } 149 150 delete [] output_buf; 145 151 146 152 #include "MemLeakFindOff.h"
Note: See TracChangeset
for help on using the changeset viewer.
