ABISysV_x86_64::PrepareTrivialCall ( thread = 0x7f76700008c0 sp = 0x7fff6c775530 func_addr = 0x7fea00e06060 return_addr = 0x400410 arg1_ptr = 0x7fffedfb7678 (0x0) arg2_ptr = 0x7fffedfb7670 (0x1000) arg3_ptr = 0x7fffedfb7570 (0x7) ) About to write arg1 (0x0) into rdi About to write arg2 (0x1000) into rsi About to write arg3 (0x7) into rdx About to write arg4 (0x22) into rcx About to write arg5 (0xffffffffffffffff) into r8 About to write arg6 (0x0) into r9 16-byte aligning SP: 0x7fff6c775530 to 0x7fff6c775530 Pushing the return address onto the stack: new SP 0x7fff6c775528, return address 0x400410 Writing SP (0x7fff6c775528) down Writing new IP (0x7fea00e06060) down == [ClangUserExpression::Evaluate] Parsing expression (int)strlen("hello") == ClangUserExpression::ScanContext() Parsing the following code: #undef NULL #undef Nil #undef nil #undef YES #undef NO #define NULL (__null) #define Nil (__null) #define nil (__null) #define YES ((BOOL)1) #define NO ((BOOL)0) typedef signed char BOOL; typedef signed __INT8_TYPE__ int8_t; typedef unsigned __INT8_TYPE__ uint8_t; typedef signed __INT16_TYPE__ int16_t; typedef unsigned __INT16_TYPE__ uint16_t; typedef signed __INT32_TYPE__ int32_t; typedef unsigned __INT32_TYPE__ uint32_t; typedef signed __INT64_TYPE__ int64_t; typedef unsigned __INT64_TYPE__ uint64_t; typedef signed __INTPTR_TYPE__ intptr_t; typedef unsigned __INTPTR_TYPE__ uintptr_t; typedef __SIZE_TYPE__ size_t; typedef __PTRDIFF_TYPE__ ptrdiff_t; typedef unsigned short unichar; void $__lldb_expr(void *$__lldb_arg) { (int)strlen("hello"); } LayoutRecordType[0] on (ASTContext*)0x1824460 for (RecordDecl*)0x182ae00 [name = '_objc_super'] LayoutRecordType[1] on (ASTContext*)0x1824460 for (RecordDecl*)0x182b0a0 [name = '_message_ref_t'] FindExternalLexicalDecls[0] on (ASTContext*)0x1824460 in (TranslationUnitDecl*)0x182a730 with null predicate ClangExpressionDeclMap::FindExternalVisibleDecls[0] for '$__lldb_arg' in a 'TranslationUnit' CEDM::FEVD[0] Searching the root namespace ClangASTSource::FindExternalVisibleDecls[0] on (ASTContext*)0x1824460 for '$__lldb_arg' in a 'TranslationUnit' CAS::FEVD[0] Searching the root namespace ClangExpressionDeclMap::FindExternalVisibleDecls[1] for '$__lldb_expr' in a 'TranslationUnit' CEDM::FEVD[1] Searching the root namespace ClangASTSource::FindExternalVisibleDecls[1] on (ASTContext*)0x1824460 for '$__lldb_expr' in a 'TranslationUnit' CAS::FEVD[1] Searching the root namespace ClangExpressionDeclMap::FindExternalVisibleDecls[2] for 'strlen' in a 'TranslationUnit' CEDM::FEVD[2] Searching the root namespace ABISysV_x86_64::PrepareTrivialCall ( thread = 0x7f76700008c0 sp = 0x7fff6c775530 func_addr = 0x7fea00d9f0a0 return_addr = 0x400410 arg1_ptr = (nil) (0x0) arg2_ptr = (nil) (0x0) arg3_ptr = (nil) (0x0) ) 16-byte aligning SP: 0x7fff6c775530 to 0x7fff6c775530 Pushing the return address onto the stack: new SP 0x7fff6c775528, return address 0x400410 Writing SP (0x7fff6c775528) down Writing new IP (0x7fea00d9f0a0) down CEDM::FEVD[2] Found generic function strlen (description libc.so.6`strlen), returned static strlen(...) ClangASTSource::FindExternalVisibleDecls[2] on (ASTContext*)0x1824460 for 'strlen' in a 'TranslationUnit' CAS::FEVD[2] Searching the root namespace Last statement is an rvalue with type: int Found function _Z12$__lldb_exprPv for $__lldb_expr Module as passed in to IRForTarget: "; ModuleID = '$__lldb_module' target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" target triple = "x86_64--linux" @"_ZZ12$__lldb_exprPvE19$__lldb_expr_result" = internal global i32 0, align 4 @"_ZGVZ12$__lldb_exprPvE19$__lldb_expr_result" = internal global i8 0 @.str = private unnamed_addr constant [6 x i8] c"hello\00", align 1 define void @"_Z12$__lldb_exprPv"(i8* %"$__lldb_arg") #0 { entry: %"$__lldb_arg.addr" = alloca i8*, align 8, !clang.decl.ptr !7 store i8* %"$__lldb_arg", i8** %"$__lldb_arg.addr", align 8 %0 = load i8* @"_ZGVZ12$__lldb_exprPvE19$__lldb_expr_result", align 1 %guard.uninitialized = icmp eq i8 %0, 0 br i1 %guard.uninitialized, label %init.check, label %init.end init.check: ; preds = %entry %call = call i32 (...)* @_ZL6strlenz(i8* getelementptr inbounds ([6 x i8]* @.str, i32 0, i32 0)) store i32 %call, i32* @"_ZZ12$__lldb_exprPvE19$__lldb_expr_result", align 4 store i8 1, i8* @"_ZGVZ12$__lldb_exprPvE19$__lldb_expr_result" br label %init.end init.end: ; preds = %init.check, %entry ret void } declare i32 @_ZL6strlenz(...) #1 attributes #0 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #1 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" } !clang.global.decl.ptrs = !{!0, !1, !0, !2} !llvm.module.flags = !{!3, !4, !5, !6} !0 = metadata !{i32* @"_ZZ12$__lldb_exprPvE19$__lldb_expr_result", i64 25405200} !1 = metadata !{void (i8*)* @"_Z12$__lldb_exprPv", i64 25404160} !2 = metadata !{i32 (...)* @_ZL6strlenz, i64 25404384} !3 = metadata !{i32 1, metadata !"Objective-C Version", i32 2} !4 = metadata !{i32 1, metadata !"Objective-C Image Info Version", i32 0} !5 = metadata !{i32 1, metadata !"Objective-C Image Info Section", metadata !"__DATA, __objc_imageinfo, regular, no_dead_strip"} !6 = metadata !{i32 4, metadata !"Objective-C Garbage Collection", i32 0} !7 = metadata !{i64 25403968} " Result name: "_ZZ12$__lldb_exprPvE19$__lldb_expr_result" Found result in the IR: "@"_ZZ12$__lldb_exprPvE19$__lldb_expr_result" = internal global i32 0, align 4" Found result decl: "static int $__lldb_expr_result(int)strlen("hello")" Result decl type: "int" Creating a new result global: "$0" with size 0x4 Replacing "@"_ZZ12$__lldb_exprPvE19$__lldb_expr_result" = internal global i32 0, align 4" with "@"$0" = external global i32" Created persistent variable with flags 0x15 Unsupported instruction: %call = call i32 (...)* @_ZL6strlenz(i8* getelementptr inbounds ([6 x i8]* @.str, i32 0, i32 0)) Examining non-declaration function _Z12$__lldb_exprPv Examining declaration function _ZL6strlenz Found "_ZL6strlenz" at 0x7fea00e78bd0 MaybeHandleCallArguments( %call = call i32 (...)* inttoptr (i64 140643014249424 to i32 (...)*)(i8* getelementptr inbounds ([6 x i8]* @.str, i32 0, i32 0)), !lldb.call.realName !8) MaybeHandleVariable (i8* getelementptr inbounds ([6 x i8]* @.str, i32 0, i32 0)) MaybeHandleVariable (@.str = private unnamed_addr constant [6 x i8] c"hello\00", align 1) Examining _ZGVZ12$__lldb_exprPvE19$__lldb_expr_result, DeclForGlobalValue returns (nil) Examining reloc_placeholder, DeclForGlobalValue returns (nil) Examining $0, DeclForGlobalValue returns 0x183a710 MaybeHandleVariable (@"$0" = external global i32) Type of "$__lldb_expr_result" is [clang "int *", llvm "i32**"] [size 8, align 8] Adding value for (NamedDecl*)0x183a710 [$__lldb_expr_result - $0] to the structure Element arrangement: Arg: "i8* %"$__lldb_arg"" "$0" ("$__lldb_expr_result") placed at 0 Replacing [@"$0" = external global i32] Total structure [align 8, size 8] ABISysV_x86_64::PrepareTrivialCall ( thread = 0x7f76700008c0 sp = 0x7fff6c775530 func_addr = 0x7fea00e06060 return_addr = 0x400410 arg1_ptr = 0x7fffedfb6dc8 (0x0) arg2_ptr = 0x7fffedfb6dc0 (0x1000) arg3_ptr = 0x7fffedfb6cc0 (0x3) ) About to write arg1 (0x0) into rdi About to write arg2 (0x1000) into rsi About to write arg3 (0x3) into rdx About to write arg4 (0x22) into rcx About to write arg5 (0xffffffffffffffff) into r8 About to write arg6 (0x0) into r9 16-byte aligning SP: 0x7fff6c775530 to 0x7fff6c775530 Pushing the return address onto the stack: new SP 0x7fff6c775528, return address 0x400410 Writing SP (0x7fff6c775528) down Writing new IP (0x7fea00e06060) down IRExecutionUnit::WriteNow() wrote to 0x7fea012f3000 [0x17fcc60+0x6]->0x7fea012f3000 (alignment 8, section ID -1) Allocated static data at 0x7fea012f3000 Did remove @"_ZGVZ12$__lldb_exprPvE19$__lldb_expr_result" = internal global i8 0 LayoutRecordType[2] on (ASTContext*)0x187bc20 for (RecordDecl*)0x18825c0 [name = '_objc_super'] LayoutRecordType[3] on (ASTContext*)0x187bc20 for (RecordDecl*)0x1882860 [name = '_message_ref_t'] FindExternalLexicalDecls[1] on (ASTContext*)0x187bc20 in (TranslationUnitDecl*)0x1881ef0 with null predicate ClangExpressionDeclMap::FindExternalVisibleDecls[3] for '$__lldb_arg_ptr' in a 'TranslationUnit' CEDM::FEVD[3] Searching the root namespace ClangASTSource::FindExternalVisibleDecls[3] on (ASTContext*)0x187bc20 for '$__lldb_arg_ptr' in a 'TranslationUnit' CAS::FEVD[3] Searching the root namespace ClangExpressionDeclMap::FindExternalVisibleDecls[4] for '$__lldb_valid_pointer_check' in a 'TranslationUnit' CEDM::FEVD[4] Searching the root namespace ClangASTSource::FindExternalVisibleDecls[4] on (ASTContext*)0x187bc20 for '$__lldb_valid_pointer_check' in a 'TranslationUnit' CAS::FEVD[4] Searching the root namespace ClangExpressionDeclMap::FindExternalVisibleDecls[5] for '$__lldb_local_val' in a 'TranslationUnit' CEDM::FEVD[5] Searching the root namespace ClangASTSource::FindExternalVisibleDecls[5] on (ASTContext*)0x187bc20 for '$__lldb_local_val' in a 'TranslationUnit' CAS::FEVD[5] Searching the root namespace Found function $__lldb_valid_pointer_check for $__lldb_valid_pointer_check Module as passed in to IRForTarget: "; ModuleID = '$__lldb_module' target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" target triple = "x86_64--linux" define void @"$__lldb_valid_pointer_check"(i8* %"$__lldb_arg_ptr") #0 { entry: %"$__lldb_arg_ptr.addr" = alloca i8*, align 8, !clang.decl.ptr !5 %"$__lldb_local_val" = alloca i8, align 1, !clang.decl.ptr !6 store i8* %"$__lldb_arg_ptr", i8** %"$__lldb_arg_ptr.addr", align 8 %0 = load i8** %"$__lldb_arg_ptr.addr", align 8 %1 = load i8* %0, align 1 store i8 %1, i8* %"$__lldb_local_val", align 1 ret void } attributes #0 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" } !llvm.module.flags = !{!0, !1, !2, !3} !clang.global.decl.ptrs = !{!4} !0 = metadata !{i32 1, metadata !"Objective-C Version", i32 2} !1 = metadata !{i32 1, metadata !"Objective-C Image Info Version", i32 0} !2 = metadata !{i32 1, metadata !"Objective-C Image Info Section", metadata !"__DATA, __objc_imageinfo, regular, no_dead_strip"} !3 = metadata !{i32 4, metadata !"Objective-C Garbage Collection", i32 0} !4 = metadata !{void (i8*)* @"$__lldb_valid_pointer_check", i64 25762320} !5 = metadata !{i64 25762128} !6 = metadata !{i64 25762512} " Examining non-declaration function $__lldb_valid_pointer_check Examining reloc_placeholder, DeclForGlobalValue returns (nil) Did remove @reloc_placeholder = internal global i8 0 Module being sent to JIT: ; ModuleID = '$__lldb_module' target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" target triple = "x86_64--linux" define void @"$__lldb_valid_pointer_check"(i8* %"$__lldb_arg_ptr") #0 { entry: %"$__lldb_arg_ptr.addr" = alloca i8*, align 8, !clang.decl.ptr !5 %"$__lldb_local_val" = alloca i8, align 1, !clang.decl.ptr !6 store i8* %"$__lldb_arg_ptr", i8** %"$__lldb_arg_ptr.addr", align 8 %0 = load i8** %"$__lldb_arg_ptr.addr", align 8 %1 = load i8* %0, align 1 store i8 %1, i8* %"$__lldb_local_val", align 1 ret void } attributes #0 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" } !llvm.module.flags = !{!0, !1, !2, !3} !clang.global.decl.ptrs = !{!4} !0 = metadata !{i32 1, metadata !"Objective-C Version", i32 2} !1 = metadata !{i32 1, metadata !"Objective-C Image Info Version", i32 0} !2 = metadata !{i32 1, metadata !"Objective-C Image Info Section", metadata !"__DATA, __objc_imageinfo, regular, no_dead_strip"} !3 = metadata !{i32 4, metadata !"Objective-C Garbage Collection", i32 0} !4 = metadata !{void (i8*)* @"$__lldb_valid_pointer_check", i64 25762320} !5 = metadata !{i64 25762128} !6 = metadata !{i64 25762512} IRExecutionUnit::allocateCodeSection(Size=0xc, Alignment=16, SectionID=0) = 0x7f7675f7c008 [0x7f7675f7c008+0xc]->0x0 (alignment 16, section ID 0) ABISysV_x86_64::PrepareTrivialCall ( thread = 0x7f76700008c0 sp = 0x7fff6c775530 func_addr = 0x7fea00e06060 return_addr = 0x400410 arg1_ptr = 0x7fffedfb68c8 (0x0) arg2_ptr = 0x7fffedfb68c0 (0x1000) arg3_ptr = 0x7fffedfb67c0 (0x5) ) About to write arg1 (0x0) into rdi About to write arg2 (0x1000) into rsi About to write arg3 (0x5) into rdx About to write arg4 (0x22) into rcx About to write arg5 (0xffffffffffffffff) into r8 About to write arg6 (0x0) into r9 16-byte aligning SP: 0x7fff6c775530 to 0x7fff6c775530 Pushing the return address onto the stack: new SP 0x7fff6c775528, return address 0x400410 Writing SP (0x7fff6c775528) down Writing new IP (0x7fea00e06060) down IRExecutionUnit::CommitAllocations() committed an allocation [0x7f7675f7c008+0xc]->0x7fea012f2000 (alignment 16, section ID 0) IRExecutionUnit::CommitAllocations() wrote an allocation [0x7f7675f7c008+0xc]->0x7fea012f2000 (alignment 16, section ID 0) Code can be run in the target. Found function, has local address 0x7f7675f7c008 and remote address 0x7fea012f2000 Function's code range is [0x7fea012f2000+0xc] Function data has contents: 0x7fea012f2000: 48 89 7c 24 f8 8a 07 88 44 24 f7 c3 Function disassembly: 0x7fea012f2000: 48 89 7c 24 f8 movq %rdi, -8(%rsp) 0x7fea012f2005: 8a 07 movb (%rdi), %al 0x7fea012f2007: 88 44 24 f7 movb %al, -9(%rsp) 0x7fea012f200b: c3 ret == ClangASTMetrics output == -- Global metrics -- Number of visible Decl queries by name : 12 Number of lexical Decl queries : 2 Number of imports initiated by LLDB : 0 Number of imports conducted by Clang : 0 Number of Decls completed : 0 Number of records laid out : 4 -- Local metrics -- Number of visible Decl queries by name : 6 Number of lexical Decl queries : 1 Number of imports initiated by LLDB : 0 Number of imports conducted by Clang : 0 Number of Decls completed : 0 Number of records laid out : 2 == ClangASTMetrics output == -- Global metrics -- Number of visible Decl queries by name : 12 Number of lexical Decl queries : 2 Number of imports initiated by LLDB : 0 Number of imports conducted by Clang : 0 Number of Decls completed : 0 Number of records laid out : 4 -- Local metrics -- Number of visible Decl queries by name : 6 Number of lexical Decl queries : 1 Number of imports initiated by LLDB : 0 Number of imports conducted by Clang : 0 Number of Decls completed : 0 Number of records laid out : 2 [ClangASTImporter] Forgetting destination (ASTContext*)0x187bc20 [ClangASTImporter] Forgetting source->dest (ASTContext*)0x187bc20->(ASTContext*)0x1794540 == [ClangUserExpression::Evaluate] Finished installing dynamic checkers == Instrumenting load/store instruction: %2 = load i32** %1 Instrumenting load/store instruction: store i8* %"$__lldb_arg", i8** %"$__lldb_arg.addr", align 8 Instrumenting load/store instruction: store i32 %call, i32* %3, align 4 Module being sent to JIT: ; ModuleID = '$__lldb_module' target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" target triple = "x86_64--linux" define void @"_Z12$__lldb_exprPv"(i8* %"$__lldb_arg") #0 { entry: %0 = getelementptr i8* %"$__lldb_arg", i32 0 %1 = bitcast i8* %0 to i32** %2 = bitcast i32** %1 to i8* call void (i8*, ...)* inttoptr (i64 140643018940416 to void (i8*, ...)*)(i8* %2) %3 = load i32** %1 %"$__lldb_arg.addr" = alloca i8*, align 8, !clang.decl.ptr !7 %4 = bitcast i8** %"$__lldb_arg.addr" to i8* call void (i8*, ...)* inttoptr (i64 140643018940416 to void (i8*, ...)*)(i8* %4) store i8* %"$__lldb_arg", i8** %"$__lldb_arg.addr", align 8 %guard.uninitialized = icmp eq i8 0, 0 br i1 %guard.uninitialized, label %init.check, label %init.end init.check: ; preds = %entry %call = call i32 (...)* inttoptr (i64 140643014249424 to i32 (...)*)(i8* getelementptr inbounds ([6 x i8]* inttoptr (i64 140643018944512 to [6 x i8]*), i32 0, i32 0)), !lldb.call.realName !8 %5 = bitcast i32* %3 to i8* call void (i8*, ...)* inttoptr (i64 140643018940416 to void (i8*, ...)*)(i8* %5) store i32 %call, i32* %3, align 4 br label %init.end init.end: ; preds = %init.check, %entry ret void } declare i32 @_ZL6strlenz(...) #1 attributes #0 = { nounwind "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" } attributes #1 = { "less-precise-fpmad"="false" "no-frame-pointer-elim"="false" "no-frame-pointer-elim-non-leaf"="false" "no-infs-fp-math"="false" "no-nans-fp-math"="false" "unsafe-fp-math"="false" "use-soft-float"="false" } !clang.global.decl.ptrs = !{!0, !1, !0, !2, !0} !llvm.module.flags = !{!3, !4, !5, !6} !0 = metadata !{null, i64 25405200} !1 = metadata !{void (i8*)* @"_Z12$__lldb_exprPv", i64 25404160} !2 = metadata !{i32 (...)* inttoptr (i64 140643014249424 to i32 (...)*), i64 25404384} !3 = metadata !{i32 1, metadata !"Objective-C Version", i32 2} !4 = metadata !{i32 1, metadata !"Objective-C Image Info Version", i32 0} !5 = metadata !{i32 1, metadata !"Objective-C Image Info Section", metadata !"__DATA, __objc_imageinfo, regular, no_dead_strip"} !6 = metadata !{i32 4, metadata !"Objective-C Garbage Collection", i32 0} !7 = metadata !{i64 25403968} !8 = metadata !{[12 x i8] c"_ZL6strlenz\00"} IRExecutionUnit::allocateCodeSection(Size=0x61, Alignment=16, SectionID=0) = 0x7f7675f7c008 [0x7f7675f7c008+0x61]->0x0 (alignment 16, section ID 0) IRExecutionUnit::CommitAllocations() committed an allocation [0x7f7675f7c008+0x61]->0x7fea012f2020 (alignment 16, section ID 0) IRExecutionUnit::CommitAllocations() wrote an allocation [0x17fcc60+0x6]->0x7fea012f3000 (alignment 8, section ID -1) IRExecutionUnit::CommitAllocations() wrote an allocation [0x7f7675f7c008+0x61]->0x7fea012f2020 (alignment 16, section ID 0) Code can be run in the target. Found function, has local address 0x7f7675f7c008 and remote address 0x7fea012f2020 Function's code range is [0x7fea012f2020+0x61] Function data has contents: 0x7fea012f2020: 55 41 57 41 56 53 50 48 89 fb 40 30 ed 49 bf 00 0x7fea012f2030: 20 2f 01 ea 7f 00 00 30 c0 41 ff d7 4c 8b 33 48 0x7fea012f2040: 8d 3c 24 30 c0 41 ff d7 48 89 1c 24 40 84 ed 75 0x7fea012f2050: 25 48 b9 d0 8b e7 00 ea 7f 00 00 48 bf 00 30 2f 0x7fea012f2060: 01 ea 7f 00 00 30 c0 ff d1 89 c3 4c 89 f7 30 c0 0x7fea012f2070: 41 ff d7 41 89 1e 48 83 c4 08 5b 41 5e 41 5f 5d 0x7fea012f2080: c3 Function disassembly: 0x7fea012f2020: 55 pushq %rbp 0x7fea012f2021: 41 57 pushq %r15 0x7fea012f2023: 41 56 pushq %r14 0x7fea012f2025: 53 pushq %rbx 0x7fea012f2026: 50 pushq %rax 0x7fea012f2027: 48 89 fb movq %rdi, %rbx 0x7fea012f202a: 40 30 ed xorb %bpl, %bpl 0x7fea012f202d: 49 bf 00 20 2f 01 ea 7f 00 00 movabsq $140643018940416, %r15 0x7fea012f2037: 30 c0 xorb %al, %al 0x7fea012f2039: 41 ff d7 callq *%r15 0x7fea012f203c: 4c 8b 33 movq (%rbx), %r14 0x7fea012f203f: 48 8d 3c 24 leaq (%rsp), %rdi 0x7fea012f2043: 30 c0 xorb %al, %al 0x7fea012f2045: 41 ff d7 callq *%r15 0x7fea012f2048: 48 89 1c 24 movq %rbx, (%rsp) 0x7fea012f204c: 40 84 ed testb %bpl, %bpl 0x7fea012f204f: 75 25 jne 0x7fea012f2076 0x7fea012f2051: 48 b9 d0 8b e7 00 ea 7f 00 00 movabsq $140643014249424, %rcx 0x7fea012f205b: 48 bf 00 30 2f 01 ea 7f 00 00 movabsq $140643018944512, %rdi 0x7fea012f2065: 30 c0 xorb %al, %al 0x7fea012f2067: ff d1 callq *%rcx 0x7fea012f2069: 89 c3 movl %eax, %ebx 0x7fea012f206b: 4c 89 f7 movq %r14, %rdi 0x7fea012f206e: 30 c0 xorb %al, %al 0x7fea012f2070: 41 ff d7 callq *%r15 0x7fea012f2073: 41 89 1e movl %ebx, (%r14) 0x7fea012f2076: 48 83 c4 08 addq $8, %rsp 0x7fea012f207a: 5b popq %rbx 0x7fea012f207b: 41 5e popq %r14 0x7fea012f207d: 41 5f popq %r15 0x7fea012f207f: 5d popq %rbp 0x7fea012f2080: c3 ret == [ClangUserExpression::Evaluate] Executing expression == Allocating memory for materialized argument struct Found result member in the struct Materializing persistent variable with flags 0x15 Allocated $0 (0x7fea012f3020) sucessfully Materialized $0 into 0x7fea012f3020 -- [ClangUserExpression::PrepareToExecuteJITExpression] Materializing for execution -- Function address : 0x7fea012f2020 Structure address : 0x7fea012f3010 Structure contents: [$0] 0x7fea012f3010: 20 30 2f 01 ea 7f 00 00 0/..... ABISysV_x86_64::PrepareTrivialCall ( thread = 0x7f76700008c0 sp = 0x7fff6c775530 func_addr = 0x7fea012f2020 return_addr = 0x400410 arg1_ptr = 0x7fffedfb76a8 (0x7fea012f3010) arg2_ptr = (nil) (0x0) arg3_ptr = (nil) (0x0) ) About to write arg1 (0x7fea012f3010) into rdi 16-byte aligning SP: 0x7fff6c775530 to 0x7fff6c775530 Pushing the return address onto the stack: new SP 0x7fff6c775528, return address 0x400410 Writing SP (0x7fff6c775528) down Writing new IP (0x7fea012f2020) down -- [ClangUserExpression::Execute] Execution of expression begins -- -- [ClangUserExpression::Execute] Execution of expression completed -- -- [ClangUserExpression::FinalizeJITExecution] Dematerializing after execution -- Structure contents: [$0] 0x7fea012f3010: 20 30 2f 01 ea 7f 00 00 0/..... Found result member in the struct Dematerializing persistent variable with flags 0x15 Dematerializing $0 from 0x7fea012f3020 (size = 4) == [ClangUserExpression::Evaluate] Execution completed normally with result 5 == == ClangASTMetrics output == -- Global metrics -- Number of visible Decl queries by name : 12 Number of lexical Decl queries : 2 Number of imports initiated by LLDB : 0 Number of imports conducted by Clang : 0 Number of Decls completed : 0 Number of records laid out : 4 -- Local metrics -- Number of visible Decl queries by name : 6 Number of lexical Decl queries : 1 Number of imports initiated by LLDB : 0 Number of imports conducted by Clang : 0 Number of Decls completed : 0 Number of records laid out : 2 [ClangASTImporter] Forgetting destination (ASTContext*)0x1824460 [ClangASTImporter] Forgetting source->dest (ASTContext*)0x1824460->(ASTContext*)0x1794540 [ClangASTImporter] Forgetting destination (ASTContext*)0x1794540