View difference between Paste ID: a3V9n7bU and WNw1PciD
SHOW: | | - or go back to the newest paste.
1
> LLVM_SYMBOLIZER_PATH=llvm-symbolizer-11 ~/git/llvm-project/build_x64_optdebug/bin/lldb a.out
2
(lldb) target create "a.out"
3
Current executable set to '/home/werat/src/cpp/a.out' (x86_64).
4
(lldb) b main
5
Breakpoint 1: where = a.out`main + 20 at main.cc:10:3, address = 0x0000000000401124
6
(lldb) r
7
Process 514701 launched: '/home/werat/src/cpp/a.out' (x86_64)
8
Process 514701 stopped
9
* thread #1, name = 'a.out', stop reason = breakpoint 1.1
10
    frame #0: 0x0000000000401124 a.out`main(argc=1, argv=0x00007fffffffe0d8) at main.cc:10:3
11
   7    int main(int argc, char* argv[]) {
12
   8      (void)Foo::Bar;
13
   9   
14
-> 10     return 0;
15
   11   }
16
(lldb) log enable lldb expr -v 
17
(lldb) p (int*)100 + (long long)(&Foo::Bar)
18
== [UserExpression::Evaluate] Parsing expression (int*)100 + (long long)(&Foo::Bar) ==
19
ClangUserExpression::ScanContext()
20
Parsing the following code:
21
#line 1 "<lldb wrapper prefix>"
22
#ifndef offsetof
23
#define offsetof(t, d) __builtin_offsetof(t, d)
24
#endif
25
#ifndef NULL
26
#define NULL (__null)
27
#endif
28
#ifndef Nil
29
#define Nil (__null)
30
#endif
31
#ifndef nil
32
#define nil (__null)
33
#endif
34
#ifndef YES
35
#define YES ((BOOL)1)
36
#endif
37
#ifndef NO
38
#define NO ((BOOL)0)
39
#endif
40
typedef __INT8_TYPE__ int8_t;
41
typedef __UINT8_TYPE__ uint8_t;
42
typedef __INT16_TYPE__ int16_t;
43
typedef __UINT16_TYPE__ uint16_t;
44
typedef __INT32_TYPE__ int32_t;
45
typedef __UINT32_TYPE__ uint32_t;
46
typedef __INT64_TYPE__ int64_t;
47
typedef __UINT64_TYPE__ uint64_t;
48
typedef __INTPTR_TYPE__ intptr_t;
49
typedef __UINTPTR_TYPE__ uintptr_t;
50
typedef __SIZE_TYPE__ size_t;
51
typedef __PTRDIFF_TYPE__ ptrdiff_t;
52
typedef unsigned short unichar;
53
extern "C"
54
{
55
    int printf(const char * __restrict, ...);
56
}
57
58
59
60
typedef signed char BOOL;
61
62
63
void                           
64
$__lldb_expr(void *$__lldb_arg)          
65
{                              
66
    ;                        
67
#line 1 "<user expression 0>"
68
(int*)100 + (long long)(&Foo::Bar)
69
;
70
#line 1 "<lldb wrapper suffix>"
71
}                              
72
73
Frame has language of type c++14
74
Using x86_64-unknown-linux-gnu as the target triple
75
Using SIMD alignment: 128
76
Target datalayout string: 'e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128'
77
Target ABI: ''
78
Target vector alignment: 0
79
TransformTopLevelDecl(int8_t)
80
TransformTopLevelDecl(uint8_t)
81
TransformTopLevelDecl(int16_t)
82
TransformTopLevelDecl(uint16_t)
83
TransformTopLevelDecl(int32_t)
84
TransformTopLevelDecl(uint32_t)
85
TransformTopLevelDecl(int64_t)
86
TransformTopLevelDecl(uint64_t)
87
TransformTopLevelDecl(intptr_t)
88
TransformTopLevelDecl(uintptr_t)
89
TransformTopLevelDecl(size_t)
90
TransformTopLevelDecl(ptrdiff_t)
91
TransformTopLevelDecl(unichar)
92
TransformTopLevelDecl(printf)
93
TransformTopLevelDecl(BOOL)
94
ClangExpressionDeclMap::FindExternalVisibleDecls for '$__lldb_arg' in a 'TranslationUnit'
95
  CEDM::FEVD Searching the root namespace
96
ClangASTSource::FindExternalVisibleDecls on (ASTContext*)0x0000555FC5FD3F20 'Expression ASTContext for '<user expression 0>'' for '$__lldb_arg' in a 'TranslationUnit'
97
  CAS::FEVD Searching the root namespace
98
ClangExpressionDeclMap::FindExternalVisibleDecls for '$__lldb_expr' in a 'TranslationUnit'
99
  CEDM::FEVD Searching the root namespace
100
ClangASTSource::FindExternalVisibleDecls on (ASTContext*)0x0000555FC5FD3F20 'Expression ASTContext for '<user expression 0>'' for '$__lldb_expr' in a 'TranslationUnit'
101
  CAS::FEVD Searching the root namespace
102
ClangExpressionDeclMap::FindExternalVisibleDecls for 'Foo' in a 'TranslationUnit'
103
  CEDM::FEVD Searching the root namespace
104
ClangASTSource::FindExternalVisibleDecls on (ASTContext*)0x0000555FC5FD3F20 'Expression ASTContext for '<user expression 0>'' for 'Foo' in a 'TranslationUnit'
105
  CAS::FEVD Searching the root namespace
106
  CAS::FEVD Matching type found for "Foo": Foo
107
    [ClangASTImporter] Imported (CXXRecordDecl*)0x0000555FC5FF55D8, named Foo (from (Decl*)0x0000555FC5DE1268), metadata 61
108
    [ClangASTImporter] Decl has no origin information in (ASTContext*)0x0000555FC5DD45E0
109
    [ClangASTImporter] To is a TagDecl - attributes  Lexical [complete->complete]
110
FindExternalLexicalDecls on (ASTContext*)0x0000555FC5FD3F20 'Expression ASTContext for '<user expression 0>'' in 'Foo' (%sDecl*)CXXRecord
111
  FELD Original decl 0x0000555FC5DD45E0 (Decl*)0x0000555fc5de1268:
112
CXXRecordDecl 0x555fc5de1268 <<invalid sloc>> <invalid sloc> struct Foo definition
113
|-DefinitionData pass_in_registers empty aggregate standard_layout trivially_copyable pod trivial literal has_constexpr_non_copy_move_ctor can_const_default_init
114
| |-DefaultConstructor exists trivial constexpr needs_implicit defaulted_is_constexpr
115
| |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param
116
| |-MoveConstructor exists simple trivial needs_implicit
117
| |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param
118
| |-MoveAssignment exists simple trivial needs_implicit
119
| `-Destructor simple irrelevant trivial needs_implicit
120
`-VarDecl 0x555fc5de13a0 <<invalid sloc>> <invalid sloc> Bar 'int' static
121
122
  FELD Adding [to CXXRecordDecl Foo] lexical VarDecl VarDecl 0x555fc5de13a0 <<invalid sloc>> <invalid sloc> Bar 'int' static
123
124
    [ClangASTImporter] Imported (VarDecl*)0x0000555FC5FF5728, named Bar (from (Decl*)0x0000555FC5DE13A0), metadata 18446744073709551615
125
    [ClangASTImporter] Decl has no origin information in (ASTContext*)0x0000555FC5DD45E0
126
TransformTopLevelDecl($__lldb_expr)
127
Untransformed function AST:
128
void $__lldb_expr(void *$__lldb_arg) {
129
    ;
130
    (int *)100 + (long long)(&Foo::Bar);
131
}
132
133
Last statement is an rvalue with type: int *
134
Transformed function AST:
135
void $__lldb_expr(void *$__lldb_arg) {
136
    ;
137
    static int *$__lldb_expr_result(int *)100 + (long long)(&Foo::Bar);
138
}
139
140
Found function _Z12$__lldb_exprPv for $__lldb_expr
141
PrepareForExecution - Current expression language is c++14
142
143
Module as passed in to IRForTarget: 
144
"; ModuleID = '$__lldb_module'
145
source_filename = "$__lldb_module"
146
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
147
target triple = "x86_64-unknown-linux-gnu"
148
149
@"_ZZ12$__lldb_exprPvE19$__lldb_expr_result" = internal global i32* null, align 8
150
@"_ZGVZ12$__lldb_exprPvE19$__lldb_expr_result" = internal global i8 0, align 1
151
@_ZN3Foo3BarE = external global i32, align 4
152
153
; Function Attrs: convergent mustprogress noinline nounwind optnone
154
define dso_local void @"_Z12$__lldb_exprPv"(i8* noundef %"$__lldb_arg") #0 {
155
entry:
156
  %"$__lldb_arg.addr" = alloca i8*, align 8, !clang.decl.ptr !6
157
  store i8* %"$__lldb_arg", i8** %"$__lldb_arg.addr", align 8
158
  %0 = load i8, i8* @"_ZGVZ12$__lldb_exprPvE19$__lldb_expr_result", align 1
159
  %guard.uninitialized = icmp eq i8 %0, 0
160
  br i1 %guard.uninitialized, label %init.check, label %init.end, !prof !7
161
162
init.check:                                       ; preds = %entry
163
  store i32* getelementptr inbounds (i32, i32* inttoptr (i64 100 to i32*), i64 ptrtoint (i32* @_ZN3Foo3BarE to i64)), i32** @"_ZZ12$__lldb_exprPvE19$__lldb_expr_result", align 8
164
  store i8 1, i8* @"_ZGVZ12$__lldb_exprPvE19$__lldb_expr_result", align 1
165
  br label %init.end
166
167
init.end:                                         ; preds = %init.check, %entry
168
  ret void
169
}
170
171
attributes #0 = { convergent mustprogress noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-builtins" "no-trapping-math"="true" "stack-protector-buffer-size"="0" "target-features"="+cx8,+mmx,+sse,+sse2,+x87" }
172
173
!clang.global.decl.ptrs = !{!0, !1, !0, !2}
174
!llvm.module.flags = !{!3, !4}
175
!llvm.ident = !{!5}
176
177
!0 = !{i32** @"_ZZ12$__lldb_exprPvE19$__lldb_expr_result", i64 93869832559168}
178
!1 = !{void (i8*)* @"_Z12$__lldb_exprPv", i64 93869832098952}
179
!2 = !{i32* @_ZN3Foo3BarE, i64 93869832099624}
180
!3 = !{i32 1, !"wchar_size", i32 4}
181
!4 = !{i32 7, !"frame-pointer", i32 2}
182
!5 = !{!"clang version 14.0.0 (https://github.com/llvm/llvm-project.git d89490db70ebc6438db507a20ac9558e822f1453)"}
183
!6 = !{i64 93869832098728}
184
!7 = !{!"branch_weights", i32 1, i32 1048575}
185
"
186
Result name: "_ZZ12$__lldb_exprPvE19$__lldb_expr_result"
187
Found result in the IR: "@"_ZZ12$__lldb_exprPvE19$__lldb_expr_result" = internal global i32* null, align 8"
188
Found result decl: "static int *$__lldb_expr_result(int *)100 + (long long)(&Foo::Bar)"
189
Result decl type: "int *"
190
Creating a new result global: "$RESULT_NAME" with size 8
191
Replacing "@"_ZZ12$__lldb_exprPvE19$__lldb_expr_result" = internal global i32* null, align 8" with "@"$RESULT_NAME" = external global i32*"
192
    [ClangASTImporter] DeportType called on (int *Type*)0x0000555FC5FF5570 from (ASTContext*)0x0000555FC5FD3F20 to (ASTContext*)0x0000555FC5F58FA0
193
Module after creating the result variable: 
194
"; ModuleID = '$__lldb_module'
195
source_filename = "$__lldb_module"
196
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
197
target triple = "x86_64-unknown-linux-gnu"
198
199
@"_ZGVZ12$__lldb_exprPvE19$__lldb_expr_result" = internal global i8 0, align 1
200
@_ZN3Foo3BarE = external global i32, align 4
201
@reloc_placeholder = internal global i8 0
202
@"$RESULT_NAME" = external global i32*
203
204
; Function Attrs: convergent mustprogress noinline nounwind optnone
205
define dso_local void @"_Z12$__lldb_exprPv"(i8* noundef %"$__lldb_arg") #0 {
206
entry:
207
  %"$__lldb_arg.addr" = alloca i8*, align 8, !clang.decl.ptr !7
208
  store i8* %"$__lldb_arg", i8** %"$__lldb_arg.addr", align 8
209
  %0 = load i8, i8* @"_ZGVZ12$__lldb_exprPvE19$__lldb_expr_result", align 1
210
  %guard.uninitialized = icmp eq i8 %0, 0
211
  br i1 %guard.uninitialized, label %init.check, label %init.end, !prof !8
212
213
init.check:                                       ; preds = %entry
214
  store i32* getelementptr inbounds (i32, i32* inttoptr (i64 100 to i32*), i64 ptrtoint (i32* @_ZN3Foo3BarE to i64)), i32** @"$RESULT_NAME", align 8
215
  store i8 1, i8* @"_ZGVZ12$__lldb_exprPvE19$__lldb_expr_result", align 1
216
  br label %init.end
217
218
init.end:                                         ; preds = %init.check, %entry
219
  ret void
220
}
221
222
attributes #0 = { convergent mustprogress noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-builtins" "no-trapping-math"="true" "stack-protector-buffer-size"="0" "target-features"="+cx8,+mmx,+sse,+sse2,+x87" }
223
224
!clang.global.decl.ptrs = !{!0, !1, !0, !2, !3}
225
!llvm.module.flags = !{!4, !5}
226
!llvm.ident = !{!6}
227
228
!0 = distinct !{i32** @"$RESULT_NAME", i64 93869832559168}
229
!1 = !{void (i8*)* @"_Z12$__lldb_exprPv", i64 93869832098952}
230
!2 = !{i32* @_ZN3Foo3BarE, i64 93869832099624}
231
!3 = !{i32** @"$RESULT_NAME", i64 93869832559168}
232
!4 = !{i32 1, !"wchar_size", i32 4}
233
!5 = !{i32 7, !"frame-pointer", i32 2}
234
!6 = !{!"clang version 14.0.0 (https://github.com/llvm/llvm-project.git d89490db70ebc6438db507a20ac9558e822f1453)"}
235
!7 = !{i64 93869832098728}
236
!8 = !{!"branch_weights", i32 1, i32 1048575}
237
"
238
Examining _ZGVZ12$__lldb_exprPvE19$__lldb_expr_result, DeclForGlobalValue returns 0x0000000000000000
239
Examining _ZN3Foo3BarE, DeclForGlobalValue returns 0x0000555FC5FF5728
240
MaybeHandleVariable (@_ZN3Foo3BarE = external global i32, align 4)
241
Type of "Bar" is [clang "int", llvm "i32*"] [size 4, align 4]
242
Examining reloc_placeholder, DeclForGlobalValue returns 0x0000000000000000
243
Examining $RESULT_NAME, DeclForGlobalValue returns 0x0000555FC6065A40
244
MaybeHandleVariable (@"$RESULT_NAME" = external global i32*)
245
Type of "$__lldb_expr_result" is [clang "int **", llvm "i32***"] [size 8, align 8]
246
Adding value for (NamedDecl*)0x0000555FC6065A40 [$__lldb_expr_result - $RESULT_NAME] to the structure
247
Already placed at 0x0
248
Placed at 0x0
249
Element arrangement:
250
Arg: "i8* %"$__lldb_arg""
251
  "$RESULT_NAME" ("$__lldb_expr_result") placed at 0
252
    Replacing [@"$RESULT_NAME" = external global i32*]
253
Total structure [align 8, size 8]
254
Module after preparing for execution: 
255
"; ModuleID = '$__lldb_module'
256
source_filename = "$__lldb_module"
257
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
258
target triple = "x86_64-unknown-linux-gnu"
259
260
@"_ZGVZ12$__lldb_exprPvE19$__lldb_expr_result" = internal global i8 0, align 1
261
@_ZN3Foo3BarE = external global i32, align 4
262
@reloc_placeholder = internal global i8 0
263
264
; Function Attrs: convergent mustprogress noinline nounwind optnone
265
define dso_local void @"_Z12$__lldb_exprPv"(i8* noundef %"$__lldb_arg") #0 {
266
entry:
267
  %0 = getelementptr i8, i8* %"$__lldb_arg", i32 0
268
  %1 = bitcast i8* %0 to i32***
269
  %2 = load i32**, i32*** %1, align 8
270
  %"$__lldb_arg.addr" = alloca i8*, align 8, !clang.decl.ptr !7
271
  store i8* %"$__lldb_arg", i8** %"$__lldb_arg.addr", align 8
272
  %guard.uninitialized = icmp eq i8 0, 0
273
  br i1 %guard.uninitialized, label %init.check, label %init.end, !prof !8
274
275
init.check:                                       ; preds = %entry
276
  store i32* getelementptr inbounds (i32, i32* inttoptr (i64 100 to i32*), i64 ptrtoint (i32* @_ZN3Foo3BarE to i64)), i32** %2, align 8
277
  br label %init.end
278
279
init.end:                                         ; preds = %init.check, %entry
280
  ret void
281
}
282
283
attributes #0 = { convergent mustprogress noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-builtins" "no-trapping-math"="true" "stack-protector-buffer-size"="0" "target-features"="+cx8,+mmx,+sse,+sse2,+x87" }
284
285
!clang.global.decl.ptrs = !{!0, !1, !0, !2, !3}
286
!llvm.module.flags = !{!4, !5}
287
!llvm.ident = !{!6}
288
289
!0 = distinct !{null, i64 93869832559168}
290
!1 = !{void (i8*)* @"_Z12$__lldb_exprPv", i64 93869832098952}
291
!2 = !{i32* @_ZN3Foo3BarE, i64 93869832099624}
292
!3 = distinct !{null, i64 93869832559168}
293
!4 = !{i32 1, !"wchar_size", i32 4}
294
!5 = !{i32 7, !"frame-pointer", i32 2}
295
!6 = !{!"clang version 14.0.0 (https://github.com/llvm/llvm-project.git d89490db70ebc6438db507a20ac9558e822f1453)"}
296
!7 = !{i64 93869832098728}
297
!8 = !{!"branch_weights", i32 1, i32 1048575}
298
"
299
    [ClangASTImporter] Forgetting destination (ASTContext*)0x0000555FC5FD3F20
300
    [ClangASTImporter] Forgetting source->dest (ASTContext*)0x0000555FC5FD3F20->(ASTContext*)0x0000555FC5F58FA0
301
== [UserExpression::Evaluate] Executing expression ==
302
IRMemoryMap::Malloc (15, 0x8, 0x3, eAllocationPolicyHostOnly) -> 0x7ffff7fca000
303
IRMemoryMap::Malloc (524295, 0x8, 0x3, eAllocationPolicyHostOnly) -> 0x7ffff79f6000
304
IRMemoryMap::Malloc process_sp=0x555fc5de9ed0, process_sp->CanJIT()=true, process_sp->IsAlive()=true
305
IRMemoryMap::WriteMemory (0x7ffff7fca010, 0x555fc5d345e0, 0x8) went to [0x7ffff7fca010..0x7ffff7fca01f)
306
IRMemoryMap::Malloc (15, 0x8, 0x3, eAllocationPolicyMirror) -> 0x7ffff7fca010
307
IRMemoryMap::WriteMemory (0x7ffff7fca000, 0x7ffd03bc9ef0, 0x8) went to [0x7ffff7fca000..0x7ffff7fca00f)
308
Materializer::Materialize (frame_sp = 0x7f718c380640, process_address = 0x7ffff7fca000) materialized:
309
IRMemoryMap::ReadMemory (0x7ffff7fca000, 0x555fc5cdca40, 0x8) came from [0x7ffff7fca000..0x7ffff7fca00f)
310
IRMemoryMap::ReadMemory (0x7ffff7fca010, 0x555fc5cdca40, 0x8) came from [0x7ffff7fca010..0x7ffff7fca01f)
311
0x7ffff7fca000: EntityResultVariable
312
Pointer:
313
0x7ffff7fca000: 10 a0 fc f7 ff 7f 00 00
314
Temporary allocation:
315
0x7ffff7fca000: 00 00 00 00 00 00 00 00
316
317
Module as passed in to IRInterpreter::Interpret: 
318
"; ModuleID = '$__lldb_module'
319
source_filename = "$__lldb_module"
320
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
321
target triple = "x86_64-unknown-linux-gnu"
322
323
@"_ZGVZ12$__lldb_exprPvE19$__lldb_expr_result" = internal global i8 0, align 1
324
@_ZN3Foo3BarE = external global i32, align 4
325
@reloc_placeholder = internal global i8 0
326
327
; Function Attrs: convergent mustprogress noinline nounwind optnone
328
define dso_local void @"_Z12$__lldb_exprPv"(i8* noundef %"$__lldb_arg") #0 {
329
entry:
330
  %0 = getelementptr i8, i8* %"$__lldb_arg", i32 0
331
  %1 = bitcast i8* %0 to i32***
332
  %2 = load i32**, i32*** %1, align 8
333
  %"$__lldb_arg.addr" = alloca i8*, align 8, !clang.decl.ptr !7
334
  store i8* %"$__lldb_arg", i8** %"$__lldb_arg.addr", align 8
335
  %guard.uninitialized = icmp eq i8 0, 0
336
  br i1 %guard.uninitialized, label %init.check, label %init.end, !prof !8
337
338
init.check:                                       ; preds = %entry
339
  store i32* getelementptr inbounds (i32, i32* inttoptr (i64 100 to i32*), i64 ptrtoint (i32* @_ZN3Foo3BarE to i64)), i32** %2, align 8
340
  br label %init.end
341
342
init.end:                                         ; preds = %init.check, %entry
343
  ret void
344
}
345
346
attributes #0 = { convergent mustprogress noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-builtins" "no-trapping-math"="true" "stack-protector-buffer-size"="0" "target-features"="+cx8,+mmx,+sse,+sse2,+x87" }
347
348
!clang.global.decl.ptrs = !{!0, !1, !0, !2, !3}
349
!llvm.module.flags = !{!4, !5}
350
!llvm.ident = !{!6}
351
352
!0 = distinct !{null, i64 93869832559168}
353
!1 = !{void (i8*)* @"_Z12$__lldb_exprPv", i64 93869832098952}
354
!2 = !{i32* @_ZN3Foo3BarE, i64 93869832099624}
355
!3 = distinct !{null, i64 93869832559168}
356
!4 = !{i32 1, !"wchar_size", i32 4}
357
!5 = !{i32 7, !"frame-pointer", i32 2}
358
!6 = !{!"clang version 14.0.0 (https://github.com/llvm/llvm-project.git d89490db70ebc6438db507a20ac9558e822f1453)"}
359
!7 = !{i64 93869832098728}
360
!8 = !{!"branch_weights", i32 1, i32 1048575}
361
"
362
IRMemoryMap::WriteMemory (0x7ffff7a75ff8, 0x7ffd03bc9ae0, 0x8) went to [0x7ffff79f6000..0x7ffff7a76007)
363
Made an allocation for argument i8* %"$__lldb_arg"
364
  Data region    : 7ffff7fca000
365
  Ref region     : 7ffff7a75ff8
366
Interpreting %0 = getelementptr i8, i8* %"$__lldb_arg", i32 0
367
IRMemoryMap::WriteMemory (0x7ffff7a75ff0, 0x555fc5de8830, 0x8) went to [0x7ffff79f6000..0x7ffff7a76007)
368
Interpreted a GetElementPtrInst
369
  P       : i8* %"$__lldb_arg" 0x7ffff7a75ff8
370
  Poffset : %0 = getelementptr i8, i8* %"$__lldb_arg", i32 0 0x7ffff7a75ff0
371
Interpreting %1 = bitcast i8* %0 to i32***
372
IRMemoryMap::WriteMemory (0x7ffff7a75fe8, 0x555fc5de8830, 0x8) went to [0x7ffff79f6000..0x7ffff7a76007)
373
Interpreting %2 = load i32**, i32*** %1, align 8
374
IRMemoryMap::ReadMemory (0x7ffff7a75fe8, 0x555fc5de8830, 0x8) came from [0x7ffff79f6000..0x7ffff7a76007)
375
IRMemoryMap::ReadMemory (0x7ffff7fca000, 0x555fc5de8830, 0x8) came from [0x7ffff7fca000..0x7ffff7fca00f)
376
IRMemoryMap::WriteMemory (0x7ffff7a75fe0, 0x555fc5de8830, 0x8) went to [0x7ffff79f6000..0x7ffff7a76007)
377
Interpreted a LoadInst
378
  P : 0x7ffff7a75fe8
379
  R : 0x7ffff7fca000
380
  D : 0x7ffff7a75fe0
381
Interpreting %"$__lldb_arg.addr" = alloca i8*, align 8, !clang.decl.ptr !7
382
IRMemoryMap::WriteMemory (0x7ffff7a75fd0, 0x7ffd03bc9ae0, 0x8) went to [0x7ffff79f6000..0x7ffff7a76007)
383
Interpreted an AllocaInst
384
  R : 0x7ffff7a75fd8
385
  P : 0x7ffff7a75fd0
386
Interpreting store i8* %"$__lldb_arg", i8** %"$__lldb_arg.addr", align 8
387
IRMemoryMap::ReadMemory (0x7ffff7a75fd0, 0x555fc5c41d00, 0x8) came from [0x7ffff79f6000..0x7ffff7a76007)
388
IRMemoryMap::ReadMemory (0x7ffff7a75ff8, 0x555fc5c41d00, 0x8) came from [0x7ffff79f6000..0x7ffff7a76007)
389
IRMemoryMap::WriteMemory (0x7ffff7a75fd8, 0x555fc5c41d00, 0x8) went to [0x7ffff79f6000..0x7ffff7a76007)
390
Interpreted a StoreInst
391
  D : 0x7ffff7a75ff8
392
  P : 0x7ffff7a75fd0
393
  R : 0x7ffff7a75fd8
394
Interpreting %guard.uninitialized = icmp eq i8 0, 0
395
IRMemoryMap::WriteMemory (0x7ffff7a75fcf, 0x555fc5c41d00, 0x1) went to [0x7ffff79f6000..0x7ffff7a76007)
396
Interpreted an ICmpInst
397
  L : i8 0
398
  R : i8 0
399
  = : %guard.uninitialized = icmp eq i8 0, 0 0x7ffff7a75fcf
400
Interpreting br i1 %guard.uninitialized, label %init.check, label %init.end, !prof !8
401
Interpreted a BrInst with a condition
402
  cond : %guard.uninitialized = icmp eq i8 0, 0 0x7ffff7a75fcf
403
Interpreting store i32* getelementptr inbounds (i32, i32* inttoptr (i64 100 to i32*), i64 ptrtoint (i32* @_ZN3Foo3BarE to i64)), i32** %2, align 8
404
IRMemoryMap::WriteMemory (0x7ffff7a75fc0, 0x555fc5c41d00, 0x8) went to [0x7ffff79f6000..0x7ffff7a76007)
405
IRMemoryMap::ReadMemory (0x7ffff7a75fe0, 0x555fc5c41d00, 0x8) came from [0x7ffff79f6000..0x7ffff7a76007)
406
IRMemoryMap::ReadMemory (0x7ffff7a75fc0, 0x555fc5c41d00, 0x8) came from [0x7ffff79f6000..0x7ffff7a76007)
407
IRMemoryMap::WriteMemory (0x7ffff7fca010, 0x555fc5c41d00, 0x8) went to [0x7ffff7fca010..0x7ffff7fca01f)
408
Interpreted a StoreInst
409
  D : 0x7ffff7a75fc0
410
  P : 0x7ffff7a75fe0
411
  R : 0x7ffff7fca010
412
Interpreting br label %init.end
413
Interpreted a BrInst with no condition
414
Interpreting ret void
415
-- [UserExpression::FinalizeJITExecution] Dematerializing after execution --
416
Materializer::Dematerialize (frame_sp = 0x7f718c380640, process_address = 0x7ffff7fca000) about to dematerialize:
417
IRMemoryMap::ReadMemory (0x7ffff7fca000, 0x555fc5cdca40, 0x8) came from [0x7ffff7fca000..0x7ffff7fca00f)
418
IRMemoryMap::ReadMemory (0x7ffff7fca010, 0x555fc5cdca40, 0x8) came from [0x7ffff7fca010..0x7ffff7fca01f)
419
0x7ffff7fca000: EntityResultVariable
420
Pointer:
421
0x7ffff7fca000: 10 a0 fc f7 ff 7f 00 00
422
Temporary allocation:
423
0x7ffff7fca000: a8 40 00 00 00 00 00 00
424
425
IRMemoryMap::ReadMemory (0x7ffff7fca000, 0x555fc5cdca40, 0x8) came from [0x7ffff7fca000..0x7ffff7fca00f)
426
IRMemoryMap::ReadMemory (0x7ffff7fca010, 0x7f71c8052ad0, 0x8) came from [0x7ffff7fca010..0x7ffff7fca01f)
427
IRMemoryMap::Free (0x7ffff7fca010) freed [0x7ffff7fca010..0x7ffff7fca01f)
428
== [UserExpression::Evaluate] Execution completed normally with result 0x00000000000040a8 ==
429
IRMemoryMap::Free (0x7ffff79f6000) freed [0x7ffff79f6000..0x7ffff7a76007)
430
IRMemoryMap::Free (0x7ffff7fca000) freed [0x7ffff7fca000..0x7ffff7fca00f)
431
(int *) $0 = 0x00000000000040a8
432
(lldb) p (int*)100 + (long long)(&Foo::Bar)
433
== [UserExpression::Evaluate] Parsing expression (int*)100 + (long long)(&Foo::Bar) ==
434
ClangUserExpression::ScanContext()
435
Parsing the following code:
436
#line 1 "<lldb wrapper prefix>"
437
#ifndef offsetof
438
#define offsetof(t, d) __builtin_offsetof(t, d)
439
#endif
440
#ifndef NULL
441
#define NULL (__null)
442
#endif
443
#ifndef Nil
444
#define Nil (__null)
445
#endif
446
#ifndef nil
447
#define nil (__null)
448
#endif
449
#ifndef YES
450
#define YES ((BOOL)1)
451
#endif
452
#ifndef NO
453
#define NO ((BOOL)0)
454
#endif
455
typedef __INT8_TYPE__ int8_t;
456
typedef __UINT8_TYPE__ uint8_t;
457
typedef __INT16_TYPE__ int16_t;
458
typedef __UINT16_TYPE__ uint16_t;
459
typedef __INT32_TYPE__ int32_t;
460
typedef __UINT32_TYPE__ uint32_t;
461
typedef __INT64_TYPE__ int64_t;
462
typedef __UINT64_TYPE__ uint64_t;
463
typedef __INTPTR_TYPE__ intptr_t;
464
typedef __UINTPTR_TYPE__ uintptr_t;
465
typedef __SIZE_TYPE__ size_t;
466
typedef __PTRDIFF_TYPE__ ptrdiff_t;
467
typedef unsigned short unichar;
468
extern "C"
469
{
470
    int printf(const char * __restrict, ...);
471
}
472
473
474
475
typedef signed char BOOL;
476
477
478
void                           
479
$__lldb_expr(void *$__lldb_arg)          
480
{                              
481
    ;                        
482
#line 1 "<user expression 1>"
483
(int*)100 + (long long)(&Foo::Bar)
484
;
485
#line 1 "<lldb wrapper suffix>"
486
}                              
487
488
Frame has language of type c++14
489
Using x86_64-unknown-linux-gnu as the target triple
490
Using SIMD alignment: 128
491
Target datalayout string: 'e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128'
492
Target ABI: ''
493
Target vector alignment: 0
494
TransformTopLevelDecl(int8_t)
495
TransformTopLevelDecl(uint8_t)
496
TransformTopLevelDecl(int16_t)
497
TransformTopLevelDecl(uint16_t)
498
TransformTopLevelDecl(int32_t)
499
TransformTopLevelDecl(uint32_t)
500
TransformTopLevelDecl(int64_t)
501
TransformTopLevelDecl(uint64_t)
502
TransformTopLevelDecl(intptr_t)
503
TransformTopLevelDecl(uintptr_t)
504
TransformTopLevelDecl(size_t)
505
TransformTopLevelDecl(ptrdiff_t)
506
TransformTopLevelDecl(unichar)
507
TransformTopLevelDecl(printf)
508
TransformTopLevelDecl(BOOL)
509
ClangExpressionDeclMap::FindExternalVisibleDecls for '$__lldb_arg' in a 'TranslationUnit'
510
  CEDM::FEVD Searching the root namespace
511
ClangASTSource::FindExternalVisibleDecls on (ASTContext*)0x0000555FC5FD5F40 'Expression ASTContext for '<user expression 1>'' for '$__lldb_arg' in a 'TranslationUnit'
512
  CAS::FEVD Searching the root namespace
513
ClangExpressionDeclMap::FindExternalVisibleDecls for '$__lldb_expr' in a 'TranslationUnit'
514
  CEDM::FEVD Searching the root namespace
515
ClangASTSource::FindExternalVisibleDecls on (ASTContext*)0x0000555FC5FD5F40 'Expression ASTContext for '<user expression 1>'' for '$__lldb_expr' in a 'TranslationUnit'
516
  CAS::FEVD Searching the root namespace
517
ClangExpressionDeclMap::FindExternalVisibleDecls for 'Foo' in a 'TranslationUnit'
518
  CEDM::FEVD Searching the root namespace
519
ClangASTSource::FindExternalVisibleDecls on (ASTContext*)0x0000555FC5FD5F40 'Expression ASTContext for '<user expression 1>'' for 'Foo' in a 'TranslationUnit'
520
  CAS::FEVD Searching the root namespace
521
  CAS::FEVD Matching type found for "Foo": Foo
522
    [ClangASTImporter] Imported (CXXRecordDecl*)0x0000555FC600D1B8, named Foo (from (Decl*)0x0000555FC5DE1268), metadata 61
523
    [ClangASTImporter] Decl has no origin information in (ASTContext*)0x0000555FC5DD45E0
524
    [ClangASTImporter] To is a TagDecl - attributes  Lexical [complete->complete]
525
FindExternalLexicalDecls on (ASTContext*)0x0000555FC5FD5F40 'Expression ASTContext for '<user expression 1>'' in 'Foo' (%sDecl*)CXXRecord
526
  FELD Original decl 0x0000555FC5DD45E0 (Decl*)0x0000555fc5de1268:
527
CXXRecordDecl 0x555fc5de1268 <<invalid sloc>> <invalid sloc> struct Foo definition
528
|-DefinitionData pass_in_registers empty aggregate standard_layout trivially_copyable pod trivial literal has_constexpr_non_copy_move_ctor can_const_default_init
529
| |-DefaultConstructor exists trivial constexpr needs_implicit defaulted_is_constexpr
530
| |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param
531
| |-MoveConstructor exists simple trivial needs_implicit
532
| |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param
533
| |-MoveAssignment exists simple trivial needs_implicit
534
| `-Destructor simple irrelevant trivial needs_implicit
535
`-VarDecl 0x555fc5de13a0 <<invalid sloc>> <invalid sloc> Bar 'int' static
536
537
  FELD Adding [to CXXRecordDecl Foo] lexical VarDecl VarDecl 0x555fc5de13a0 <<invalid sloc>> <invalid sloc> Bar 'int' static
538
539
    [ClangASTImporter] Imported (VarDecl*)0x0000555FC600D308, named Bar (from (Decl*)0x0000555FC5DE13A0), metadata 18446744073709551615
540
    [ClangASTImporter] Decl has no origin information in (ASTContext*)0x0000555FC5DD45E0
541
TransformTopLevelDecl($__lldb_expr)
542
Untransformed function AST:
543
void $__lldb_expr(void *$__lldb_arg) {
544
    ;
545
    (int *)100 + (long long)(&Foo::Bar);
546
}
547
548
Last statement is an rvalue with type: int *
549
Transformed function AST:
550
void $__lldb_expr(void *$__lldb_arg) {
551
    ;
552
    static int *$__lldb_expr_result(int *)100 + (long long)(&Foo::Bar);
553
}
554
555
Found function _Z12$__lldb_exprPv for $__lldb_expr
556
PrepareForExecution - Current expression language is c++14
557
558
Module as passed in to IRForTarget: 
559
"; ModuleID = '$__lldb_module'
560
source_filename = "$__lldb_module"
561
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
562
target triple = "x86_64-unknown-linux-gnu"
563
564
@"_ZZ12$__lldb_exprPvE19$__lldb_expr_result" = internal global i32* null, align 8
565
@"_ZGVZ12$__lldb_exprPvE19$__lldb_expr_result" = internal global i8 0, align 1
566
@_ZN3Foo3BarE = external global i32, align 4
567
568
; Function Attrs: convergent mustprogress noinline nounwind optnone
569
define dso_local void @"_Z12$__lldb_exprPv"(i8* noundef %"$__lldb_arg") #0 {
570
entry:
571
  %"$__lldb_arg.addr" = alloca i8*, align 8, !clang.decl.ptr !6
572
  store i8* %"$__lldb_arg", i8** %"$__lldb_arg.addr", align 8
573
  %0 = load i8, i8* @"_ZGVZ12$__lldb_exprPvE19$__lldb_expr_result", align 1
574
  %guard.uninitialized = icmp eq i8 %0, 0
575
  br i1 %guard.uninitialized, label %init.check, label %init.end, !prof !7
576
577
init.check:                                       ; preds = %entry
578
  store i32* getelementptr inbounds (i32, i32* inttoptr (i64 100 to i32*), i64 ptrtoint (i32* @_ZN3Foo3BarE to i64)), i32** @"_ZZ12$__lldb_exprPvE19$__lldb_expr_result", align 8
579
  store i8 1, i8* @"_ZGVZ12$__lldb_exprPvE19$__lldb_expr_result", align 1
580
  br label %init.end
581
582
init.end:                                         ; preds = %init.check, %entry
583
  ret void
584
}
585
586
attributes #0 = { convergent mustprogress noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-builtins" "no-trapping-math"="true" "stack-protector-buffer-size"="0" "target-features"="+cx8,+mmx,+sse,+sse2,+x87" }
587
588
!clang.global.decl.ptrs = !{!0, !1, !0, !2}
589
!llvm.module.flags = !{!3, !4}
590
!llvm.ident = !{!5}
591
592
!0 = !{i32** @"_ZZ12$__lldb_exprPvE19$__lldb_expr_result", i64 93869831910512}
593
!1 = !{void (i8*)* @"_Z12$__lldb_exprPv", i64 93869832196200}
594
!2 = !{i32* @_ZN3Foo3BarE, i64 93869832196872}
595
!3 = !{i32 1, !"wchar_size", i32 4}
596
!4 = !{i32 7, !"frame-pointer", i32 2}
597
!5 = !{!"clang version 14.0.0 (https://github.com/llvm/llvm-project.git d89490db70ebc6438db507a20ac9558e822f1453)"}
598
!6 = !{i64 93869832195976}
599
!7 = !{!"branch_weights", i32 1, i32 1048575}
600
"
601
Result name: "_ZZ12$__lldb_exprPvE19$__lldb_expr_result"
602
Found result in the IR: "@"_ZZ12$__lldb_exprPvE19$__lldb_expr_result" = internal global i32* null, align 8"
603
Found result decl: "static int *$__lldb_expr_result(int *)100 + (long long)(&Foo::Bar)"
604
Result decl type: "int *"
605
Creating a new result global: "$RESULT_NAME" with size 8
606
Replacing "@"_ZZ12$__lldb_exprPvE19$__lldb_expr_result" = internal global i32* null, align 8" with "@"$RESULT_NAME" = external global i32*"
607
    [ClangASTImporter] DeportType called on (int *Type*)0x0000555FC600D150 from (ASTContext*)0x0000555FC5FD5F40 to (ASTContext*)0x0000555FC5F58FA0
608
Module after creating the result variable: 
609
"; ModuleID = '$__lldb_module'
610
source_filename = "$__lldb_module"
611
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
612
target triple = "x86_64-unknown-linux-gnu"
613
614
@"_ZGVZ12$__lldb_exprPvE19$__lldb_expr_result" = internal global i8 0, align 1
615
@_ZN3Foo3BarE = external global i32, align 4
616
@reloc_placeholder = internal global i8 0
617
@"$RESULT_NAME" = external global i32*
618
619
; Function Attrs: convergent mustprogress noinline nounwind optnone
620
define dso_local void @"_Z12$__lldb_exprPv"(i8* noundef %"$__lldb_arg") #0 {
621
entry:
622
  %"$__lldb_arg.addr" = alloca i8*, align 8, !clang.decl.ptr !7
623
  store i8* %"$__lldb_arg", i8** %"$__lldb_arg.addr", align 8
624
  %0 = load i8, i8* @"_ZGVZ12$__lldb_exprPvE19$__lldb_expr_result", align 1
625
  %guard.uninitialized = icmp eq i8 %0, 0
626
  br i1 %guard.uninitialized, label %init.check, label %init.end, !prof !8
627
628
init.check:                                       ; preds = %entry
629
  store i32* getelementptr inbounds (i32, i32* inttoptr (i64 100 to i32*), i64 ptrtoint (i32* @_ZN3Foo3BarE to i64)), i32** @"$RESULT_NAME", align 8
630
  store i8 1, i8* @"_ZGVZ12$__lldb_exprPvE19$__lldb_expr_result", align 1
631
  br label %init.end
632
633
init.end:                                         ; preds = %init.check, %entry
634
  ret void
635
}
636
637
attributes #0 = { convergent mustprogress noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-builtins" "no-trapping-math"="true" "stack-protector-buffer-size"="0" "target-features"="+cx8,+mmx,+sse,+sse2,+x87" }
638
639
!clang.global.decl.ptrs = !{!0, !1, !0, !2, !3}
640
!llvm.module.flags = !{!4, !5}
641
!llvm.ident = !{!6}
642
643
!0 = distinct !{i32** @"$RESULT_NAME", i64 93869831910512}
644
!1 = !{void (i8*)* @"_Z12$__lldb_exprPv", i64 93869832196200}
645
!2 = !{i32* @_ZN3Foo3BarE, i64 93869832196872}
646
!3 = !{i32** @"$RESULT_NAME", i64 93869831910512}
647
!4 = !{i32 1, !"wchar_size", i32 4}
648
!5 = !{i32 7, !"frame-pointer", i32 2}
649
!6 = !{!"clang version 14.0.0 (https://github.com/llvm/llvm-project.git d89490db70ebc6438db507a20ac9558e822f1453)"}
650
!7 = !{i64 93869832195976}
651
!8 = !{!"branch_weights", i32 1, i32 1048575}
652
"
653
Examining _ZGVZ12$__lldb_exprPvE19$__lldb_expr_result, DeclForGlobalValue returns 0x0000000000000000
654
Examining _ZN3Foo3BarE, DeclForGlobalValue returns 0x0000555FC600D308
655
MaybeHandleVariable (@_ZN3Foo3BarE = external global i32, align 4)
656
Type of "Bar" is [clang "int", llvm "i32*"] [size 4, align 4]
657
Examining reloc_placeholder, DeclForGlobalValue returns 0x0000000000000000
658
Examining $RESULT_NAME, DeclForGlobalValue returns 0x0000555FC5FC7470
659
MaybeHandleVariable (@"$RESULT_NAME" = external global i32*)
660
Type of "$__lldb_expr_result" is [clang "int **", llvm "i32***"] [size 8, align 8]
661
Adding value for (NamedDecl*)0x0000555FC5FC7470 [$__lldb_expr_result - $RESULT_NAME] to the structure
662
Already placed at 0x0
663
Placed at 0x0
664
Element arrangement:
665
Arg: "i8* %"$__lldb_arg""
666
  "$RESULT_NAME" ("$__lldb_expr_result") placed at 0
667
    Replacing [@"$RESULT_NAME" = external global i32*]
668
Total structure [align 8, size 8]
669
Module after preparing for execution: 
670
"; ModuleID = '$__lldb_module'
671
source_filename = "$__lldb_module"
672
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
673
target triple = "x86_64-unknown-linux-gnu"
674
675
@"_ZGVZ12$__lldb_exprPvE19$__lldb_expr_result" = internal global i8 0, align 1
676
@_ZN3Foo3BarE = external global i32, align 4
677
@reloc_placeholder = internal global i8 0
678
679
; Function Attrs: convergent mustprogress noinline nounwind optnone
680
define dso_local void @"_Z12$__lldb_exprPv"(i8* noundef %"$__lldb_arg") #0 {
681
entry:
682
  %0 = getelementptr i8, i8* %"$__lldb_arg", i32 0
683
  %1 = bitcast i8* %0 to i32***
684
  %2 = load i32**, i32*** %1, align 8
685
  %"$__lldb_arg.addr" = alloca i8*, align 8, !clang.decl.ptr !7
686
  store i8* %"$__lldb_arg", i8** %"$__lldb_arg.addr", align 8
687
  %guard.uninitialized = icmp eq i8 0, 0
688
  br i1 %guard.uninitialized, label %init.check, label %init.end, !prof !8
689
690
init.check:                                       ; preds = %entry
691
  store i32* getelementptr inbounds (i32, i32* inttoptr (i64 100 to i32*), i64 ptrtoint (i32* @_ZN3Foo3BarE to i64)), i32** %2, align 8
692
  br label %init.end
693
694
init.end:                                         ; preds = %init.check, %entry
695
  ret void
696
}
697
698
attributes #0 = { convergent mustprogress noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-builtins" "no-trapping-math"="true" "stack-protector-buffer-size"="0" "target-features"="+cx8,+mmx,+sse,+sse2,+x87" }
699
700
!clang.global.decl.ptrs = !{!0, !1, !0, !2, !3}
701
!llvm.module.flags = !{!4, !5}
702
!llvm.ident = !{!6}
703
704
!0 = distinct !{null, i64 93869831910512}
705
!1 = !{void (i8*)* @"_Z12$__lldb_exprPv", i64 93869832196200}
706
!2 = !{i32* @_ZN3Foo3BarE, i64 93869832196872}
707
!3 = distinct !{null, i64 93869831910512}
708
!4 = !{i32 1, !"wchar_size", i32 4}
709
!5 = !{i32 7, !"frame-pointer", i32 2}
710
!6 = !{!"clang version 14.0.0 (https://github.com/llvm/llvm-project.git d89490db70ebc6438db507a20ac9558e822f1453)"}
711
!7 = !{i64 93869832195976}
712
!8 = !{!"branch_weights", i32 1, i32 1048575}
713
"
714
    [ClangASTImporter] Forgetting destination (ASTContext*)0x0000555FC5FD5F40
715
    [ClangASTImporter] Forgetting source->dest (ASTContext*)0x0000555FC5FD5F40->(ASTContext*)0x0000555FC5F58FA0
716
== [UserExpression::Evaluate] Executing expression ==
717
IRMemoryMap::Malloc (15, 0x8, 0x3, eAllocationPolicyHostOnly) -> 0x7ffff7fca000
718
IRMemoryMap::Malloc (524295, 0x8, 0x3, eAllocationPolicyHostOnly) -> 0x7ffff79f6000
719
IRMemoryMap::Malloc process_sp=0x555fc5de9ed0, process_sp->CanJIT()=true, process_sp->IsAlive()=true
720
IRMemoryMap::WriteMemory (0x7ffff7fca010, 0x555fc5cf38b0, 0x8) went to [0x7ffff7fca010..0x7ffff7fca01f)
721
IRMemoryMap::Malloc (15, 0x8, 0x3, eAllocationPolicyMirror) -> 0x7ffff7fca010
722
IRMemoryMap::WriteMemory (0x7ffff7fca000, 0x7ffd03bc9ef0, 0x8) went to [0x7ffff7fca000..0x7ffff7fca00f)
723
Materializer::Materialize (frame_sp = 0x7f718c380640, process_address = 0x7ffff7fca000) materialized:
724
IRMemoryMap::ReadMemory (0x7ffff7fca000, 0x555fc5c4ed00, 0x8) came from [0x7ffff7fca000..0x7ffff7fca00f)
725
IRMemoryMap::ReadMemory (0x7ffff7fca010, 0x555fc5c4ed00, 0x8) came from [0x7ffff7fca010..0x7ffff7fca01f)
726
0x7ffff7fca000: EntityResultVariable
727
Pointer:
728
0x7ffff7fca000: 10 a0 fc f7 ff 7f 00 00
729
Temporary allocation:
730
0x7ffff7fca000: 00 00 00 00 00 00 00 00
731
732
Module as passed in to IRInterpreter::Interpret: 
733
"; ModuleID = '$__lldb_module'
734
source_filename = "$__lldb_module"
735
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
736
target triple = "x86_64-unknown-linux-gnu"
737
738
@"_ZGVZ12$__lldb_exprPvE19$__lldb_expr_result" = internal global i8 0, align 1
739
@_ZN3Foo3BarE = external global i32, align 4
740
@reloc_placeholder = internal global i8 0
741
742
; Function Attrs: convergent mustprogress noinline nounwind optnone
743
define dso_local void @"_Z12$__lldb_exprPv"(i8* noundef %"$__lldb_arg") #0 {
744
entry:
745
  %0 = getelementptr i8, i8* %"$__lldb_arg", i32 0
746
  %1 = bitcast i8* %0 to i32***
747
  %2 = load i32**, i32*** %1, align 8
748
  %"$__lldb_arg.addr" = alloca i8*, align 8, !clang.decl.ptr !7
749
  store i8* %"$__lldb_arg", i8** %"$__lldb_arg.addr", align 8
750
  %guard.uninitialized = icmp eq i8 0, 0
751
  br i1 %guard.uninitialized, label %init.check, label %init.end, !prof !8
752
753
init.check:                                       ; preds = %entry
754
  store i32* getelementptr inbounds (i32, i32* inttoptr (i64 100 to i32*), i64 ptrtoint (i32* @_ZN3Foo3BarE to i64)), i32** %2, align 8
755
  br label %init.end
756
757
init.end:                                         ; preds = %init.check, %entry
758
  ret void
759
}
760
761
attributes #0 = { convergent mustprogress noinline nounwind optnone "frame-pointer"="all" "min-legal-vector-width"="0" "no-builtins" "no-trapping-math"="true" "stack-protector-buffer-size"="0" "target-features"="+cx8,+mmx,+sse,+sse2,+x87" }
762
763
!clang.global.decl.ptrs = !{!0, !1, !0, !2, !3}
764
!llvm.module.flags = !{!4, !5}
765
!llvm.ident = !{!6}
766
767
!0 = distinct !{null, i64 93869831910512}
768
!1 = !{void (i8*)* @"_Z12$__lldb_exprPv", i64 93869832196200}
769
!2 = !{i32* @_ZN3Foo3BarE, i64 93869832196872}
770
!3 = distinct !{null, i64 93869831910512}
771
!4 = !{i32 1, !"wchar_size", i32 4}
772
!5 = !{i32 7, !"frame-pointer", i32 2}
773
!6 = !{!"clang version 14.0.0 (https://github.com/llvm/llvm-project.git d89490db70ebc6438db507a20ac9558e822f1453)"}
774
!7 = !{i64 93869832195976}
775
!8 = !{!"branch_weights", i32 1, i32 1048575}
776
"
777
IRMemoryMap::WriteMemory (0x7ffff7a75ff8, 0x7ffd03bc9ae0, 0x8) went to [0x7ffff79f6000..0x7ffff7a76007)
778
Made an allocation for argument i8* %"$__lldb_arg"
779
  Data region    : 7ffff7fca000
780
  Ref region     : 7ffff7a75ff8
781
Interpreting %0 = getelementptr i8, i8* %"$__lldb_arg", i32 0
782
IRMemoryMap::WriteMemory (0x7ffff7a75ff0, 0x555fc5c35270, 0x8) went to [0x7ffff79f6000..0x7ffff7a76007)
783
Interpreted a GetElementPtrInst
784
  P       : i8* %"$__lldb_arg" 0x7ffff7a75ff8
785
  Poffset : %0 = getelementptr i8, i8* %"$__lldb_arg", i32 0 0x7ffff7a75ff0
786
Interpreting %1 = bitcast i8* %0 to i32***
787
IRMemoryMap::WriteMemory (0x7ffff7a75fe8, 0x555fc5c35270, 0x8) went to [0x7ffff79f6000..0x7ffff7a76007)
788
Interpreting %2 = load i32**, i32*** %1, align 8
789
IRMemoryMap::ReadMemory (0x7ffff7a75fe8, 0x555fc5c35270, 0x8) came from [0x7ffff79f6000..0x7ffff7a76007)
790
IRMemoryMap::ReadMemory (0x7ffff7fca000, 0x555fc5c35270, 0x8) came from [0x7ffff7fca000..0x7ffff7fca00f)
791
IRMemoryMap::WriteMemory (0x7ffff7a75fe0, 0x555fc5c35270, 0x8) went to [0x7ffff79f6000..0x7ffff7a76007)
792
Interpreted a LoadInst
793
  P : 0x7ffff7a75fe8
794
  R : 0x7ffff7fca000
795
  D : 0x7ffff7a75fe0
796
Interpreting %"$__lldb_arg.addr" = alloca i8*, align 8, !clang.decl.ptr !7
797
IRMemoryMap::WriteMemory (0x7ffff7a75fd0, 0x7ffd03bc9ae0, 0x8) went to [0x7ffff79f6000..0x7ffff7a76007)
798
Interpreted an AllocaInst
799
  R : 0x7ffff7a75fd8
800
  P : 0x7ffff7a75fd0
801
Interpreting store i8* %"$__lldb_arg", i8** %"$__lldb_arg.addr", align 8
802
IRMemoryMap::ReadMemory (0x7ffff7a75fd0, 0x555fc5d569b0, 0x8) came from [0x7ffff79f6000..0x7ffff7a76007)
803
IRMemoryMap::ReadMemory (0x7ffff7a75ff8, 0x555fc5d569b0, 0x8) came from [0x7ffff79f6000..0x7ffff7a76007)
804
IRMemoryMap::WriteMemory (0x7ffff7a75fd8, 0x555fc5d569b0, 0x8) went to [0x7ffff79f6000..0x7ffff7a76007)
805
Interpreted a StoreInst
806
  D : 0x7ffff7a75ff8
807
  P : 0x7ffff7a75fd0
808
  R : 0x7ffff7a75fd8
809
Interpreting %guard.uninitialized = icmp eq i8 0, 0
810
IRMemoryMap::WriteMemory (0x7ffff7a75fcf, 0x555fc5d569b0, 0x1) went to [0x7ffff79f6000..0x7ffff7a76007)
811
Interpreted an ICmpInst
812
  L : i8 0
813
  R : i8 0
814
  = : %guard.uninitialized = icmp eq i8 0, 0 0x7ffff7a75fcf
815
Interpreting br i1 %guard.uninitialized, label %init.check, label %init.end, !prof !8
816
Interpreted a BrInst with a condition
817
  cond : %guard.uninitialized = icmp eq i8 0, 0 0x7ffff7a75fcf
818
Interpreting store i32* getelementptr inbounds (i32, i32* inttoptr (i64 100 to i32*), i64 ptrtoint (i32* @_ZN3Foo3BarE to i64)), i32** %2, align 8
819
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace.
820
Stack dump:
821
0.      Program arguments: /home/werat/git/llvm-project/build_x64_optdebug/bin/lldb a.out
822
 #0 0x0000555fc564219d llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (.localalias) /home/werat/git/llvm-project/llvm/lib/Support/Unix/Signals.inc:569:3
823
 #1 0x0000555fc56406e4 llvm::sys::RunSignalHandlers() (.localalias) /home/werat/git/llvm-project/llvm/lib/Support/Signals.cpp:97:20
824
 #2 0x0000555fc564085e SignalHandler(int) /home/werat/git/llvm-project/llvm/lib/Support/Unix/Signals.inc:407:1
825
 #3 0x00007f71da1ce8e0 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x138e0)
826
 #4 0x00007f71d6c85300 llvm::APInt::getSExtValue() const /home/werat/git/llvm-project/llvm/include/llvm/ADT/APInt.h:1478:29
827
 #5 0x00007f71d6c85300 llvm::ConstantInt::getSExtValue() const /home/werat/git/llvm-project/llvm/include/llvm/IR/Constants.h:148:64
828
 #6 0x00007f71d6c85300 llvm::DataLayout::getIndexedOffsetInType(llvm::Type*, llvm::ArrayRef<llvm::Value*>) const /home/werat/git/llvm-project/llvm/lib/IR/DataLayout.cpp:896:66
829
 #7 0x00007f71d4ff7b66 InterpreterStackFrame::ResolveConstantValue(llvm::APInt&, llvm::Constant const*) /home/werat/git/llvm-project/lldb/source/Expression/IRInterpreter.cpp:290:51
830
 #8 0x00007f71d4ff837a InterpreterStackFrame::ResolveConstant(unsigned long, llvm::Constant const*) /home/werat/git/llvm-project/lldb/source/Expression/IRInterpreter.cpp:345:30
831
 #9 0x00007f71d4ff8732 InterpreterStackFrame::ResolveValue(llvm::Value const*, llvm::Module&) (.isra.0) /home/werat/git/llvm-project/lldb/source/Expression/IRInterpreter.cpp:422:7
832
#10 0x00007f71d4ffa827 IRInterpreter::Interpret(llvm::Module&, llvm::Function&, llvm::ArrayRef<unsigned long>, lldb_private::IRExecutionUnit&, lldb_private::Status&, unsigned long, unsigned long, lldb_private::ExecutionContext&) /home/werat/git/llvm-project/lldb/source/Expression/IRInterpreter.cpp:1277:42
833
#11 0x00007f71d4fffec1 lldb_private::LLVMUserExpression::DoExecute(lldb_private::DiagnosticManager&, lldb_private::ExecutionContext&, lldb_private::EvaluateExpressionOptions const&, std::shared_ptr<lldb_private::UserExpression>&, std::shared_ptr<lldb_private::ExpressionVariable>&) (.localalias) /home/werat/git/llvm-project/lldb/source/Expression/LLVMUserExpression.cpp:123:35
834
#12 0x00007f71d3423591 lldb_private::UserExpression::Execute(lldb_private::DiagnosticManager&, lldb_private::ExecutionContext&, lldb_private::EvaluateExpressionOptions const&, std::shared_ptr<lldb_private::UserExpression>&, std::shared_ptr<lldb_private::ExpressionVariable>&) (.localalias) /home/werat/git/llvm-project/lldb/source/Expression/UserExpression.cpp:401:40
835
#13 0x00007f71d342459d lldb_private::UserExpression::Evaluate(lldb_private::ExecutionContext&, lldb_private::EvaluateExpressionOptions const&, llvm::StringRef, llvm::StringRef, std::shared_ptr<lldb_private::ValueObject>&, lldb_private::Status&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, lldb_private::ValueObject*) /home/werat/git/llvm-project/lldb/source/Expression/UserExpression.cpp:346:38
836
#14 0x00007f71d35501aa lldb_private::Target::EvaluateExpression(llvm::StringRef, lldb_private::ExecutionContextScope*, std::shared_ptr<lldb_private::ValueObject>&, lldb_private::EvaluateExpressionOptions const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, lldb_private::ValueObject*) /home/werat/git/llvm-project/lldb/source/Target/Target.cpp:2432:12
837
#15 0x00007f71d4e78001 lldb_private::CommandObjectExpression::EvaluateExpression(llvm::StringRef, lldb_private::Stream&, lldb_private::Stream&, lldb_private::CommandReturnObject&) (.localalias) /home/werat/git/llvm-project/lldb/source/Commands/CommandObjectExpression.cpp:423:35
838
#16 0x00007f71d4e7912f lldb_private::CommandObjectExpression::DoExecute(llvm::StringRef, lldb_private::CommandReturnObject&) (.localalias) /home/werat/git/llvm-project/lldb/source/Commands/CommandObjectExpression.cpp:645:25
839
#17 0x00007f71d345e3d7 lldb_private::CommandObjectRaw::Execute(char const*, lldb_private::CommandReturnObject&) (.localalias) /home/werat/git/llvm-project/lldb/source/Interpreter/CommandObject.cpp:1017:26
840
#18 0x00007f71d345b037 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_data() const /usr/include/c++/10/bits/basic_string.h:195:28
841
#19 0x00007f71d345b037 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_is_local() const /usr/include/c++/10/bits/basic_string.h:230:23
842
#20 0x00007f71d345b037 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::_M_dispose() /usr/include/c++/10/bits/basic_string.h:239:18
843
#21 0x00007f71d345b037 std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string() /usr/include/c++/10/bits/basic_string.h:671:19
844
#22 0x00007f71d345b037 lldb_private::CommandInterpreter::HandleCommand(char const*, lldb_private::LazyBool, lldb_private::CommandReturnObject&) (.localalias) /home/werat/git/llvm-project/lldb/source/Interpreter/CommandInterpreter.cpp:1957:17
845
#23 0x00007f71d345b47f lldb_private::CommandInterpreter::IOHandlerInputComplete(lldb_private::IOHandler&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&) /home/werat/git/llvm-project/lldb/source/Interpreter/CommandInterpreter.cpp:3024:24
846
#24 0x00007f71d3395431 lldb_private::IOHandlerEditline::Run() (.localalias) /home/werat/git/llvm-project/lldb/source/Core/IOHandler.cpp:576:44
847
#25 0x00007f71d3372561 __gthread_mutex_lock /usr/include/x86_64-linux-gnu/c++/10/bits/gthr-default.h:748:3
848
#26 0x00007f71d3372561 __gthread_recursive_mutex_lock /usr/include/x86_64-linux-gnu/c++/10/bits/gthr-default.h:811:31
849
#27 0x00007f71d3372561 std::recursive_mutex::lock() /usr/include/c++/10/mutex:106:47
850
#28 0x00007f71d3372561 std::lock_guard<std::recursive_mutex>::lock_guard(std::recursive_mutex&) /usr/include/c++/10/bits/std_mutex.h:159:23
851
#29 0x00007f71d3372561 lldb_private::Debugger::RunIOHandlers() (.localalias) /home/werat/git/llvm-project/lldb/source/Core/Debugger.cpp:880:41
852
#30 0x00007f71d344ca10 lldb_private::CommandInterpreterRunOptions::DefaultToYes(lldb_private::LazyBool) /home/werat/git/llvm-project/lldb/include/lldb/Interpreter/CommandInterpreter.h:196:5
853
#31 0x00007f71d344ca10 lldb_private::CommandInterpreterRunOptions::GetAutoHandleEvents() const /home/werat/git/llvm-project/lldb/include/lldb/Interpreter/CommandInterpreter.h:170:24
854
#32 0x00007f71d344ca10 lldb_private::CommandInterpreter::RunCommandInterpreter(lldb_private::CommandInterpreterRunOptions&) /home/werat/git/llvm-project/lldb/source/Interpreter/CommandInterpreter.cpp:3269:36
855
#33 0x00007f71d303296c lldb::SBDebugger::RunCommandInterpreter(bool, bool) (.localalias) /home/werat/git/llvm-project/lldb/source/API/SBDebugger.cpp:1203:3
856
#34 0x0000555fc5629d1f reset_stdin_termios /home/werat/git/llvm-project/lldb/tools/driver/Driver.cpp:102:3
857
#35 0x0000555fc5629d1f Driver::MainLoop() (.localalias) /home/werat/git/llvm-project/lldb/tools/driver/Driver.cpp:681:22
858
#36 0x0000555fc562889e main /home/werat/git/llvm-project/lldb/tools/driver/Driver.cpp:945:34
859
#37 0x00007f71d1ed0e4a __libc_start_main ./csu/../csu/libc-start.c:314:16
860
#38 0x0000555fc562894a _start (/home/werat/git/llvm-project/build_x64_optdebug/bin/lldb+0x894a)
861
[1]    514649 segmentation fault  LLVM_SYMBOLIZER_PATH=llvm-symbolizer-11  a.out
862