Commit Graph

1103 Commits

Author SHA1 Message Date
Greg Clayton dab6189a59 Revert xcode scheme changes that I didn't mean to check in.
llvm-svn: 360072
2019-05-06 20:03:30 +00:00
Greg Clayton 8a7779209d Include inlined functions when figuring out a contiguous address range
Checking this in for Antonio Afonso:

This diff changes the function LineEntry::GetSameLineContiguousAddressRange so that it also includes function calls that were inlined at the same line of code.

My motivation is to decrease the step over time of lines that heavly rely on inlined functions. I have multiple examples in the code base I work that makes a step over stop 20 or mote times internally. This can easly had up to step overs that take >500ms which I was able to lower to 25ms with this new strategy.

The reason the current code is not extending the address range beyond an inlined function is because when we resolve the symbol at the next address of the line entry we will get the entry line corresponding to where the original code for the inline function lives, making us barely extend the range. This then will end up on a step over having to stop multiple times everytime there's an inlined function.

To check if the range is an inlined function at that line I also get the block associated with the next address and check if there is a parent block with a call site at the line we're trying to extend.

To check this I created a new function in Block called GetContainingInlinedBlockWithCallSite that does exactly that. I also added a new function to Declaration for convinence of checking file/line named CompareFileAndLine.

To avoid potential issues when extending an address range I added an Extend function that extends the range by the AddressRange given as an argument. This function returns true to indicate sucess when the rage was agumented, false otherwise (e.g.: the ranges are not connected). The reason I do is to make sure that we're not just blindly extending complete_line_range by whatever GetByteSize() we got. If for some reason the ranges are not connected or overlap, or even 0, this could be an issue.

I also added a unit tests for this change and include the instructions on the test itself on how to generate the yaml file I use for testing.


Differential Revision: https://reviews.llvm.org/D61292

llvm-svn: 360071
2019-05-06 20:01:21 +00:00
Jonas Devlieghere 4e6fd3ba91 Add CxxModuleHandler to Xcode project
llvm-svn: 359593
2019-04-30 18:21:14 +00:00
Jason Molenda d129ee34a5 add postfixexpression.cpp.
llvm-svn: 359130
2019-04-24 19:50:53 +00:00
Pavel Labath f96b6d9270 Kill modify-python-lldb.py
Summary:
After the last round of cleanups, this script was almost a no-op. The
only piece of functionality that remained was the one which tried to
make the swig-generated function signatures more pythonic.

The "tried" part is important here, as it wasn't doing a really good job
and the end result was not valid python nor c (e.g.,
SetExecutable(SBAttachInfo self, str const * path)).

Doing these transformations another way is not possible, as these
signatures are generated by swig, and not present in source. However,
given that this is the only reason why we need a swig post-process step,
and that the current implementation is pretty sub-optimal, this patch
simply abandons the signature fixup idea, and chooses to simplify our
build process instead.

Reviewers: amccarth, jingham, clayborg

Subscribers: mgorny, lldb-commits

Differential Revision: https://reviews.llvm.org/D61000

llvm-svn: 359092
2019-04-24 13:23:19 +00:00
Jonas Devlieghere f8819bd510 [Platform] Remove Kalimba Platform
This patch removes the Kalimba platform. For more information please
refer to the corresponding thread on the mailing list.

http://lists.llvm.org/pipermail/lldb-dev/2019-March/014921.html

llvm-svn: 357086
2019-03-27 16:23:50 +00:00
Jason Molenda db5edebea2 Update DWARF files.
llvm-svn: 356625
2019-03-20 22:57:33 +00:00
Jason Molenda 6a5fa552c7 Update.
llvm-svn: 356073
2019-03-13 18:24:42 +00:00
Jim Ingham 85c2955f45 Fix the project for r355939 (ASTUtils.{h,c})
llvm-svn: 355951
2019-03-12 18:48:58 +00:00
Jason Molenda a583486065 When disassembling Aarch64 target and vendor Apple, set the cpu to
"apple-latest" which llvm uses to indicate the newest supported ISA.
Add a unit test; I'm only testing an armv8.1 instruction in this
unit test which would already be disassembled correctly because we
set the disassembler to ARM v8.2 mode, but it ensures that nothing
has been broken by adding this cpu spec.

<rdar://problem/38714781> 

llvm-svn: 355578
2019-03-07 03:16:45 +00:00
Jim Ingham ea401ec7f4 Factor the clang specific parts of ExpressionSourceCode.{h,cpp} into the clang plugin.
NFC

Differential Revision: https://reviews.llvm.org/D59040

llvm-svn: 355560
2019-03-06 22:43:25 +00:00
Jonas Devlieghere bd4bf82a48 [SBAPI] Don't check IsValid in constructor
When running the test suite with the instrumentation macros, I noticed
two lldb-mi tests regressed. The issue was the copy constructor of
SBLineEntry. Without the macros the returned value would be elided, but
with the macros the copy constructor was called. The latter using ::IsValid
to determine whether the underlying opaque pointer should be set. This
is likely a remnant of when ::IsValid would only check the validity of the
smart pointer. In SBLineEntry however, it actually forwards to
LineEntry::IsValid().

So what happened here was that because of the macros the copy
constructor was called. The opaque pointer was valid but the LineEntry
didn't consider itself valid. So the copied-to object ended up default
initialized.

This patch replaces all checks for IsValid in copy (assignment)
constructors with checks for the opaque pointer itself.

Differential revision: https://reviews.llvm.org/D58946

llvm-svn: 355458
2019-03-06 00:05:55 +00:00
Jim Ingham 3fc1a73a79 Fix the Xcode project for UserIDResolver.
llvm-svn: 355358
2019-03-05 00:52:12 +00:00
Shoaib Meenai 5be71faf4b [build] Rename clang-headers to clang-resource-headers
Summary:
The current install-clang-headers target installs clang's resource
directory headers. This is different from the install-llvm-headers
target, which installs LLVM's API headers. We want to introduce the
corresponding target to clang, and the natural name for that new target
would be install-clang-headers. Rename the existing target to
install-clang-resource-headers to free up the install-clang-headers name
for the new target, following the discussion on cfe-dev [1].

I didn't find any bots on zorg referencing install-clang-headers. I'll
send out another PSA to cfe-dev to accompany this rename.

[1] http://lists.llvm.org/pipermail/cfe-dev/2019-February/061365.html

Reviewers: beanz, phosek, tstellar, rnk, dim, serge-sans-paille

Subscribers: mgorny, javed.absar, jdoerfert, #sanitizers, openmp-commits, lldb-commits, cfe-commits, llvm-commits

Tags: #clang, #sanitizers, #lldb, #openmp, #llvm

Differential Revision: https://reviews.llvm.org/D58791

llvm-svn: 355340
2019-03-04 21:19:53 +00:00
Jim Ingham 3139fc9767 Resubmit r354706 with a fix for process launch.
When the debugger is run in sync mode, you need to
be able to tell whether a hijacked resume is for some
special purpose (like waiting for the SIGSTOP on attach)
or just to perform a synchronous resume.  Target::Launch was doing
that wrong, and that caused stop-hooks on process launch
in source files to behave incorrectly.

<rdar://problem/48115661>

Differential Revision: https://reviews.llvm.org/D58727

llvm-svn: 355213
2019-03-01 18:13:38 +00:00
Jason Molenda f8fad6ca5b Symbols.cpp in unittest moved too.
llvm-svn: 355155
2019-02-28 23:37:28 +00:00
Jason Molenda 321f80e23f Move Symbols.cpp files.
llvm-svn: 355063
2019-02-28 01:26:01 +00:00
Jonas Devlieghere da9059aa66 Revert "[xcodeproj] Add SBReproducer to LLDB.framework"
This was bogus.

llvm-svn: 354639
2019-02-22 00:03:59 +00:00
Jonas Devlieghere 1877e275d2 [xcodeproj] Add SBReproducer to LLDB.framework
llvm-svn: 354637
2019-02-21 23:58:36 +00:00
Jonas Devlieghere 936c62422f [Reproducers] Initialize reproducers before initializing the debugger.
As per the discussion on the mailing list:
http://lists.llvm.org/pipermail/lldb-commits/Week-of-Mon-20190218/048007.html

This commit implements option (3):

> Go back to initializing the reproducer before the rest of the debugger.
> The method wouldn't be instrumented and guarantee no other SB methods are
> called or SB objects are constructed. The initialization then becomes part
> of the replay.

Differential revision: https://reviews.llvm.org/D58410

llvm-svn: 354631
2019-02-21 22:26:16 +00:00
Greg Clayton 46336896a3 Fix Xcode project for RemoteAwarePlatform files.
llvm-svn: 353856
2019-02-12 16:54:28 +00:00
Jonas Devlieghere 9c18978825 Fix my mistake adding SBReproducer the Xcode project
llvm-svn: 353361
2019-02-07 01:42:47 +00:00
Jonas Devlieghere e98f590c3e Add SBReproducer to Xcode project
llvm-svn: 353326
2019-02-06 19:05:43 +00:00
Jonas Devlieghere 7b3a0f17a5 [Reproducers] Add instrumentation to Xcode project
llvm-svn: 353259
2019-02-06 01:31:00 +00:00
Jonas Devlieghere cf26117095 Sort Xcode project
llvm-svn: 353258
2019-02-06 01:30:45 +00:00
Stefan Granitz 26693b909c Update Xcode project after r353047
llvm-svn: 353174
2019-02-05 14:41:26 +00:00
Stefan Granitz da8fe66cb4 Fix the xcode build for r352845, attempt #2
llvm-svn: 352902
2019-02-01 19:31:02 +00:00
Stefan Granitz 5c49a3f4cc Revert "Fix the xcode build for r352845."
This reverts commit 72c1213a5e901b80c0f1d2794e5088d7f71a3632.

llvm-svn: 352901
2019-02-01 19:30:57 +00:00
Jim Ingham 5c6544409a Fix the xcode build for r352845.
llvm-svn: 352894
2019-02-01 18:26:08 +00:00
Jonas Devlieghere 41287d511c Add Sphinx generated html files as output to the build phase.
This will ensure we don't rerun Sphinx when the files exist.

llvm-svn: 352703
2019-01-31 00:40:38 +00:00
Jonas Devlieghere 732f455386 Add lldb-docs target to Xcode project
This patch adds the lldb-docs target which generates the Sphinx html
documentation.

llvm-svn: 352696
2019-01-30 23:56:55 +00:00
Jonas Devlieghere 61d35249b1 Add FileCollector + test to Xcode project.
llvm-svn: 352570
2019-01-29 23:48:53 +00:00
Jim Ingham 02994735b7 Add unittests to the Xcode gtest target.
A handful of test files had been added to lldb, but not to the
appropriate target in the Xcode project.  So they weren't being
run in the Xcode gtest run.  Add them here.

llvm-svn: 352114
2019-01-24 22:03:36 +00:00
Jim Ingham e33a90b9cd Add BreakpadRecords to the Xcode project.
llvm-svn: 351585
2019-01-18 20:20:40 +00:00
Jason Molenda 0053d15d9c Add SymbolFileBreakpad.
llvm-svn: 350990
2019-01-12 03:17:39 +00:00
Adrian Prantl 062297dcc6 Remove Range.* from Xcode project
llvm-svn: 350264
2019-01-02 22:23:51 +00:00
Jason Molenda f00cf36290 Remove the zlib CFLAGS and LDFLAGS settings from the xcode project file.
We're linking against libcompression all the time now, we don't need to
fall back to zlib.  zlib support will still be used when lldb is built on
linux et al systems, so I'm not removing any of the source support, but
when built on darwin with xcode, we'll be using libcompression.

llvm-svn: 349572
2018-12-18 23:33:42 +00:00
Jason Molenda 4a793c846f Force libcompression calls to be enabled when building on Darwin
systems.  It has been available in the OS over over three years
now.  If lldb doesn't link against -lcompression, it should be an
error.

Allocate a scratch buffer for libcompression to use when decoding
packets, instead of it having to allocate & free one on every call.

Fix a typeo with the size of the buffer that compression_decode_buffer()
is expanding into.

<rdar://problem/41601084> 

llvm-svn: 349563
2018-12-18 23:02:50 +00:00
Jason Molenda a305151c40 Add PdbAstBuilder.cpp.
llvm-svn: 349406
2018-12-17 22:07:39 +00:00
Jim Ingham d81b96ece8 Fix the unittests for the move of Listener & Broadcaster
from Core to Utility.

llvm-svn: 349211
2018-12-14 23:27:08 +00:00
Greg Clayton 026e1bf56a Cache memory regions in ProcessMinidump and use the linux maps as the source of the information if available
Breakpad creates minidump files that sometimes have:
- linux maps textual content
- no MemoryInfoList

Right now unless the file has a MemoryInfoList we get no region information.

This patch:

- reads and caches the memory region info one time and sorts it for easy subsequent access
- get the region info from the best source in this order:
  - linux maps info (if available)
  - MemoryInfoList (if available)
  - MemoryList or Memory64List
- returns memory region info for the gaps between regions (before the first and after the last)

Differential Revision: https://reviews.llvm.org/D55522

llvm-svn: 349182
2018-12-14 19:36:01 +00:00
Greg Clayton 82694abac7 Fix Xcode project for MIPS architecture plug-in and move of Event, Listener and Broadcaster to Utility.
llvm-svn: 349180
2018-12-14 19:22:24 +00:00
Jim Ingham fed6740374 Add ObjectFileBreakpad.{cpp,h} to the Xcode project.
llvm-svn: 348890
2018-12-11 19:25:03 +00:00
Jim Ingham 5fa736cc19 Add SBInitializerOptions.h to the Xcode project.
And mark it as a public header so it will get copied
into the LLDB.framework.  A handful of "api" tests were
failing because they couldn't find this file.

llvm-svn: 348561
2018-12-07 02:28:04 +00:00
Jim Ingham 3fee41fef0 Fix the Xcode project build for the addition of NativePDB/DWARFLocationExpression.{h,cpp}
llvm-svn: 348519
2018-12-06 19:23:21 +00:00
Jason Molenda 24fb296589 Add SBInitializerOptions.cpp.
llvm-svn: 348300
2018-12-04 20:34:23 +00:00
Jonas Devlieghere 41c4fb40fc Fix the Xcode project (pt. 2)
Apparently LLVM's libSupport depends on libDemangle to print the stack
trace. I'm not sure if this is desired but for now we don't have much
choice if we want to turn to bot green again.

llvm-svn: 347952
2018-11-30 02:44:16 +00:00
Jonas Devlieghere c651e79c4a Fix the Xcode project
This fixes the driver with the Xcode project. We need to link the driver
against the correct LLVM libraries and make sure we're disabling
exceptions/rtti.

Thanks to Jim for helping me figure this out.

llvm-svn: 347936
2018-11-30 00:09:04 +00:00
Jonas Devlieghere 00eae5ea31 [Driver] Use libOption with tablegen.
This patch modifies the lldb driver to use libOption for option parsing.
It allows us to decouple option parsing from option processing which is
important when arguments affect initialization. This was previously not
possible because the debugger need to be initialized as some option
interpretation (like the scripting language etc) was handled by the
debugger, rather than in the driver.

Differential revision: https://reviews.llvm.org/D54692

llvm-svn: 347709
2018-11-27 21:00:32 +00:00
Jason Molenda ddfb07567d add PdbSymUid.cpp
llvm-svn: 347122
2018-11-17 01:08:01 +00:00