| // XFAIL: target-windows | |
| // Tests that LLDB correctly parses global symbols | |
| // starting with 'O'. On some platforms (e.g., Darwin) | |
| // C-symbols are prefixed with a '_'. The LLDB Macho-O | |
| // parses handles Objective-C metadata symbols starting | |
| // with '_OBJC' specially. This test ensures that we don't | |
| // lose track of regular global symbols with a '_O' prefix | |
| // in this. | |
| // RUN: %clang_host -c -g -fno-common %s -o %t.o | |
| // RUN: %clang_host %t.o -o %t.out | |
| // RUN: %lldb -b -x %t.out \ | |
| // RUN: -o "b 29" \ | |
| // RUN: -o "run" \ | |
| // RUN: -o "p OglobalVar" \ | |
| // RUN: -o "p Oabc" | FileCheck %s | |
| typedef struct { | |
| int a; | |
| } Oabc_t; | |
| Oabc_t Oabc; | |
| int OglobalVar; | |
| int main(int argc, const char *argv[]) { | |
| Oabc.a = 15; | |
| OglobalVar = 10; | |
| return OglobalVar + Oabc.a; | |
| } | |
| // CHECK: (lldb) p OglobalVar | |
| // CHECK: (int) 10 | |
| // CHECK: (lldb) p Oabc | |
| // CHECK: (Oabc_t) (a = 15) |