summaryrefslogtreecommitdiffstats
path: root/lldb
Commit message (Collapse)AuthorAgeFilesLines
* Fix headers for files added in r353047Pavel Labath2019-02-073-12/+9
| | | | | | | I started working on that patch before the headers were updated. Since they were new files, I didn't get any conflicts during rebase. llvm-svn: 353429
* Fix signed/unsigned mismatches in ProcessInfoTest.cppPavel Labath2019-02-071-1/+1
| | | | llvm-svn: 353420
* Fix incorrect log messages in NativeProcessLinux (pr40588)Pavel Labath2019-02-071-4/+4
| | | | | | | | | | | The "signal" argument was removed from the MonitorCallback function, but not from the log statements within it. This wasn't noticed because the name "signal" suddenly started referring to the libc function with that name. This fixes that. llvm-svn: 353419
* Breakpad: temporarily XFAIL line-table testsPavel Labath2019-02-074-0/+8
| | | | | | | | | | | | The tests are failing on windows because the paths in the symbol file are parsed using the host path style. I'm working on a patch to have SymbolFileBreakpad auto-detect the correct path style (similar to dwarf r351328). I originally wanted to make this a part of the initial line-table patch, but then I simply forgot. llvm-svn: 353410
* use_lldb_suite.py: Fix potential infinite loopPavel Labath2019-02-071-3/+4
| | | | | | | | | | | | | | The loop searching for use_lldb_suite_root had a bug where if the marker file happened to be missing, it would enter an infinite loop. While this shouldn't happen in normal circumstances, it can happen accidentally, and debugging it is not very pleasant. The loop had an exit condition, but it was incorrent (os.path.dirname returning None). This will never happen as dirname will just return the same folder over and over again once it reaches the root folder. This fixes the exit condition to account for that. llvm-svn: 353406
* Fix some warnings introduced in r353324 (ReproducerInstrumentation patch)Pavel Labath2019-02-073-8/+4
| | | | | | | | | | | | GetIndexForObjectImpl generated a bunch of "conversion casts away constness warnings". Change the function to use "const void *" (and static_cast, while I'm at it), to avoid this. Driver.cpp: unused variable "replay" (this was actually caused by a subsequent partial revert of this patch). I just finish the revert by removing the variable completely. llvm-svn: 353405
* SymbolFileBreakpad: Add line table supportPavel Labath2019-02-0713-55/+504
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch teaches SymbolFileBreakpad to parse the line information in breakpad files and present it to lldb. The trickiest question here was what kind of "compile units" to present to lldb, as there really isn't enough information in breakpad files to correctly reconstruct those. A couple of options were considered - have the entire file be one compile unit - have one compile unit for each FILE record - have one compile unit for each FUNC record The main drawback of the first approach is that all of the files would be considered "headers" by lldb, and so they wouldn't be searched if target.inline-breakpoint-strategy=never. The single compile unit would also be huge, and there isn't a good way to name it. The second approach will create mostly correct compile units for cpp files, but it will still be wrong for headers. However, the biggest drawback here seemed to be the fact that this can cause a compile unit to change mid-function (for example when a function from another file is inlined or another file is #included into a function). While I don't know of any specific thing that would break in this case, it does sound like a thing that we should avoid. In the end, we chose the third option, as it didn't seem to have any major disadvantages, though it was not ideal either. One disadvantage here is that this generates a large number of compile units, and there is still a question on how to name it. We chose to simply name it after the first line record in that function. This should be correct 99.99% of the time, though it can produce somewhat strange results if the very first line record comes from an #included file. Reviewers: clayborg, zturner, lemo, markmentovai Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D56595 llvm-svn: 353404
* Fix documentation formatting for ShellExpandArgumentsRaphael Isemann2019-02-072-6/+6
| | | | llvm-svn: 353381
* [lldb] Make frame recognizers vend synthesized eValueTypeVariableArgument valuesKuba Mracek2019-02-075-1/+49
| | | | llvm-svn: 353363
* [Driver] Don't try to replay reproducer in the driver.Jonas Devlieghere2019-02-071-9/+0
| | | | | | | Because the macros for the SBReproducers have not been committed yet, the driver should not attempt to replay a reproducer this way. llvm-svn: 353362
* Fix my mistake adding SBReproducer the Xcode projectJonas Devlieghere2019-02-071-4/+8
| | | | llvm-svn: 353361
* [testsuite] Convert a pexpect test to lit.Davide Italiano2019-02-064-64/+25
| | | | | | | | | | | | | | Summary: Reviewers: JDevlieghere, friss, zturner, labath, jingham, serge-sans-paille Subscribers: llvm-commits, lldb-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D57840 llvm-svn: 353345
* Add SBReproducer to Xcode projectJonas Devlieghere2019-02-061-0/+6
| | | | llvm-svn: 353326
* [Reproducers] SBReproducer framework: Capture & ReplayJonas Devlieghere2019-02-068-10/+830
| | | | | | | | | | | | | This is part two of the reproducer instrumentation framework. It contains the code to capture and replay function calls. The main user of this framework will be the SB API layer. For all the details refer to the RFC on the mailing list: http://lists.llvm.org/pipermail/lldb-dev/2019-January/014530.html Differential revision: https://reviews.llvm.org/D56322 llvm-svn: 353324
* [x64] Process the B field of the REX prefix correctly for the PUSH and POPAleksandr Urakov2019-02-062-4/+58
| | | | | | | | | | | | | | | | | | | | | instructions Summary: This patch makes `x86AssemblyInspectionEngine` to process zero value of the `B` field of the `REX` prefix in a correct way for `PUSH` and `POP` instructions. MSVC sometimes emits `pushq %rbp` instruction as `0x40 0x55`, and it was not parsed correctly before. Reviewers: jasonmolenda, labath Reviewed By: jasonmolenda, labath Subscribers: abidh, lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D57745 llvm-svn: 353281
* Fix strlen() of unbound array undefined behaviorJan Kratochvil2019-02-062-5/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | LLDB testsuite fails when built by GCC8 on: LLDB :: SymbolFile/DWARF/find-basic-namespace.cpp This is because this code in LLDB codebase has undefined behavior: #include <algorithm> #include <string.h> // lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp:1731 static struct section_64 { char sectname[16]; char segname[16]; } sect64 = { {'_','_','a','p','p','l','e','_','n','a','m','e','s','p','a','c'}, "__DWARF" }; int main() { return std::min<size_t>(strlen(sect64.sectname), sizeof(sect64.sectname)); } It has been discussed as a (false) bugreport to GCC: wrong-code: LLDB testcase fails: SymbolFile/DWARF/find-basic-namespace.cpp https://bugzilla.redhat.com/show_bug.cgi?id=1672436 Differential Revision: https://reviews.llvm.org/D57781 llvm-svn: 353280
* [Reproducers] lldb-instr: tool to generate instrumentation macros.Jonas Devlieghere2019-02-067-1/+337
| | | | | | | | | | | | | | | | | This patch introduces a new tool called 'lldb-instr'. It automates the workflow of inserting LLDB_RECORD and LLDB_REGSITER macros for instrumentation. Because the tool won't be part of the build process, I didn't want to over-complicate it. SB_RECORD macros are inserted in place, while SB_REGISTER macros are printed to stdout, and have to be manually copied into the Registry's constructor. Additionally, the utility makes no attempt to properly format the inserted macros. Please use clang-format to format the changes after running the tool. Differential revision: https://reviews.llvm.org/D56822 llvm-svn: 353271
* Add a warning to GDBRemoteRegisterContext (if packet logging enabled)Jason Molenda2019-02-061-0/+8
| | | | | | | if the size of the g packet response was smaller than expected and is going to be ignored. llvm-svn: 353269
* [CMake] Unify scripts for generating VCS headersPetr Hosek2019-02-062-22/+22
| | | | | | | | | | | | | | | | | Previously, there were two different scripts for generating VCS headers: one used by LLVM and one used by Clang and lldb. They were both similar, but different. They were both broken in their own ways, for example the one used by Clang didn't properly handle monorepo resulting in an incorrect version information reported by Clang. This change unifies two the scripts by introducing a new script that's used from both LLVM, Clang and lldb, ensures that the new script supports both monorepo and standalone SVN and Git setups, and removes the old scripts. Differential Revision: https://reviews.llvm.org/D57063 llvm-svn: 353268
* [Reproducers] Add instrumentation to Xcode projectJonas Devlieghere2019-02-061-0/+8
| | | | llvm-svn: 353259
* Sort Xcode projectJonas Devlieghere2019-02-061-4/+4
| | | | llvm-svn: 353258
* Little more cleanup on https://reviews.llvm.org/D57552Jim Ingham2019-02-061-25/+24
| | | | | | | | | Thanks Jonas... One more early continue and using a range where we had an iterator. NFC llvm-svn: 353257
* Add the source directory for https://reviews.llvm.org/D57552.Jim Ingham2019-02-061-0/+7
| | | | llvm-svn: 353251
* Fix PathMappingList::FindFile to handle relative incoming FileSpecs.Jim Ingham2019-02-053-247/+283
| | | | | | | | | | | | An equivalent change was made to RemapPaths, but it needed to be made here as well. Also added a test for this and made the setup a little more complex to avoid false successes. <rdar://problem/47642498> Differential Revision: https://reviews.llvm.org/D57552 llvm-svn: 353243
* Remove accidentally commited file in xcshareddataJonas Devlieghere2019-02-051-8/+0
| | | | llvm-svn: 353239
* [Py3/TestAppleOSSimulator] Another byte<->str interoperability issue.Davide Italiano2019-02-051-1/+1
| | | | llvm-svn: 353226
* [unittests] Fix warningJonas Devlieghere2019-02-051-1/+1
| | | | | | | warning: comparison of integers of different signs: 'const int' and 'const unsigned long' [-Wsign-compare] llvm-svn: 353196
* [Reproducers] Instrumentation Framework: SerializationJonas Devlieghere2019-02-055-0/+556
| | | | | | | | | | | | This is the is serialization/deserialization part of the reproducer instrumentation framework. For all the details refer to the RFC on the mailing list: http://lists.llvm.org/pipermail/lldb-dev/2019-January/014530.html Differential revision: https://reviews.llvm.org/D57714 llvm-svn: 353195
* [Obj-C] Fix undefined behaviour(s) in the new NSTaggedDate formatter.Davide Italiano2019-02-051-28/+24
| | | | | | | | | | | | Type punning through a union -> no good. double to uint64 to double again -> no good either. The nice side effect, other than silencing the sanitizer bot is that it fixes the formatting of some dates, e.g. Jan 1st 1970. <rdar://problem/47617983> llvm-svn: 353191
* Update Xcode project after r353047Stefan Granitz2019-02-051-15/+12
| | | | llvm-svn: 353174
* [Expressions] Fix -Wreorder warning from r353149Krasimir Georgiev2019-02-051-4/+3
| | | | | | | | | | | | | | | | | | Summary: ``` ClangExpressionDeclMap.cpp:72:60: error: field 'm_struct_vars' will be initialized after field 'm_ctx_obj' [-Werror,-Wreorder] m_result_delegate(result_delegate), m_parser_vars(), m_struct_vars(), ``` Reviewers: bkramer, aleksandr.urakov Reviewed By: aleksandr.urakov Subscribers: aleksandr.urakov Differential Revision: https://reviews.llvm.org/D57742 llvm-svn: 353161
* [Expressions] Add support of expressions evaluation in some object's contextAleksandr Urakov2019-02-0526-44/+596
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This patch adds support of expression evaluation in a context of some object. Consider the following example: ``` struct S { int a = 11; int b = 12; }; int main() { S s; int a = 1; int b = 2; // We have stopped here return 0; } ``` This patch allows to do something like that: ``` lldb.frame.FindVariable("s").EvaluateExpression("a + b") ``` and the result will be `33` (not `3`) because fields `a` and `b` of `s` will be used (not locals `a` and `b`). This is achieved by replacing of `this` type and object for the expression. This has some limitations: an expression can be evaluated only for values located in the debuggee process memory (they must have an address of `eAddressTypeLoad` type). Reviewers: teemperor, clayborg, jingham, zturner, labath, davide, spyffe, serge-sans-paille Reviewed By: jingham Subscribers: abidh, lldb-commits, leonid.mashinskiy Tags: #lldb Differential Revision: https://reviews.llvm.org/D55318 llvm-svn: 353149
* [Python2 to Python 3] Fix print -> print().Davide Italiano2019-02-051-6/+6
| | | | llvm-svn: 353130
* Update stale comment in lang/c/struct_types/main.cJonas Devlieghere2019-02-041-2/+2
| | | | | | rdar://47322760 llvm-svn: 353087
* Fixes for the ProcessLaunchInfo movePavel Labath2019-02-042-2/+2
| | | | llvm-svn: 353049
* Move FileAction, ProcessInfo and ProcessLaunchInfo from Target to HostPavel Labath2019-02-0429-30/+102
| | | | | | | | | | | | | | | | | | | | | | | Summary: These classes describe the details of the process we are about to launch, and so they are naturally used by the launching code in the Host module. Previously they were present in Target because that is the most important (but by far not the only) user of the launching code. Since the launching code has other customers, must of which do not care about Targets, it makes sense to move these classes to the Host layer, next to the launching code. This move reduces the number of times that Target is included from host to 8 (it used to be 14). Reviewers: zturner, clayborg, jingham, davide, teemperor Subscribers: emaste, mgorny, lldb-commits Differential Revision: https://reviews.llvm.org/D56602 llvm-svn: 353047
* Fix the xcode build for r352845, attempt #2Stefan Granitz2019-02-011-0/+16
| | | | llvm-svn: 352902
* Revert "Fix the xcode build for r352845."Stefan Granitz2019-02-011-2663/+2651
| | | | | | This reverts commit 72c1213a5e901b80c0f1d2794e5088d7f71a3632. llvm-svn: 352901
* [lldb] Relax libc++ ABI version checkingThomas Anderson2019-02-011-95/+88
| | | | | | | | | | | | | libc++ has programmable ABI versioning controllable with the _LIBCPP_ABI_VERSION macro. Currently there are at least 3 settings used in real systems (1 as the default, ndk1 for Anroid, Cr for Chromium). Only the 1 and ndk1 cases were handled. This change relaxes the check to allow any ABI version. Differential Revision: https://reviews.llvm.org/D57466 llvm-svn: 352899
* Fix the xcode build for r352845.Jim Ingham2019-02-011-2651/+2663
| | | | llvm-svn: 352894
* [PDB] Fix build after r352845Aleksandr Urakov2019-02-011-1/+1
| | | | llvm-svn: 352858
* [PDB] Fix location retrieval for function local variables and arguments that areAleksandr Urakov2019-02-0122-929/+1514
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | stored relative to VFRAME Summary: This patch makes LLDB able to retrieve proper values for function arguments and local variables stored in PDB relative to VFRAME register. Patch contains retrieval of corresponding FPO table entries from PDB and a generic translator from FPO programs to DWARF expressions to get correct VFRAME value. Patch also improves variables-locations.test and makes this test passable on x86. Patch By: leonid.mashinsky Reviewers: zturner, asmith, stella.stamenova, aleksandr.urakov Reviewed By: zturner Subscribers: arphaman, labath, mgorny, aprantl, JDevlieghere, lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D55122 llvm-svn: 352845
* [unittest] Fix scalar unit test.Jonas Devlieghere2019-01-311-4/+4
| | | | | | | | The test was using ASSERT_EQ instead of ASSERT_STREQ which meant we were comparing string addresses instead of the actual string. This caused the test to fail with with the sanitizers enabled. llvm-svn: 352780
* Fix use of non-existing variable in crashlog.pyShafik Yaghmour2019-01-311-1/+1
| | | | | | | | | Summary: The method find_matching_slice(self) uses uuid_str on one of the paths but the variable does not exist and so this results in a NameError exception if we take that path. Differential Revision: https://reviews.llvm.org/D57467 llvm-svn: 352772
* [LLDB] FreeBSD suppress compilation warningDavid Carlier2019-01-311-1/+1
| | | | | | | | | | | | Reviewers: labath, teemperor Reviewed By: teemperor Differential Revision: https://reviews.llvm.org/D57506 M source/Plugins/Process/FreeBSD/ProcessMonitor.cpp llvm-svn: 352744
* Revert "[CMake] Unify scripts for generating VCS headers"Petr Hosek2019-01-312-18/+24
| | | | | | This reverts commits r352729 and r352731: this broke Sanitizer Windows bots llvm-svn: 352733
* [CMake] Migrate lldb to the new VCS scriptPetr Hosek2019-01-312-24/+18
| | | | | | This was accidentaly omitted from r352729 and broke lldb bots. llvm-svn: 352731
* [testsuite] Fix TestAppleSimulator so that it works with Python 3.Davide Italiano2019-01-312-3/+3
| | | | llvm-svn: 352710
* [Python] Fix gdb-remote and lldb-server utilities to work with Py3.Davide Italiano2019-01-312-5/+5
| | | | llvm-svn: 352709
* [Python] Python 2 and Python 3 disagree on `/`.Davide Italiano2019-01-311-1/+1
| | | | | | | | One considers it integer division, the other doesn't. Move to `//` (floor division) so that this test passes independently from the version. llvm-svn: 352706
OpenPOWER on IntegriCloud