Commit Graph

10024 Commits

Author SHA1 Message Date
Benjamin Kramer eb9165c08f Reduce code duplication.
This also moves strlen out of the mutex scope.

llvm-svn: 106545
2010-06-22 15:28:34 +00:00
Benjamin Kramer 53a61dc531 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.

llvm-svn: 106544
2010-06-22 15:28:29 +00:00
Benjamin Kramer 104819c6eb Move trivial parts of UserID into the header.
llvm-svn: 106535
2010-06-22 10:44:12 +00:00
Benjamin Kramer 466b31e900 Move a bunch of trivial methods into the header. These compile down to 1-2
instructions so it's really profitable to inline them.

llvm-svn: 106450
2010-06-21 19:26:54 +00:00
Benjamin Kramer 1e909fc0b6 Initialize member so GDBRemoteRegisterContext::ReadRegisterBytes doesn't rely on
an unitialized variable.

valgrind_errors -= 1;

llvm-svn: 106418
2010-06-21 14:39:40 +00:00
Benjamin Kramer ae39fc196b Return false from FileSpec::GetPath early instead of making the return value
dependent on the last byte of the buffer, which could be unitialized.

llvm-svn: 106417
2010-06-21 14:36:20 +00:00
Benjamin Kramer e1ce369628 Don't snprintf directly into a std::string, it's undefined behavior per C++03.
This also fixes a bug where we were trying to copy m_string into itself
via a format string. The pointer was invalidated by m_string.resize and
lldb (sometimes) crashed inside vsnprintf.

llvm-svn: 106416
2010-06-21 14:34:03 +00:00
Jim Ingham b01e742af7 Two changes in this checkin. Added a ThreadPlanKind so that I can do some reasoning based on the kind of thread plan
without having to use RTTI.
Removed the ThreadPlanContinue and replaced with a ShouldAutoContinue query that serves the same purpose.  Having to push
another plan to assert that if there's no other indication the target should continue when this plan is popped was flakey
and error prone.  This method is more stable, and fixed problems we were having with thread specific breakpoints.

llvm-svn: 106378
2010-06-19 04:45:32 +00:00
Jim Ingham b2a38a7286 Remember whether a queue or thread name were passed into "breakpoint modify" so we can recognize an empty argument as unsetting the option.
llvm-svn: 106377
2010-06-19 04:35:20 +00:00
Jim Ingham 8dae7f2e8f Remove an include of the deleted CommandObjectStatus.h.
llvm-svn: 106297
2010-06-18 18:17:30 +00:00
Jim Ingham 62b02c61c9 Adding setting thread specific breakpoints by name, ID, index & queue name to the SB interfaces.
llvm-svn: 106268
2010-06-18 01:47:08 +00:00
Jim Ingham 4b9bea87e6 Move the "status" command to "process status" since that's where it belongs. Also make it print "running" if invoked
when the current process is running.

llvm-svn: 106265
2010-06-18 01:23:09 +00:00
Jim Ingham 0136309f5a Change the Breakpoint & BreakpointLocation GetDescription methods so they call the BreakpointOptions::GetDescription rather
than picking bits out of the breakpoint options.  Added BreakpointOptions::GetDescription to do this job.  Some more mucking
around to keep the breakpoint listing from getting too verbose.

llvm-svn: 106262
2010-06-18 01:00:58 +00:00
Jim Ingham ae1c4cf568 Change "breakpoint configure" to "breakpoint modify" so it doesn't collide with "breakpoint command"
Change "breakpoint enable/disable" so changing a breakpoint's state doesn't also overwrite the location states.

llvm-svn: 106261
2010-06-18 00:58:52 +00:00
Owen Anderson 836af6bb36 Fix comment, per Chris' suggestion.
llvm-svn: 106192
2010-06-17 00:51:12 +00:00
Sean Callanan a68c1a2188 Unstick the -r option for the disassemble command.
llvm-svn: 106186
2010-06-17 00:32:05 +00:00
Sean Callanan d50c96a002 Fixed a problem where invalid triples were being passed
into the constructor for the LLVMDisassembler, resulting
in asserts.

llvm-svn: 106160
2010-06-16 22:19:05 +00:00
Owen Anderson c7da5f413b Switch from qsort_r to std::stable_sort for a performance win and improved portability.
llvm-svn: 106116
2010-06-16 17:34:05 +00:00
Jim Ingham 1b54c88cc4 Add a "thread specification" class that specifies thread specific breakpoints by name, index, queue or TID.
Push this through all the breakpoint management code.  Allow this to be set when the breakpoint is created.
Fix the Process classes so that a breakpoint hit that is not for a particular thread is not reported as a 
breakpoint hit event for that thread.
Added a "breakpoint configure" command to allow you to reset any of the thread 
specific options (or the ignore count.)

llvm-svn: 106078
2010-06-16 02:00:15 +00:00
Jim Ingham 40af72e106 Move Args.{cpp,h} and Options.{cpp,h} to Interpreter where they really belong.
llvm-svn: 106034
2010-06-15 19:49:27 +00:00
Jim Ingham 8651121c11 Change the Options parser over to use a mask rather than an ordinal for option sets.
Fixed the Disassemble arguments so you can't specify start address or name in multiple ways.
Fixed the command line input so you can specify the filename without "-f" even if you use other options.

llvm-svn: 106020
2010-06-15 18:47:14 +00:00
Greg Clayton 7a47bd9f02 Move posix specific files into posix subdirectory so they can
be shared with linux.

Updated Xcode project.

llvm-svn: 105928
2010-06-14 04:30:13 +00:00
Greg Clayton 13238c4455 patch from: Jean-Daniel Dupas
BreakpointLocation::GetLoadAddress() does not match the 'StoppointLocation::GetLoadAddress() const' virtual function prototype, and so, does not override the superclass function.

llvm-svn: 105927
2010-06-14 04:18:27 +00:00
Eli Friedman e13a8dbf14 Make include paths work on Linux. ifdef out stuff that isn't relevant to
Linux or doesn't compile on Linux.

llvm-svn: 105923
2010-06-13 19:36:42 +00:00
Eli Friedman adb3502477 Make getopt() use portable to Linux.
llvm-svn: 105922
2010-06-13 19:18:49 +00:00
Eli Friedman 932197d89c Add missing stdio.h include; fix include path for ClangASTContext.h.
llvm-svn: 105921
2010-06-13 19:06:42 +00:00
Greg Clayton 94e5d78888 Updated LLVM/Clang to revision from 2010-06-13T06:00.
llvm-svn: 105918
2010-06-13 17:34:29 +00:00
Eli Friedman 3afb70c85a Fix include paths; please check that this works on Mac.
llvm-svn: 105906
2010-06-13 02:17:17 +00:00
Eli Friedman 3afa33ced6 Remove Mac-specific includes.
llvm-svn: 105905
2010-06-13 02:13:20 +00:00
Greg Clayton 474966a41e I have eliminated RTTI from LLDB!
Also added a shell script build phase that fixes the headers in 
LLDB.framework.

llvm-svn: 105899
2010-06-12 18:59:55 +00:00
Eli Friedman 81ad726f04 Move SharingPtr.h into include/.
llvm-svn: 105896
2010-06-12 18:29:53 +00:00
Greg Clayton ef59f829e4 Switched over to using the new lldb::SharingPtr from Howard Hinnant.
We need to put this in LLDB since we need to vend this in our API
because our public API uses shared pointers to our private objects.

Removed a deprecated file: include/lldb/Host/Types.h

Added the new SharingPtr.cpp/.h files into source/Utility.

Added a shell script build phase that fixes up all headers in the
LLDB.framework.

llvm-svn: 105895
2010-06-12 17:45:57 +00:00
Greg Clayton c9af18a502 Moved files around for linux build. Fixed up Xcode project to
refer to the new locations.

llvm-svn: 105885
2010-06-12 15:43:35 +00:00
Greg Clayton 1ba811dd81 Fixed an issue with the new DW_TAG_ptr_to_member_type changes where the clang type that was being created was using the pointee_type for both the class and the member pointer.
llvm-svn: 105883
2010-06-12 15:33:14 +00:00
Greg Clayton 9b81a3146f Anders Carlsson patch for member pointers. Thanks Anders.
llvm-svn: 105868
2010-06-12 01:20:30 +00:00
Greg Clayton e20855403b Fixed the build after recent header changes.
Fixed an extra include path in the Xcode project.

llvm-svn: 105867
2010-06-12 01:12:23 +00:00
Greg Clayton b852a111d0 Avoid calls to memcpy.
llvm-svn: 105866
2010-06-12 01:03:17 +00:00
Jason Molenda 3041cbd2b2 Include mach/mach_types.h in two files to adjust for their
removal from lldb-types.h

llvm-svn: 105865
2010-06-12 00:43:41 +00:00
Jason Molenda 743e86ae3d Applied PluginManager.cpp patch from Jean-Daniel Dupas.
Fixed problem Jean-Daniel Dupas found in ProcessGDBRemote.cpp.

llvm-svn: 105857
2010-06-11 23:44:18 +00:00
Owen Anderson 571e864e84 Revert my previous patch. Apparently the code-size impact of std::sort isn't acceptable.
llvm-svn: 105835
2010-06-11 21:07:26 +00:00
Owen Anderson dc433611a2 Replace qsort_r with std::sort. This gets rid of a lot of portability
ickiness, and is cleaner to boot.

I'm fairly confident that I converted the comparator over properly,
and what testing I could figure out how to run seemed to pass, but it
would be great if someone in the know could check behind me.

llvm-svn: 105834
2010-06-11 20:52:57 +00:00
Eli Friedman a82475ab74 Fix includes.
llvm-svn: 105814
2010-06-11 04:54:56 +00:00
Eli Friedman 6abb634bcf Use st_mtime instead of st_mtimespec for portability.
llvm-svn: 105813
2010-06-11 04:52:22 +00:00
Eli Friedman 8d860d557f Fix TimeValue::Offset* to take uint64_t
llvm-svn: 105812
2010-06-11 04:50:35 +00:00
Eli Friedman e01b70bf30 Use Host::GetCurrentThreadID() instead of mach_thread_self().
llvm-svn: 105811
2010-06-11 04:29:29 +00:00
Eli Friedman 50fac2f7b5 Add missing include; fix missed constant to use llvm::MachO.
llvm-svn: 105810
2010-06-11 04:26:08 +00:00
Greg Clayton 41f923275e Made lldb_private::ArchSpec more generic so that it can take a mach-o cpu
type and sub-type, or an ELF e_machine value. Also added a generic CPU type
to the arch spec class so we can have a single arch definition that the LLDB
core code can use. Previously a lot of places in the code were using the
mach-o definitions from a macosx header file. 

Switches over to using "llvm/Support/MachO.h" for the llvm::MachO::XXX for the
CPU types and sub types for mach-o ArchSpecs. Added "llvm/Support/ELF.h" so 
we can use the "llvm::ELF::XXX" defines for the ELF ArchSpecs.

Got rid of all CPU_TYPE_ and CPU_SUBTYPE_ defines that were previously being
used in LLDB.

llvm-svn: 105806
2010-06-11 03:25:34 +00:00
Greg Clayton ae5680be64 Fixed an issue where a return value wasn't being returned from Symtab::CompareSymbolValueByIndexLinux.
llvm-svn: 105802
2010-06-11 00:51:46 +00:00
Eli Friedman 5b405edd5e Remove dependency on Mac-specific libkern/OSByteOrder.h.
llvm-svn: 105799
2010-06-10 23:56:16 +00:00
Eli Friedman 6eb685c264 Make Error.h and Error.cpp compile on Linux.
llvm-svn: 105798
2010-06-10 23:45:58 +00:00
Eli Friedman a92e332b09 Make qsort_r usage "portable". Why does a function which seems so simple
have to be so complicated?

llvm-svn: 105797
2010-06-10 23:36:31 +00:00
Eli Friedman 04e6ba7fcc Expand AR_EFMT1 because the define is not present on Linux (and possibly
other systems).

llvm-svn: 105782
2010-06-10 04:56:00 +00:00
Eli Friedman 048ceecb15 Add missing include.
llvm-svn: 105781
2010-06-10 04:51:35 +00:00
Eli Friedman 8c3ad54bc2 Remove unused uuid_t constructor for lldb_private::UUID.
llvm-svn: 105780
2010-06-10 03:08:05 +00:00
Jason Molenda 9ec89fde2f Correctly handle the case where dyld has slid.
llvm-svn: 105772
2010-06-10 01:21:21 +00:00
Eli Friedman 0d3b18dd6f Fix include path.
llvm-svn: 105757
2010-06-09 22:08:29 +00:00
Jason Molenda b1823404c3 Committing patch from Joseph Ranieri to handle 'exit()' the same
as 'quit()' in the python script environment.

llvm-svn: 105756
2010-06-09 21:56:00 +00:00
Jason Molenda f7a4715fdb SymbolVendor.mm doesn't seem to have any Objective-C in it;
move to SymbolVendor.cpp.  Xcode project file updated.

llvm-svn: 105755
2010-06-09 21:48:33 +00:00
Jason Molenda a34a0c61ae Move source/Utility/PseudoTerminal.h into include/lldb/Utility.
The top of the header file seems to indicate that this was
intended to be over at include/lldb/Core but we should be in line
with the .cpp file's location so it's include/lldb/Utility for now.

llvm-svn: 105753
2010-06-09 21:28:42 +00:00
Greg Clayton eee5f1fdac For header includes we are currently trying to adopt some aspects of the
Google C++ coding guidelines where includes are done as:

1 - the header file for the current source file
2 - C includes
3 - C++ includes
4 - external project includes
5 - current project includes

llvm-svn: 105748
2010-06-09 19:36:54 +00:00
Eli Friedman d0edb5b4a8 Don't include Python.h in the shared header.
llvm-svn: 105737
2010-06-09 18:31:38 +00:00
Eli Friedman 61249085fd Add necessary includes. Remove unnecessary assignments to sin_len.
llvm-svn: 105736
2010-06-09 18:23:21 +00:00
Eli Friedman 5661f9202b Remove unused class.
llvm-svn: 105724
2010-06-09 10:59:23 +00:00
Eli Friedman b776ee6f17 A few more warning/error fixes.
llvm-svn: 105723
2010-06-09 10:16:07 +00:00
Eli Friedman 53444d394f A few more minor fixes.
llvm-svn: 105721
2010-06-09 09:53:11 +00:00
Eli Friedman f254f8b226 Add a couple missing includes.
llvm-svn: 105719
2010-06-09 09:38:08 +00:00
Eli Friedman 48862d4571 Minor warning/error fixes.
llvm-svn: 105718
2010-06-09 09:32:42 +00:00
Eli Friedman 889669769f Add missing includes.
llvm-svn: 105712
2010-06-09 08:50:27 +00:00
Eli Friedman 9c68da971f Per surrounding style, use stdarg.h instead of cstdio, etc.
llvm-svn: 105711
2010-06-09 08:46:23 +00:00
Eli Friedman 59817b1d56 More minor build fixes.
llvm-svn: 105706
2010-06-09 07:57:51 +00:00
Eli Friedman ebb81beb1e Add missing include.
llvm-svn: 105705
2010-06-09 07:47:43 +00:00
Eli Friedman 4c5de69951 And some more include line fixes.
llvm-svn: 105704
2010-06-09 07:44:37 +00:00
Eli Friedman ca93cc1d51 Fix a bunch more include lines.
llvm-svn: 105702
2010-06-09 07:37:52 +00:00
Chris Lattner 30fdc8d841 Initial checkin of lldb code from internal Apple repo.
llvm-svn: 105619
2010-06-08 16:52:24 +00:00