History log of /external/lldb/source/Core/Mangled.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
5577ce043b8d766d5a12ed12a1223385eadb6da1 03-Jul-2013 Jason Molenda <jmolenda@apple.com> Remove lldb's custom copy of the C++ demangler, used only on Mac
OS X. Testsuite shows no change in results using the system runtime's
demangler.
<rdar://problem/12029914>


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@185510 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Core/Mangled.cpp
ae8c27bd66a5c8aaafff262209abd09095808b07 31-May-2013 Daniel Malea <daniel.malea@intel.com> Use C-style include to match style in file (instead of C++ style)
- as per review comment from Dimitry Andric!




git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@183039 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Core/Mangled.cpp
b05e4bb17ebcadbc4fd8ccbf4c5461e4f390bd66 31-May-2013 Daniel Malea <daniel.malea@intel.com> FreeBSD cmake build fixes.
- missing #include <cstdlib> in Mangled.cpp
- missing include dirs in FreeBSD CMakeLists.txt

Patch by Ed Maste!



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@183032 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Core/Mangled.cpp
4e17f306c144419eb4ec2c14e17a11dca89895b2 11-Sep-2012 Filipe Cabecinhas <me@filcab.net> Make size_t known before including cxxabi.h (FreeBSD fix)

git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@163640 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Core/Mangled.cpp
e8c020c0b9a19ea088c473d502e8ffa7236e7d1f 06-Aug-2012 Greg Clayton <gclayton@apple.com> <rdar://problem/12029894>

Use the built in demangler for Apple builds for now which has needed demangling fixes, and make the cxa_demangle.cpp use rtti in the Xcode project settings as it requires it be enabled.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@161323 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Core/Mangled.cpp
5016669dbf02ab7e7f94ba5dae942e731ef00d0e 04-Aug-2012 Johnny Chen <johnny.chen@apple.com> Pull in cxa_demangle.cpp/.h from llvm's libcxxabi project. Change the namespace to lldb_cxxabiv1 for the time being.
Mangled.cpp is not wired in to call it yet.


git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@161293 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Core/Mangled.cpp
c02400422d5e644a2a486bce5517d46d435a3f02 19-Jul-2012 Greg Clayton <gclayton@apple.com> Cleaned up the lldb_private::Mangled class to get rid of the tokenizing code that has bit rotted and isn't being used. Also cleaned up the API to the "lldb_private::Mangled" to always take "const ConstString &" arguments instead of both "const ConstString &" and "const char *".



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@160466 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Core/Mangled.cpp
9b98ffdf151138af70f184c8b5b0b32c8e5c3e31 18-Jul-2012 Greg Clayton <gclayton@apple.com> <rdar://problem/10998370>

Improved the error message when we can find a function in the current program by printing the demangled name.

Also added the ability to create lldb_private::Mangled instances with a ConstString when we already have a ConstString for a mangled or demangled name. Also added the ability to call SetValue with a ConstString and also without a boolean to indicate if the string is mangled where we will now auto-detect if the string is mangled.




git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@160450 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Core/Mangled.cpp
3f69eacbb218a37390822c89d3675bd740590382 03-Dec-2011 Greg Clayton <gclayton@apple.com> Added new symbol types for Objective C classes, metaclasses, and ivars. Each
object file can correctly make these symbols which will abstract us from the
file format and ABI and we can then ask for the objective C class symbol for
a class and find out which object file it was defined in.



git-svn-id: https://llvm.org/svn/llvm-project/lldb/trunk@145744 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Core/Mangled.cpp
9d479442c0a521983328faa799883e967a6d5252 10-Jun-2011 Greg Clayton <gclayton@apple.com> I modified the StringMap that was being used to unique our debugger C strings
to have the value for the map be a "const char *" instead of an unused uint32_t.
This allows us to store the uniqued mangled/demangled counterpart in this map
for mangled names. This also speeds up the mangled/demangled counterpart lookup
that used to be maintained in a STL map by having direct access to the data.
If we eventually need to associate other strings to strings to more data, we
can make the value of the StringMap have a more complex value.

Added the start of a history source and history event class. It isn't being
used by anything yet, but might be shortly.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@132813 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Core/Mangled.cpp
17cd995147b3324680d845b3fc897febcc23c9e0 22-Apr-2011 Greg Clayton <gclayton@apple.com> Did some work on the "register read" command to only show the first register
set by default when dumping registers. If you want to see all of the register
sets you can use the "--all" option:

(lldb) register read --all

If you want to just see some register sets, you can currently specify them
by index:

(lldb) register read --set 0 --set 2

We need to get shorter register set names soon so we can specify the register
sets by name without having to type too much. I will make this change soon.

You can also have any integer encoded registers resolve the address values
back to any code or data from the object files using the "--lookup" option.
Below is sample output when stopped in the libc function "puts" with some
const strings in registers:

Process 8973 stopped
* thread #1: tid = 0x2c03, 0x00007fff828fa30f libSystem.B.dylib`puts + 1, stop reason = instruction step into
frame #0: 0x00007fff828fa30f libSystem.B.dylib`puts + 1
(lldb) register read --lookup
General Purpose Registers:
rax = 0x0000000100000e98 "----------------------------------------------------------------------"
rbx = 0x0000000000000000
rcx = 0x0000000000000001
rdx = 0x0000000000000000
rdi = 0x0000000100000e98 "----------------------------------------------------------------------"
rsi = 0x0000000100800000
rbp = 0x00007fff5fbff710
rsp = 0x00007fff5fbff280
r8 = 0x0000000000000040
r9 = 0x0000000000000000
r10 = 0x0000000000000000
r11 = 0x0000000000000246
r12 = 0x0000000000000000
r13 = 0x0000000000000000
r14 = 0x0000000000000000
r15 = 0x0000000000000000
rip = 0x00007fff828fa30f libSystem.B.dylib`puts + 1
rflags = 0x0000000000000246
cs = 0x0000000000000027
fs = 0x0000000000000000
gs = 0x0000000000000000

As we can see, we see two constant strings and the PC (register "rip") is
showing the code it resolves to.

I fixed the register "--format" option to work as expected.

Added a setting to disable skipping the function prologue when setting
breakpoints as a target settings variable:

(lldb) settings set target.skip-prologue false

Updated the user settings controller boolean value handler funciton to be able
to take the default value so it can correctly respond to the eVarSetOperationClear
operation.

Did some usability work on the OptionValue classes.

Fixed the "image lookup" command to correctly respond to the "--verbose"
option and display the detailed symbol context information when looking up
line table entries and functions by name. This previously was only working
for address lookups.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@129977 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Core/Mangled.cpp
5d1ff1451fedb9c89b17ba5cf9cfccc73e145513 15-Dec-2010 Jason Molenda <jmolenda@apple.com> Move the demangle-failed indication out a bit so other failing cases
also get marked as having failed (so we don't try to demangle the
same symbol multiple times).



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@121835 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Core/Mangled.cpp
6983cda4216e0e8d69dc821cfd65af3b6c521b1f 15-Dec-2010 Jason Molenda <jmolenda@apple.com> Fix a crash on some platforms where a dSYM for a system library lists a DW_AT_mips_linkage_name for
a non-mangled function - we pass the non mangled string down through abi::__cxa_demangle and it
crashes. Usually passing non mangled strings to abi::__cxa_demangle works out fine but not
always, apparently.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@121834 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Core/Mangled.cpp
3bc52d0a96c18be384028a90914f534ac252fbe4 14-Nov-2010 Greg Clayton <gclayton@apple.com> Just like functions can have a basename and a mangled/demangled name, variable
can too. So now the lldb_private::Variable class has support for this.

Variables now have support for having a basename ("i"), and a mangled name
("_ZN12_GLOBAL__N_11iE"), and a demangled name ("(anonymous namespace)::i").

Nowwhen searching for a variable by name, users might enter the fully qualified
name, or just the basename. So new test functions were added to the Variable
and Mangled classes as:

bool NameMatches (const ConstString &name);
bool NameMatches (const RegularExpression &regex);

I also modified "ClangExpressionDeclMap::FindVariableInScope" to also search
for global variables that are not in the current file scope by first starting
with the current module, then moving on to all modules.

Fixed an issue in the DWARF parser that could cause a varaible to get parsed
more than once. Now, once we have parsed a VariableSP for a DIE, we cache
the result even if a variable wasn't made so we don't do any re-parsing. Some
DW_TAG_variable DIEs don't have locations, or are missing vital info that
stops a debugger from being able to display anything for it, we parse a NULL
variable shared pointer for these DIEs so we don't keep trying to reparse it.




git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@119085 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Core/Mangled.cpp
beea05256239bec8be05786fbd2a432bdc11b5da 15-Sep-2010 Jim Ingham <jingham@apple.com> The Mangled name comparision should prefer the mangled name.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@113908 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Core/Mangled.cpp
0298782b17345e3f30c3fc9d6bc1fd8aec4ec8a7 15-Sep-2010 Greg Clayton <gclayton@apple.com> Fixed a case where Mangled::GetName(...) could return a invalid demangled name when one could be calculated.

git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@113900 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Core/Mangled.cpp
251de2acc7c269a1168ce906a269f4ab1b999f09 15-Sep-2010 Greg Clayton <gclayton@apple.com> Fixed a compiler warning.

git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@113899 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Core/Mangled.cpp
17454cfc6a757305a7d9d4c31313c38981b57b01 15-Sep-2010 Jim Ingham <jingham@apple.com> Add the ability for "ThreadPlanRunToAddress" to run to multiple addresses.
Added the ability to specify a preference for mangled or demangled to Mangled::GetName.
Changed one place where mangled was prefered in GetName.
The Dynamic loader should look up the target of a stub by mangled name if it exists.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@113869 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Core/Mangled.cpp
e33bdd301b775bbcc4526d409bc37b435c02a843 04-Sep-2010 Greg Clayton <gclayton@apple.com> Improved name demangling performance by 20% on darwin.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@113032 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Core/Mangled.cpp
99e79dfa17a063bb7a4b05fb9e0981978cfee19d 02-Jul-2010 Greg Clayton <gclayton@apple.com> Removed the thread specific data that was being used for demangling since
removing it didn't cause any performance loss, and leaks were showing up
when run under instruments when we tried to re-use the buffer. We are now leak
free and still just as performant.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@107453 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Core/Mangled.cpp
86c73c1d5fa79d5eb6bd278427a3fe2a37f73b98 22-Jun-2010 Benjamin Kramer <benny.kra@googlemail.com> Turns out __cxa_demangle returns the size of the buffer instead of the size of
the demangled name. Fall back to strlen.

git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@106579 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Core/Mangled.cpp
7d25348cb402972997bf0f5feca26bb3167ca8e1 22-Jun-2010 Benjamin Kramer <benny.kra@googlemail.com> Ensure GetDemangledName's thread safety by making the demangle buffer thread specific.

I'm not sure when multiple threads enter this method but a race-condition
causing a crash in malloc can be reproduced with this little script:

echo file $(which lldb) > cmd
echo "run\nbreak set -n main\nrun\nexit" >> cmd
lldb -s cmd

It may need a few runs before it crashes though.

git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@106544 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Core/Mangled.cpp
a408326b499c3ffdfed2378738598c4ad0cf745f 09-Jun-2010 Eli Friedman <eli.friedman@gmail.com> Add missing includes.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@105712 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Core/Mangled.cpp
24943d2ee8bfaa7cf5893e4709143924157a5c1e 08-Jun-2010 Chris Lattner <sabre@nondot.org> Initial checkin of lldb code from internal Apple repo.


git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@105619 91177308-0d34-0410-b5e6-96231b3b80d8
/external/lldb/source/Core/Mangled.cpp