summaryrefslogtreecommitdiff
path: root/lldb/test/API/functionalities/param_entry_vals/basic_entry_values
AgeCommit message (Collapse)Author
2025-04-13[lldb][Format] Display only the inlined frame name in backtraces if ↵Michael Buch
available (#135343) When a frame is inlined, LLDB will display its name in backtraces as follows: ``` * thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.3 * frame #0: 0x0000000100000398 a.out`func() [inlined] baz(x=10) at inline.cpp:1:42 frame #1: 0x0000000100000398 a.out`func() [inlined] bar() at inline.cpp:2:37 frame #2: 0x0000000100000398 a.out`func() at inline.cpp:4:15 frame #3: 0x00000001000003c0 a.out`main at inline.cpp:7:5 frame #4: 0x000000026eb29ab8 dyld`start + 6812 ``` The longer the names get the more confusing this gets because the first function name that appears is the parent frame. My assumption (which may need some more surveying) is that for the majority of cases we only care about the actual frame name (not the parent). So this patch removes all the special logic that prints the parent frame. Another quirk of the current format is that the inlined frame name does not abide by the `${function.name-XXX}` format variables. We always just print the raw demangled name. With this patch, we would format the inlined frame name according to the `frame-format` setting (see the test-cases). If we really want to have the `parentFrame [inlined] inlinedFrame` format, we could expose it through a new `frame-format` variable (e..g., `${function.inlined-at-name}` and let the user decide where to place things.
2024-06-05[lldb] Return an llvm::Expected from DWARFExpression::Evaluate (NFCI) (#94420)Jonas Devlieghere
Change the signature of `DWARFExpression::Evaluate` and `DWARFExpressionList::Evaluate` to return an `llvm::Expected` instead of a boolean. This eliminates the `Status` output parameter and generally improves error handling.
2023-05-25[NFC][Py Reformat] Reformat python files in lldbJonas Devlieghere
This is an ongoing series of commits that are reformatting our Python code. Reformatting is done with `black` (23.1.0). If you end up having problems merging this commit because you have made changes to a python file, the best way to handle that is to run `git checkout --ours <yourfile>` and then reformat it with black. RFC: https://discourse.llvm.org/t/rfc-document-and-standardize-python-code-style Differential revision: https://reviews.llvm.org/D151460
2023-02-03[lldb] Enable arm64 target for entry values testFelipe de Azevedo Piovezan
This test is supposed to work in arm64. Differential Revision: https://reviews.llvm.org/D143265
2022-03-02[lldb] Update TestBasicEntryValues.py for `image lookup` outputJonas Devlieghere
Update TestBasicEntryValues.py for 15983c28aa81 which changes the output for `image lookup -v`. This should fix the debian and macos build bots.
2022-01-23Rough guess at fixing lldb tests to handle Clang defaulting to DWARFv5David Blaikie
2021-06-22[lldb] Bumb Clang version requirement for TestBasicEntryValues.py to 11Raphael Isemann
The test only passes with Clang>=11 so adjust the decorator. Failure output for Clang 10 is: --- FileCheck trace (code=1) --- FileCheck main.cpp -check-prefix=FUNC1-GNU FileCheck input: Address: a.out[0x0000000000401127] (a.out.PT_LOAD[1]..text + 263) Summary: a.out`func1(int&) + 23 at main.cpp:25:1 Module: file = "functionalities/param_entry_vals/basic_entry_values/BasicEntryValues_GNU.test_dwo/a.out", arch = "x86_64" CompileUnit: id = {0x00000000}, file = "functionalities/param_entry_vals/basic_entry_values/main.cpp", language = "c++11" Function: id = {0x400000000000010a}, name = "func1(int&)", mangled = "_Z5func1Ri", range = [0x0000000000401110-0x0000000000401129) FuncType: id = {0x400000000000010a}, byte-size = 0, decl = main.cpp:13, compiler_type = "void (int &)" Blocks: id = {0x400000000000010a}, range = [0x00401110-0x00401129) LineEntry: [0x0000000000401127-0x0000000000401130): functionalities/param_entry_vals/basic_entry_values/main.cpp:25:1 Symbol: id = {0x0000002c}, range = [0x0000000000401110-0x0000000000401129), name="func1(int&)", mangled="_Z5func1Ri" FileCheck output: functionalities/param_entry_vals/basic_entry_values/main.cpp:23:16: error: FUNC1-GNU: expected string not found in input // FUNC1-GNU: name = "sink", type = "int &", location = DW_OP_GNU_entry_value
2020-06-02[lldb] Skip tests exercising DW_OP_GNU_entry_value with dsymutilPavel Labath
It seems that this opcode needs explicit support in dsymutil. Disable these tests until that is implemented.
2020-06-02[lldb/DWARF] Add support for pre-standard GNU call site attributesPavel Labath
Summary: The code changes are very straight-forward -- just handle both DW_AT_GNU and DW_AT_call versions of all tags and attributes. There is just one small gotcha: in the GNU version, DW_AT_low_pc was used both for the "return pc" and the "call pc" values, depending on whether the tag was describing a tail call, while the official scheme uses different attributes for the two things. Reviewers: vsk, dblaikie Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D80519
2020-05-29[lldb] Make "inline" tests more configurablePavel Labath
Summary: This patch adds two new arguments to the MakeInlineTest function. The main motivation is a follow-up patch I'm preparing, but they seem generally useful. The first argument allows the user to specify the "build dictionary". With this argument one can avoid the need to provide a custom Makefile if all he needs is to override a couple of make variables. This hooks in neatly into the existing dictionary support for non-inline tests. The second argument specifies the name of the test. This could be used to provide better names to the generated test classes, but it's mainly useful in conjuction with the first argument: now that we can specify a custom build dictionary, it may sometimes make sense to run the same test twice with different build configurations. To achieve that, we need to give the two tests different names, and this argument achieves that. The usage of the arguments is demonstrated via TestBasicEntryValues.py. Reviewers: vsk, JDevlieghere Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D80518
2020-05-26[DwarfExpression] Support entry values for indirect parametersVedant Kumar
Summary: A struct argument can be passed-by-value to a callee via a pointer to a temporary stack copy. Add support for emitting an entry value DBG_VALUE when an indirect parameter DBG_VALUE becomes unavailable. This is done by omitting DW_OP_stack_value from the entry value expression, to make the expression describe the location of an object. rdar://63373691 Reviewers: djtodoro, aprantl, dstenb Subscribers: hiraditya, lldb-commits, llvm-commits Tags: #lldb, #llvm Differential Revision: https://reviews.llvm.org/D80345
2020-05-12[LLDB] Disable TestBasicEntryValues.py for armMuhammad Omair Javaid
TestBasicEntryValues.py fails on arm 32 bit. Currently running on silent master here: http://lab.llvm.org:8014/builders/lldb-arm-ubuntu/
2020-05-11[lldb] Speculative fix for the entry values test on arm64Pavel Labath
The bot fails with a message which seems to indicate a problem in option parsing. Avoid grouping the options to see if that helps.
2020-05-11[lldb] Revive TestBasicEntryValuesX86_64Pavel Labath
Summary: This function rewrites the test to be (hopefully) less susceptible to codegen changes and re-enables it. The most interesting changes are: - use an __attribute__((optnone)) function instead of a volatile asm to "use" a value. This isn't strictly necessary, but it makes the function simpler while achieving the same effect. - use a call to a function with the exact same signature instead of a volatile asm to "destroy" arguments. This makes the independent of the ABI, and (together with avoiding the usage of the arguments after the call) ensures that the compiler has no reason to move the argument from its initial register (previously we needed to guess where will the compiler store the arguments). Reviewers: vsk, djtodoro, dblaikie Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D79491