llvm-project/debuginfo-tests
Ahmed Bougacha 3629e3a2a8 [debuginfo-tests] Always use the system python to invoke llgdb.py.
/usr/bin/env is recommended as a cross-platform way to find python. But:
- we're only using lldb on darwin, where we know python (or at least,
  the xcrun-style shortcut) is in /usr/bin/
- the python interpreter in LLDB comes from /S/L/F:
  $ otool -L Contents/SharedFrameworks/LLDB.framework/LLDB | grep Python
   /System/Library/Frameworks/Python.framework/Versions/2.7/Python

so when we use the lldb python module, it calls into the swig/python
support in the lldb framework, and if there's a mismatch between the
interpreter and the linked python, weird things occur.

In theory, I believe this should be done by:
- looking for the LLDB framework (llgdb.py does some of that)
- finding the binary inside the framework
- looking for the Python it was linked against (otool -L)
- finding the interpreter executable inside the Python.framework

But in practice, that's only different if we use a custom LLDB
framework/pythonpath when running these tests, and AFAIK nobody does
that right now, so the code would be dead anyway.

Don't pretend we can use any arbitrary python: just use the system one.

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

llvm-svn: 334369
2018-06-10 19:38:26 +00:00
..
.arcconfig [debuginfo-tests] Support moving debuginfo-tests to llvm/projects 2017-12-12 16:54:20 +00:00
CMakeLists.txt [Darwin] Specify DWARF 2/4 when running apple accelerator tests. 2018-02-26 20:56:45 +00:00
README.txt
aggregate-indirect-arg.cpp Re-revert "Refactor debuginfo-tests." 2017-11-21 01:20:28 +00:00
apple-accel.cpp [Darwin] Specify DWARF 2/4 when running apple accelerator tests. 2018-02-26 20:56:45 +00:00
asan-blocks.c Revert "Temporarily pin tests to DWARF v2 until a more recent version of LLDB" 2017-12-07 19:40:31 +00:00
asan.c Revert "Temporarily pin tests to DWARF v2 until a more recent version of LLDB" 2017-12-07 19:40:31 +00:00
block_var.m Re-revert "Refactor debuginfo-tests." 2017-11-21 01:20:28 +00:00
blocks.m Re-revert "Refactor debuginfo-tests." 2017-11-21 01:20:28 +00:00
ctor.cpp Re-revert "Refactor debuginfo-tests." 2017-11-21 01:20:28 +00:00
dbg-arg.c Re-revert "Refactor debuginfo-tests." 2017-11-21 01:20:28 +00:00
foreach.m Re-revert "Refactor debuginfo-tests." 2017-11-21 01:20:28 +00:00
forward-declare-class.cpp Re-revert "Refactor debuginfo-tests." 2017-11-21 01:20:28 +00:00
lit.cfg.py [debuginfo-tests] Support moving debuginfo-tests to llvm/projects 2017-12-12 16:54:20 +00:00
lit.local.cfg Re-revert "Refactor debuginfo-tests." 2017-11-21 01:20:28 +00:00
lit.site.cfg.py.in [debuginfo-tests] Support moving debuginfo-tests to llvm/projects 2017-12-12 16:54:20 +00:00
llgdb.py Re-revert "Refactor debuginfo-tests." 2017-11-21 01:20:28 +00:00
nested-struct.cpp Re-revert "Refactor debuginfo-tests." 2017-11-21 01:20:28 +00:00
nrvo-string.cpp Revert "Temporarily pin tests to DWARF v2 until a more recent version of LLDB" 2017-12-07 19:40:31 +00:00
safestack.c Revert "Temporarily pin tests to DWARF v2 until a more recent version of LLDB" 2017-12-07 19:40:31 +00:00
sret.cpp Re-revert "Refactor debuginfo-tests." 2017-11-21 01:20:28 +00:00
stack-var.c Revert "Temporarily pin tests to DWARF v2 until a more recent version of LLDB" 2017-12-07 19:40:31 +00:00
static-member-2.cpp Re-revert "Refactor debuginfo-tests." 2017-11-21 01:20:28 +00:00
static-member.cpp Re-revert "Refactor debuginfo-tests." 2017-11-21 01:20:28 +00:00
test_debuginfo.pl [debuginfo-tests] Always use the system python to invoke llgdb.py. 2018-06-10 19:38:26 +00:00
vla.c Re-revert "Refactor debuginfo-tests." 2017-11-21 01:20:28 +00:00

README.txt

                                                                   -*- rst -*-
This is a collection of tests to check debugging information generated by 
compiler. This test suite can be checked out inside clang/test folder. This 
will enable 'make test' for clang to pick up these tests. Typically, test 
cases included here includes debugger commands and intended debugger output 
as comments in source file using DEBUGGER: and CHECK: as prefixes respectively.

For example::

  define i32 @f1(i32 %i) nounwind ssp {
  ; DEBUGGER: break f1
  ; DEBUGGER: r
  ; DEBUGGER: p i 
  ; CHECK: $1 = 42 
  entry:
  }

is a testcase where the debugger is asked to break at function 'f1' and 
print value of argument 'i'. The expected value of 'i' is 42 in this case.