Jim Ingham
5c93906cbf
Fix the test properly now that SBValue::GetValueAsUnsigned works for bitfields.
...
llvm-svn: 148280
2012-01-17 02:17:45 +00:00
Johnny Chen
2e275c9e6a
Add usage example of specifying the full path to the compiler used while building the debuggees for running the test suite.
...
llvm-svn: 148273
2012-01-17 01:26:06 +00:00
Johnny Chen
64a7e741b0
Add usage example from test/functionalities/archives/Makefile.
...
llvm-svn: 148269
2012-01-17 00:58:08 +00:00
Greg Clayton
d5e4edbfbf
More improvements to not follow child processes and improved logging that always shows the process info.
...
llvm-svn: 148257
2012-01-16 22:21:29 +00:00
Greg Clayton
907018f0ad
Bumped xcode project versions for lldb-106 and debugserver-165
...
llvm-svn: 148202
2012-01-14 20:57:34 +00:00
Greg Clayton
32720b51e2
<rdar://problem/9731573>
...
Fixed two double "int close(int fd)" issues found by our file descriptor
interposing library on darwin:
The first is in SBDebugger::SetInputFileHandle (FILE *file, bool transfer_ownership)
where we would give our FILE * to a lldb_private::File object member variable and tell
it that it owned the file descriptor if "transfer_ownership" was true, and then we
would also give it to the communication plug-in that waits for stdin to come in and
tell it that it owned the FILE *. They would both try and close the file.
The seconds was when we use a file descriptor through ConnectionFileDescriptor
where someone else is creating a connection with ConnectionFileDescriptor and a URL
like: "fd://123". We were always taking ownwership of the fd 123, when we shouldn't
be. There is a TODO in the comments that says we should allow URL options to be passed
to be able to specify this later (something like: "fd://123?transer_ownership=1"), but
we can get to this later.
llvm-svn: 148201
2012-01-14 20:47:38 +00:00
Sean Callanan
36fa92af46
I forgot to import a header file change. This
...
should fix builds.
llvm-svn: 148199
2012-01-14 20:16:24 +00:00
Greg Clayton
662125ae93
Added some fixes for the fd interposing dylib:
...
- don't strip too many frames from the backtrace when logging close backtraces
- cleanup some logging messages
llvm-svn: 148195
2012-01-14 18:18:31 +00:00
Greg Clayton
ccbc08e6ae
<rdar://problem/10684141>
...
When the lldb_private::Debugger goes away, it should cleanup all
of its targets.
llvm-svn: 148189
2012-01-14 17:04:19 +00:00
Sean Callanan
cbbe3ac4a9
I made two major improvements to the way the
...
master AST importer imports types.
- First, before importing the definition of a
Decl from its source, notify the underlying
importer of the source->destination mapping.
Especially for anonymous strucutres that are
otherwise hard to unique in the target AST
context, this hint is very helpful.
- When deporting a type or Decl from one
ASTContext to another (deporting occurs in
the case of moving result types from the
parser's AST context to the result AST
context), don't forget their origin if the
origin is the original debug information.
llvm-svn: 148152
2012-01-13 22:55:55 +00:00
Sean Callanan
ba5be17e7d
Only create new ASTImporters on demand, not
...
proactively.
llvm-svn: 148146
2012-01-13 22:19:53 +00:00
Sean Callanan
7282e2acf4
If the name of a struct or union is NULL in the
...
debug info, call it anonymous. This isn't
perfect, because Clang actually considers the
following struct not to be anonymous:
–
struct {
int x;
int y;
} g_foo;
-
but DWARF doesn't make the distinction.
llvm-svn: 148145
2012-01-13 22:10:18 +00:00
Sean Callanan
a6e61a7820
Fixed some logging in the AST source and added
...
more information.
llvm-svn: 148144
2012-01-13 22:05:55 +00:00
Greg Clayton
13d284b284
Updated HTML with info for ${function.name-with-args}
...
llvm-svn: 148111
2012-01-13 08:41:20 +00:00
Greg Clayton
6d3dbf5161
Added a new thread and frame format that can be used to display a function
...
name + arguments when the data is available. It seems to work really well,
but some more testing is needed before we make this on by default.
The new function format name is:
${function.name-with-args}
To see how to use these formats see the website:
http://lldb.llvm.org/formats.html
Here is a sample backtrace of debugging LLDB with LLDB using this new format
value:
(lldb) thread backtrace all
* thread #1 : tid = 0x2203, 0x00007fff88a17bca libsystem_kernel.dylib __psynch_cvwait + 10, stop reason = signal SIGINT, name = <lldb.driver.main-thread>, queue = com.apple.main-thread
frame #0 : 0x00007fff88a17bca libsystem_kernel.dylib __psynch_cvwait + 10
frame #1 : 0x00007fff884ae274 libsystem_c.dylib _pthread_cond_wait + 840
frame #2 : 0x00000001010778ea LLDB lldb_private::Condition::Wait(this=0x0000000104846770, mutex=0x0000000104846730, abstime=0x0000000000000000, timed_out=0x00007fff5fbfdea7) + 138 at Condition.cpp:92
frame #3 : 0x0000000101244c21 LLDB lldb_private::Predicate<bool>::WaitForValueEqualTo(this=0x0000000104846728, value=true, abstime=0x0000000000000000, timed_out=0x00007fff5fbfdea7) + 209 at Predicate.h:317
frame #4 : 0x0000000100f6eeb2 LLDB lldb_private::Listener::WaitForEventsInternal(this=0x0000000104846660, timeout=0x0000000000000000, broadcaster=0x0000000000000000, broadcaster_names=0x0000000000000000, num_broadcaster_names=0x00000000, event_type_mask=0x00000000, event_sp=0x00007fff5fbfe030) + 386 at Listener.cpp:388
frame #5 : 0x0000000100f6f231 LLDB lldb_private::Listener::WaitForEvent(this=0x0000000104846660, timeout=0x0000000000000000, event_sp=0x00007fff5fbfe030) + 81 at Listener.cpp:436
frame #6 : 0x0000000100098dcd LLDB lldb::SBListener::WaitForEvent(this=0x00007fff5fbff0f0, timeout_secs=0xffffffff, event=0x00007fff5fbfe430) + 685 at SBListener.cpp:181
frame #7 : 0x000000010000628c lldb Driver::MainLoop(this=0x00007fff5fbff620) + 5244 at Driver.cpp:1325
frame #8 : 0x0000000100006ca3 lldb main(argc=1, argv=0x00007fff5fbff758, envp=0x00007fff5fbff768) + 419 at Driver.cpp:1460
frame #9 : 0x0000000100000d54 lldb start + 52
thread #3 : tid = 0x2703, 0x00007fff88a17df2 libsystem_kernel.dylib select$DARWIN_EXTSN + 10, name = <lldb.comm.debugger.input>
frame #0 : 0x00007fff88a17df2 libsystem_kernel.dylib select$DARWIN_EXTSN + 10
frame #1 : 0x0000000100f3f072 LLDB lldb_private::ConnectionFileDescriptor::BytesAvailable(this=0x000000010524d040, timeout_usec=0x004c4b40, error_ptr=0x0000000105640a18) + 722 at ConnectionFileDescriptor.cpp:542
frame #2 : 0x0000000100f3e6dd LLDB lldb_private::ConnectionFileDescriptor::Read(this=0x000000010524d040, dst=0x0000000105640a60, dst_len=1024, timeout_usec=0x004c4b40, status=0x0000000105640a14, error_ptr=0x0000000105640a18) + 301 at ConnectionFileDescriptor.cpp:273
frame #3 : 0x0000000100f3b8f7 LLDB lldb_private::Communication::ReadFromConnection(this=0x0000000104846270, dst=0x0000000105640a60, dst_len=1024, timeout_usec=0x004c4b40, status=0x0000000105640a14, error_ptr=0x0000000105640a18) + 167 at Communication.cpp:317
frame #4 : 0x0000000100f3b197 LLDB lldb_private::Communication::ReadThread(p=0x0000000104846270) + 327 at Communication.cpp:344
frame #5 : 0x0000000101078923 LLDB ThreadCreateTrampoline(arg=0x00000001045f6650) + 227 at Host.cpp:549
frame #6 : 0x00007fff884aa8bf libsystem_c.dylib _pthread_start + 335
frame #7 : 0x00007fff884adb75 libsystem_c.dylib thread_start + 13
thread #4 : tid = 0x2803, 0x00007fff88a17df2 libsystem_kernel.dylib select$DARWIN_EXTSN + 10, name = <lldb.comm.driver.editline>
frame #0 : 0x00007fff88a17df2 libsystem_kernel.dylib select$DARWIN_EXTSN + 10
frame #1 : 0x0000000100f3f072 LLDB lldb_private::ConnectionFileDescriptor::BytesAvailable(this=0x0000000105700370, timeout_usec=0x004c4b40, error_ptr=0x00000001056c3a18) + 722 at ConnectionFileDescriptor.cpp:542
frame #2 : 0x0000000100f3e6dd LLDB lldb_private::ConnectionFileDescriptor::Read(this=0x0000000105700370, dst=0x00000001056c3a60, dst_len=1024, timeout_usec=0x004c4b40, status=0x00000001056c3a14, error_ptr=0x00000001056c3a18) + 301 at ConnectionFileDescriptor.cpp:273
frame #3 : 0x0000000100f3b8f7 LLDB lldb_private::Communication::ReadFromConnection(this=0x0000000105700000, dst=0x00000001056c3a60, dst_len=1024, timeout_usec=0x004c4b40, status=0x00000001056c3a14, error_ptr=0x00000001056c3a18) + 167 at Communication.cpp:317
frame #4 : 0x0000000100f3b197 LLDB lldb_private::Communication::ReadThread(p=0x0000000105700000) + 327 at Communication.cpp:344
frame #5 : 0x0000000101078923 LLDB ThreadCreateTrampoline(arg=0x0000000105700430) + 227 at Host.cpp:549
frame #6 : 0x00007fff884aa8bf libsystem_c.dylib _pthread_start + 335
frame #7 : 0x00007fff884adb75 libsystem_c.dylib thread_start + 13
thread #5 : tid = 0x2903, 0x00007fff88a17df2 libsystem_kernel.dylib select$DARWIN_EXTSN + 10, name = <lldb.comm.driver.editline_output>
frame #0 : 0x00007fff88a17df2 libsystem_kernel.dylib select$DARWIN_EXTSN + 10
frame #1 : 0x0000000100f3f072 LLDB lldb_private::ConnectionFileDescriptor::BytesAvailable(this=0x00000001057178f0, timeout_usec=0x004c4b40, error_ptr=0x0000000105980a18) + 722 at ConnectionFileDescriptor.cpp:542
frame #2 : 0x0000000100f3e6dd LLDB lldb_private::ConnectionFileDescriptor::Read(this=0x00000001057178f0, dst=0x0000000105980a60, dst_len=1024, timeout_usec=0x004c4b40, status=0x0000000105980a14, error_ptr=0x0000000105980a18) + 301 at ConnectionFileDescriptor.cpp:273
frame #3 : 0x0000000100f3b8f7 LLDB lldb_private::Communication::ReadFromConnection(this=0x0000000105717580, dst=0x0000000105980a60, dst_len=1024, timeout_usec=0x004c4b40, status=0x0000000105980a14, error_ptr=0x0000000105980a18) + 167 at Communication.cpp:317
frame #4 : 0x0000000100f3b197 LLDB lldb_private::Communication::ReadThread(p=0x0000000105717580) + 327 at Communication.cpp:344
frame #5 : 0x0000000101078923 LLDB ThreadCreateTrampoline(arg=0x00000001057179b0) + 227 at Host.cpp:549
frame #6 : 0x00007fff884aa8bf libsystem_c.dylib _pthread_start + 335
frame #7 : 0x00007fff884adb75 libsystem_c.dylib thread_start + 13
thread #6 : tid = 0x2a03, 0x00007fff88a18af2 libsystem_kernel.dylib read + 10, name = <lldb.driver.commandline_io>
frame #0 : 0x00007fff88a18af2 libsystem_kernel.dylib read + 10
frame #1 : 0x0000000100050c3b libedit.3.dylib read_init + 247
frame #2 : 0x0000000100050e96 libedit.3.dylib el_wgetc + 155
frame #3 : 0x000000010005115d libedit.3.dylib el_wgets + 578
frame #4 : 0x000000010005debc libedit.3.dylib el_gets + 37
frame #5 : 0x000000010000d409 lldb IOChannel::LibeditGetInput(this=0x0000000105700490, new_line=0x0000000105a03db0) + 89 at IOChannel.cpp:311
frame #6 : 0x000000010000d8b6 lldb IOChannel::Run(this=0x0000000105700490) + 806 at IOChannel.cpp:391
frame #7 : 0x000000010000d57d lldb IOChannel::IOReadThread(ptr=0x0000000105700490) + 29 at IOChannel.cpp:345
frame #8 : 0x0000000101078923 LLDB ThreadCreateTrampoline(arg=0x00000001057179f0) + 227 at Host.cpp:549
frame #9 : 0x00007fff884aa8bf libsystem_c.dylib _pthread_start + 335
frame #10 : 0x00007fff884adb75 libsystem_c.dylib thread_start + 13
(lldb)
llvm-svn: 148110
2012-01-13 08:39:16 +00:00
Greg Clayton
ae3e9927a5
Bumped Xcode project version for lldb-105 and debugserver-164.
...
llvm-svn: 148098
2012-01-13 05:54:31 +00:00
Greg Clayton
d66945ae3d
<rdar://problem/10688864>
...
Fixed the new __apple_types to be able to accept a DW_TAG_structure_type
forward declaration and then find a DW_TAG_class_type definition, or vice
versa.
llvm-svn: 148097
2012-01-13 05:38:24 +00:00
Jim Ingham
bc2f918200
Don't set breakpoints independently comp unit by comp unit, but look over all the file & line matches
...
and only pick the "best" ones.
<rdar://problem/10685990>
llvm-svn: 148087
2012-01-13 02:04:05 +00:00
Johnny Chen
fb05d23789
Add some description for this test directory.
...
llvm-svn: 148075
2012-01-13 00:24:11 +00:00
Johnny Chen
7840c81df2
Modify a couple of Makefiles to use clang instead of gcc, since gcc is being deprecated.
...
llvm-svn: 148071
2012-01-12 23:50:28 +00:00
Johnny Chen
fe14162e71
rdar://problem/10680957
...
Need a test case that tests DWARF with .o in .a files
test/functionalities/archives:
Produces libfoo.a from a.o and b.o. Test breaking inside functions defined
inside the libfoo.a BSD Archive.
test/make/makefile.rules:
Some additional rules to sepcify archive building. For example:
ARCHIVE_NAME := libfoo.a
ARCHIVE_C_SOURCES := a.c b.c
llvm-svn: 148066
2012-01-12 23:09:42 +00:00
Jim Ingham
18f4629c78
Discriminate between the lldb_private::Type's for ObjC Classes that come from debug info, and those that
...
are made up from the ObjC runtime symbols. For now the latter contain nothing but the fact that the name
describes an ObjC class, and so are not useful for things like dynamic types.
llvm-svn: 148059
2012-01-12 22:45:31 +00:00
Jim Ingham
5cfbe4aa53
Fix a comment typo.
...
llvm-svn: 148057
2012-01-12 22:42:34 +00:00
Jim Ingham
50b3d507bd
Let the Module FindType do the stripping of namespace components, that's not expensive
...
and doing it both at the ModuleList and Module levels means we look 4 times for a negative
search. Also, don't do the search for the stripped name if that is the same as the original
one.
llvm-svn: 148054
2012-01-12 22:35:29 +00:00
Greg Clayton
4d4c988c6a
Bumped Xcode project versions for lldb-104 and debugserver-163.
...
llvm-svn: 148018
2012-01-12 05:29:50 +00:00
Greg Clayton
44435ed07a
Big change in the way ObjectFile file contents are managed. We now
...
mmap() the entire object file contents into memory with MAP_PRIVATE.
We do this because object file contents can change on us and currently
this helps alleviate this situation. It also make the code for accessing
object file data much easier to manage and we don't end up opening the
file, reading some data and closing the file over and over.
llvm-svn: 148017
2012-01-12 05:25:17 +00:00
Greg Clayton
c7f03b6155
<rdar://problem/10681814>
...
Fix DWARF parsing issue we can run into when using llvm-gcc based dSYM files.
Also fix the parsing of objective C built-in types (Class, id and SEL) so
they don't parse more information that is not needed due to the way they
are represented in DWARF.
llvm-svn: 148016
2012-01-12 04:33:28 +00:00
Jim Ingham
c07fe69850
Don't dereference the oso_dwarf without checking for NULL.
...
llvm-svn: 148005
2012-01-12 01:45:53 +00:00
Greg Clayton
fa8c004aba
Revert some changes I did for logging that affected the ability to
...
load .o files in BSD archive parsing.
llvm-svn: 147987
2012-01-12 01:21:31 +00:00
Johnny Chen
5886fb5bd3
rdar://problem/10492827
...
SBProcess.GetSTDERR() not getting stderr of the launched process
Since we are launch the inferior with:
process = target.LaunchSimple(None, None, os.getcwd())
i.e., without specifying stdin/out/err. A pseudo terminal is used for
handling the process I/O, and we are satisfied once the expected output
appears in process.GetSTDOUT().
llvm-svn: 147983
2012-01-12 00:29:46 +00:00
Sean Callanan
ee458a7785
After thinking about it, it doesn't seem right
...
to make assumptions if the type is unsized. We
just give up (and let the JIT handle it) instead.
llvm-svn: 147915
2012-01-11 02:23:25 +00:00
Jim Ingham
c354928786
Don't assert but report & return a NULL type if we end up parsing a type we are in the middle of parsing.
...
llvm-svn: 147914
2012-01-11 02:21:12 +00:00
Johnny Chen
4876b5fccd
Add more usage examples.
...
llvm-svn: 147909
2012-01-11 01:59:55 +00:00
Greg Clayton
8b35334e0c
Fixed a missing space when reporting errors and warning through the module
...
and also print out the full path and architecture.
llvm-svn: 147908
2012-01-11 01:59:18 +00:00
Johnny Chen
e9f97704ea
Add usage examples of recently added functionality.
...
llvm-svn: 147907
2012-01-11 01:42:58 +00:00
Sean Callanan
285e4b22f5
If the size of a type can't be determined, default
...
to assume it's of pointer size.
llvm-svn: 147906
2012-01-11 01:36:21 +00:00
Johnny Chen
17b4ea54bf
Snapshot of initial work for ARM watchpoint support on the debugserver.
...
It is incomplete and untested; passes the compilation only.
llvm-svn: 147901
2012-01-11 00:35:13 +00:00
Johnny Chen
c260232dfa
Add comment for build_and_run_with_source_atoms_expr() and remove redundant #include from basic_type.cpp.
...
llvm-svn: 147895
2012-01-10 23:36:06 +00:00
Johnny Chen
0d81fe7a77
Add documentation for the generic functions build_and_run() and build_and_run_expr() called from
...
the Test*Types*.py test cases.
llvm-svn: 147893
2012-01-10 23:22:57 +00:00
Greg Clayton
8ffc4f11ce
Disable ARMDisassembler.framework support which was used for software single stepping.
...
llvm-svn: 147886
2012-01-10 22:33:56 +00:00
Jim Ingham
82283e8e91
Check the return value of GetBasicInfo before dereferencing it. <rdar://problem/10568492>
...
llvm-svn: 147883
2012-01-10 22:21:42 +00:00
Sean Callanan
30ce74f9b4
Updating Xcode project version numbers for lldb-103 and debugserver-162
...
llvm-svn: 147865
2012-01-10 18:37:32 +00:00
Jim Ingham
f714d3d7f2
As we are grubbing through memory chasing down the hierarchy of an ObjC object, protect against the possibility that that object might be just random memory with loops.
...
llvm-svn: 147838
2012-01-10 03:58:23 +00:00
Greg Clayton
7d7850af64
Since clang modifies .o files in place, use MAP_PRIVATE as it seems
...
to fix the issues we run into on darwin even though the docs don't
seems to say it will.
llvm-svn: 147835
2012-01-10 02:53:13 +00:00
Greg Clayton
99e6e2f6f0
Fix for linux build.
...
llvm-svn: 147834
2012-01-10 02:52:21 +00:00
Jim Ingham
aa1bc80f5d
Don't call lldb_private::Process::GetLoadAddressPermissions to sanity check the unwind addresses
...
when you already know that the address is contained in a bona fide function. This can be a
slow call.
llvm-svn: 147829
2012-01-10 02:14:47 +00:00
Johnny Chen
c256b99a17
Refactor the test/types directory to reduce some stupid reduant code.
...
Also add test cases to the test suite to exercise displaying of variables captured inside a block (Darwin-only).
llvm-svn: 147828
2012-01-10 02:04:04 +00:00
Johnny Chen
38ef9a9b94
Fix make errors (define the DYLIB_ONLY make variable).
...
llvm-svn: 147823
2012-01-10 01:29:35 +00:00
Johnny Chen
beac8f991f
Add a CFLAGS_EXTRAS make variable to be able to pass things (like '-DTEST_BLOCK_CAPTURED_VARS') to the compile phase.
...
Plus add a DYLIB_ONLY make variable that can be used to turn off compilation/building of a.out. Example:
[16:39:21] johnny:/Volumes/data/lldb/svn/trunk/test/lang/c/global_variables $ make clean
rm -rf "a.out" "a.out.dSYM" main.o main.d a.o a.d liba.dylib liba.dylib.dSYM
[16:39:24] johnny:/Volumes/data/lldb/svn/trunk/test/lang/c/global_variables $ make DYLIB_ONLY=YES
clang -gdwarf-2 -O0 -arch x86_64 -c -o a.o a.c
clang -gdwarf-2 -O0 -arch x86_64 a.o -install_name "@executable_path/liba.dylib" -dynamiclib -o "liba.dylib"
[16:39:30] johnny:/Volumes/data/lldb/svn/trunk/test/lang/c/global_variables $
llvm-svn: 147821
2012-01-10 00:41:11 +00:00
Greg Clayton
33289908f9
Added a file descriptor interposing library for darwin. This can catch all
...
functions that can create file descriptors and close them. It will warn when
there close file descriptor call that returns with EBADF and show the
corresponding stack backtraces that caused the issue. It will also log all
file descriptor create and delete calls. See the comments at the top of
FDInterposing.cpp for all of the details.
llvm-svn: 147816
2012-01-10 00:29:36 +00:00