summaryrefslogtreecommitdiffstats
path: root/lldb
Commit message (Collapse)AuthorAgeFilesLines
...
* [dotest] Use in-tree dsymutil on DarwinJonas Devlieghere2018-04-124-3/+12
| | | | | | | | | | | | | | | | | | | Summary: With the upstream implementation of dsymutil containing almost all functionality from the one shipped with Xcode, we want to use the in-tree version for running the test suite. This will also allow us to re-enable TestUnicodeSymbols which was failing because of the discrepancy in how Unicode symbols were hashed in lldb and older versions of dsymutil. Reviewers: aprantl, davide, jingham, labath Subscribers: mgorny, llvm-commits, lldb-commits Differential Revision: https://reviews.llvm.org/D45518 llvm-svn: 329889
* Fix a thinko in CommandObjectMemoryRegion.Jim Ingham2018-04-111-1/+1
| | | | | | | Don't try to read the first argument till you've checked that there is one. llvm-svn: 329844
* [Target] Remove dead/commented out code. NFC.Davide Italiano2018-04-111-16/+0
| | | | | | Some spring cleaning before I touch this file more extensively. llvm-svn: 329831
* llgs: Send "rich" errors in response to vAttach packetsPavel Labath2018-04-114-11/+29
| | | | | | | | | | | | | | | | | There are plenty of ways attaching can go wrong. Having the server report the exact error means we can give better feedback to the user. (This patch does not do the second part, it only makes sure the information is sent from the server.) Triggering all possible error conditions in a test would prove challenging, but there is one error that is very easy to reproduce (attempting to attach while debugging), so I write a test based on that. The test immediately exposed a bug where the m_send_error_strings field was being used uninitialized (so it was sometimes true from the get-go), so I fix that as well. llvm-svn: 329803
* Convert an absolute to a group relative reference for TestOptionArgParser.cpp.Jim Ingham2018-04-101-1/+1
| | | | llvm-svn: 329745
* Fix a typo in the gtest build target for Debug configuration.Jim Ingham2018-04-102-4/+1
| | | | | | I usually run DebugClang... llvm-svn: 329727
* Fix the Xcode build for the addition of OptionArgsParser.Jim Ingham2018-04-102-5/+18
| | | | llvm-svn: 329722
* s/LLVM_ON_WIN32/_WIN32/, lldbNico Weber2018-04-1013-21/+19
| | | | | | | | | | | LLVM_ON_WIN32 is set exactly with MSVC and MinGW (but not Cygwin) in HandleLLVMOptions.cmake, which is where _WIN32 defined too. Just use the default macro instead of a reinvented one. See thread "Replacing LLVM_ON_WIN32 with just _WIN32" on llvm-dev and cfe-dev. No intended behavior change. llvm-svn: 329697
* Args: replace isprint8 usage with isprintPavel Labath2018-04-101-2/+1
| | | | | | | | | | | | | It looks like we introduced isprint8 way back in r169417 to be used on getopt's short_options, which we sometimes set to values which are out of range for normal chars to indicate options with no short form. However, this is not how the function is used in the Args class, where we explicitly process a string character by character. This removes the last external dependency from the Args class. llvm-svn: 329682
* Move OptionElementVector helper structs from Args to OptionsPavel Labath2018-04-103-16/+17
| | | | | | | | | | | These are not used anywhere in the Args class. They should have been moved as a part of r327110 (Moving Option parsing from Args to Options), but I did not notice them then. This does not affect the layering in any way, but in makes sense for the structs to be defined in the near the code that uses them. llvm-svn: 329679
* Move Args::StringTo*** functions to a new OptionArgParser classPavel Labath2018-04-1035-454/+555
| | | | | | | | | | | | | | | | Summary: The idea behind this is to move the functionality which depend on other lldb classes into a separate class. This way, the Args class can be turned into a lightweight arc+argv wrapper and moved into the lower lldb layers. Reviewers: jingham, zturner Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D44306 llvm-svn: 329677
* Fix compilation error caused by tgmath.h.Tatyana Krasnukha2018-04-091-1/+1
| | | | | | On CentOS calling functions from <tgmath.h> produces multiple errors "'void*' is not a pointer-to-object type". llvm-svn: 329597
* [lldb-server] Set a more generous timeout when testing gdbremote.Davide Italiano2018-04-061-1/+1
| | | | | | | One of our downstream bot is struggling under load, but this value should be enough for everyone. llvm-svn: 329426
* Revert "Cleanup DWARFCompileUnit and DWARFUnit in preparation for adding ↵Jan Kratochvil2018-04-068-569/+828
| | | | | | | | | | | | | | | | | DWARFTypeUnit" The reverted commit changed DWARFUnit from https://reviews.llvm.org/D40466 and https://reviews.llvm.org/D42892 that was prepared for DWARFPartialUnit and made from it a superclass for DWARFTypeUnit. DWARFUnit's intention was: DWARFUnit->DWARFSomeNameUnit->DWARFCompileUnit DWARFUnit->DWARFSomeNameUnit->DWARFTypeUnit DWARFUnit->DWARFPartialUnit Discussed at: https://reviews.llvm.org/D45170 This reverts commit r329305. llvm-svn: 329423
* [debugserver] Fix LC_BUILD_VERSION load command handling.Frederic Riss2018-04-068-169/+246
| | | | | | | | | | | | | | | | | | | | | | Summary: In one of the 2 places the LC_BUILD_VERSION load command is handled, there is a bug preventing us from actually handling them (the address where to read the load command was not updated). This patch factors reading the deployment target load commands into a helper and adds testing for the 2 code paths calling the helper. The testing is a little bit complicated because the only times those load commands matter is when debugging a simulator process. I added a new decorator to check that a specific SDK is available. The actual testing was fairly easy once I knew how to run a simulated process. Reviewers: jasonmolenda, labath Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D45298 llvm-svn: 329374
* [dotest] --skip-category should append and not override.Davide Italiano2018-04-051-1/+1
| | | | | | <rdar://problem/38566150> llvm-svn: 329358
* One more windows build fixPavel Labath2018-04-051-0/+1
| | | | llvm-svn: 329314
* Fix windows build after r329296Pavel Labath2018-04-052-0/+2
| | | | | | Add a couple of #include <csignal>s. llvm-svn: 329309
* Cleanup DWARFCompileUnit and DWARFUnit in preparation for adding DWARFTypeUnitGreg Clayton2018-04-058-828/+569
| | | | | | | | Many things that were in DWARFCompileUnit actually need to be in DWARFUnit. This patch moves all DWARFUnit specific things over into DWARFUnit and fixes the layering. This is in preparation for adding DWARFTypeUnit for the .debug_types patch. Differential Revision: https://reviews.llvm.org/D45170 llvm-svn: 329305
* Remove unused NativeProcessProtocol.h include from Platform.hPavel Labath2018-04-052-4/+1
| | | | | | | | | | | | After removing it, I got a couple of compile errors because we were missing some symbols (SIGKILL and such), as their definitions were not transitively included anymore. I fix this by including csignal from PosixApi.h, as it's windows version provides a stub definitions of these symbols. This should make the result of #including PosixApi.h more consistent across platforms (although in the long run, we should just get rid of this header). llvm-svn: 329296
* Fix error in QEnableErrorStrings gdb-remote docsPavel Labath2018-04-051-1/+1
| | | | | | | this probably happened because we changed the name of the packet mid-review. llvm-svn: 329295
* Added a BSD archive tool.Greg Clayton2018-04-021-0/+481
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a combination stand alone BSD archive tool that can dump BSD archives: % bsd.py /path/to/foo.a Search archives for an object file: % bsd.py --object foo.o bar.a Dump the symbol definitions found in the __.SYMDEF objects: % bsd.py --symdef bar.a Find symbols by name that are listed in the __.SYMDEF objects: % bsd.py --symbol _Z123 bar.a Extract objects from BSD archives: % bsd.py --object foo.o bar.a --extract % bsd.py --object foo.o bar.a --extract --outfile /tmp/foo.o % bsd.py --object foo.o bar.a --extract --mtime 0x1234556 It also has installs a new LLDB command line command when imported into LLDB: (lldb) command script import ~/Dropbox/bin/bsd.py The "verify-debug-map-objects" command has been installed, type "help verify-debug-map-objects" for detailed help. (lldb) verify-debug-map-objects a.out This will iterate through all object files and verify the modification times match for any .o files, it will verify any .o files from BSD archives are found and have matching modification times and print out errors if any are found. llvm-svn: 328990
* [Core] Grab-bag of improvements for Scalar.Davide Italiano2018-04-023-332/+166
| | | | | | | | | | | | | | | | | | | | | | | | | | Remove Scalar::Cast. It was noted on the list that this method is unused. So, this patch removes it. Fix Scalar::Promote for most integer types This fixes promotion of most integer types (128- and 256-bit types are handled in a subsequent patch) to floating-point types. Previously promotion was done bitwise, where value preservation is correct. Fix Scalar::Promote for 128- and 256-bit integer types This patch fixes the behavior of Scalar::Promote when trying to perform a binary operation involving a 128- or 256-bit integer type and a floating-point type. Now, the integer is cast to the floating point type for the operation. Patch by Tom Tromey! Differential Revision: https://reviews.llvm.org/D44907 llvm-svn: 328985
* Support template template parametersFrederic Riss2018-04-025-2/+78
| | | | | | | | | | | | | | | | | | Summary: We would fail to resolve (and thus display the value of) any templated type which contained a template template argument even though we don't really use template arguments. This patch adds minimal support for template template arguments, but I doubt we need any more than that. Reviewers: clayborg, jingham Subscribers: JDevlieghere, lldb-commits Differential Revision: https://reviews.llvm.org/D44613 llvm-svn: 328984
* [test] Exit lldb-dotest in a more Pythonic way.Jonas Devlieghere2018-04-021-4/+2
| | | | | | | As suggested by Keith Smiley in: https://github.com/apple/swift-lldb/pull/486 llvm-svn: 328966
* [lldb-dotest] Don't swallow error exit codes.Davide Italiano2018-03-301-1/+3
| | | | llvm-svn: 328894
* NativeThreadProtocol: delete dead codePavel Labath2018-03-292-41/+0
| | | | | | | | | | | | These functions were unused as everyone just went straight for the direct operations on the register context. In fact, the Save/RestoreAllRegisters actually appear to be wrong (inverted). Thanks to Tatyana for pointing this out. These functions are not very useful now that we can guarantee that each thread always contains a valid register context, so I just delete them. llvm-svn: 328770
* Prevent double release of mach portsFrederic Riss2018-03-292-4/+0
| | | | | | | | | | | | | | | | Summary: When a MIG routine returns KERN_FAILURE, the demux function will release any OOL resources like ports. In this case, task_port and thread_port will be released twice, potentially resulting in use after free of the ports. I don't think we can test this in any useful way rdar://problem/37331387 Reviewers: jasonmolenda Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D45011 llvm-svn: 328761
* Revert r328715. Wasn't wrong, just not the issue.Jim Ingham2018-03-281-1/+0
| | | | llvm-svn: 328721
* Explicitly import subprocessJim Ingham2018-03-281-0/+1
| | | | | | | For some reason on one of our bots subprocess wasn't already imported. Do so explicitly. llvm-svn: 328715
* gdb-remote: Fix checksum verification for messages with escape charsPavel Labath2018-03-284-7/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: We've had a mismatch in the checksum computation between the sender and receiver. The sender computed the payload checksum using the wire encoding of the packet, while the receiver did this after expanding un-escaping and expanding run-length-encoded sequences. This resulted in communication breakdown if packets using these feature were sent in the ack mode. Normally, this did not cause any issues since the only packet we send in the ack-mode is the QStartNoAckMode packet, but I ran into this when debugging the lldb-server tests which (for better or worse) don't use this mode. According to the gdb-remote documentation "The two-digit checksum is computed as the modulo 256 sum of all characters between the leading ‘$’ and the trailing ‘#’", it seems that our sender is doing the right thing here. Therefore, I fix the receiver the match the sender behavior and add a test. With this bug fixed, we can see that lldb-server is sending a stop-reply after receiving the "k" in the same way as debugserver does (but we weren't detecting this because at that point the connection was dead already). I fix that expectation as well. Reviewers: clayborg, jasonmolenda Subscribers: mgorny, lldb-commits Differential Revision: https://reviews.llvm.org/D44922 llvm-svn: 328693
* Use the DWARF linkage name when importing C++ methods.Davide Italiano2018-03-277-8/+78
| | | | | | | | | | | | | | | | | | | | When importing C++ methods into clang AST nodes from the DWARF symbol table, preserve the DW_AT_linkage_name and use it as the linker ("asm") name for the symbol. Concretely, this enables `expression` to call into names that use the GNU `abi_tag` extension, and enables lldb to call into code using std::string or std::list from recent versions of libstdc++. See https://bugs.llvm.org/show_bug.cgi?id=35310 . It also seems broadly more robust than relying on the DWARF->clang->codegen pipeline to roundtrip properly, but I'm not immediately aware of any other cases in which it makes a difference. Patch by Nelson Elhage! Differential Revision: https://reviews.llvm.org/D40283 llvm-svn: 328658
* [Core] Correctly handle float division in Scalar.Davide Italiano2018-03-272-1/+9
| | | | | | | | Patch by Tom Tromey! Differential Revision: https://reviews.llvm.org/D44693 llvm-svn: 328649
* Add the same new entitlement from r326399 to Jason Molenda2018-03-261-0/+2
| | | | | | | the macos entitlement list. <rdar://problem/38887712> llvm-svn: 328591
* Fix check for verbose logging.Adrian Prantl2018-03-261-3/+2
| | | | | | Thanks to Pavel for pointing this out! llvm-svn: 328557
* Fix TestDisassembleBreakpoint broken by r328488Pavel Labath2018-03-262-33/+22
| | | | | | | | | | | | | | | | | The first issue was that the test was capturing the "before" disassembly before launching, and the "after" after. This is a problem because some of the disassembly will change after we know the load address (e.g. PCs in call instructions). I fix this by capturing both disassemblies with the process running. The second issue was that the refactor in r328488 accidentaly changed the meaning of the test, as it was no longer disassembling the function which contained the breakpoint. While inside, I also modernize the test to use lldbutil.run_to_source_breakpoint and prevent debug-info replication. llvm-svn: 328504
* Make @skipUnlessSupportedTypeAttribute windows-compatiblePavel Labath2018-03-261-5/+4
| | | | | | | | | - close_fds is not compatible with stdin/out redirection on windows. I just remove it, as this is not required for correct operation. - the command string was assuming a posix shell. I rewrite the Popen invocation to avoid the need for passing the arguments through a shell. llvm-svn: 328489
* Add and fix some tests for PPC64Pavel Labath2018-03-266-35/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: TestExprsChar.py Char is unsigned char by default in PowerPC. TestDisassembleBreakpoint.py Modify disassemble testcase to consider multiple architectures. TestThreadJump.py Jumping directly to the return line on PowerPC architecture dos not means returning the value that is seen on the code. The last test fails, because it needs the execution of some assembly in the beginning of the function. Avoiding this test for this architecture. TestEhFrameUnwind.py Implement func for ppc64le test case. TestWatchLocation.py TestStepOverWatchpoint.py PowerPC currently supports only one H/W watchpoint. TestDisassembleRawData.py Add PowerPC opcode and instruction for disassemble testcase. Reviewers: labath Reviewed By: labath Subscribers: davide, labath, alexandreyy, lldb-commits, luporl, lbianc Differential Revision: https://reviews.llvm.org/D44472 Patch by Alexandre Yukio Yamashita <alexandre.yamashita@eldorado.org.br>. llvm-svn: 328488
* [LLDB][PPC64] Fix TestGdbRemoteAuxvSupportPavel Labath2018-03-261-0/+15
| | | | | | | | | | | | | | | Summary: PPC64's auxvec has a special key that must be ignored. Reviewers: clayborg, labath Reviewed By: clayborg, labath Subscribers: alexandreyy, lbianc Differential Revision: https://reviews.llvm.org/D43771 Patch by Leandro Lupori <leandro.lupori@gmail.com>. llvm-svn: 328486
* Add a test for setting the load address of a module with differing ↵Pavel Labath2018-03-261-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | physical/virtual addresses Summary: First attempt at landing D42145 was reverted because it caused test failures on some android devices. It turned out this was because these devices had vdso modules with differing physical and virtual addresses. This was not caught earlier because all of the modules in our tests either lack physical addresses or have them identical to virtual ones. In the discussion on the patch, we came to the conclusion that in the scenario where we are merely setting a load address of a module (for example from a dynamic loader plugin), we should always use virtual addresses (i.e., preserve status quo). This patch adds a test to make sure we don't regress in that direction. Reviewers: owenpshaw Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D44738 llvm-svn: 328485
* Add support for __attribute__(trivial_abi).Jim Ingham2018-03-235-2/+150
| | | | | | <rdar://problem/36035075>, <rdar://problem/36035039> llvm-svn: 328389
* Remove CommandObjectStats.cpp & CleanUpTest.cpp fromJason Molenda2018-03-231-2/+0
| | | | | | installing in the man page directory. llvm-svn: 328383
* Put CommandObjectStats.cpp in lldb-core target, remove CommandObjectStats.h ↵Jason Molenda2018-03-231-4/+4
| | | | | | from targets. llvm-svn: 328382
* [Commands] Add a (currently empty) `stats` command.Davide Italiano2018-03-235-0/+66
| | | | | | | | | | | | | This one will be used to print statistics about lldb sessions (including, e.g. number of expression evaluation succeeded or failed). I decided to commit the skeleton first so that we have a clean reference on how a command should be implemented. My future commits are going to populate this command and test it. <rdar://problem/36555975> llvm-svn: 328378
* Change the darwin-debug target to build the standardJason Molenda2018-03-231-23/+8
| | | | | | archs. llvm-svn: 328374
* [CMakeLists] Update file list after recent changes.Davide Italiano2018-03-231-1/+0
| | | | llvm-svn: 328373
* [Commands] Remove dead code for unused `args` command.Davide Italiano2018-03-234-293/+0
| | | | | | | | | | It wasn't even registered. (lldb) apropos args No commands found pertaining to 'args'. Try 'help' to see a complete list of debugger commands. llvm-svn: 328370
* [Command] Remove dead code for the syntax command.Davide Italiano2018-03-235-148/+0
| | | | | | | I'm going to add a new commend so I figured I could do some spring cleaning. llvm-svn: 328368
* Log ObjC Runtime messages only in verbose modeAdrian Prantl2018-03-231-2/+2
| | | | llvm-svn: 328365
* [CommandObjectFrame] Remove dead code.Davide Italiano2018-03-231-3/+0
| | | | llvm-svn: 328278
OpenPOWER on IntegriCloud