Skip to content

Instantly share code, notes, and snippets.

@jackoalan
Created June 21, 2020 06:24
Show Gist options
  • Save jackoalan/f70f223c5e9ec25d6c8e3a5e09940a71 to your computer and use it in GitHub Desktop.
Save jackoalan/f70f223c5e9ec25d6c8e3a5e09940a71 to your computer and use it in GitHub Desktop.
(lldb)p MyClass::MyMember
== [UserExpression::Evaluate] Parsing expression MyClass::MyMember ==
ClangUserExpression::ScanContext()
[CUE::SC] Null function
[C++ module config] Language doesn't support C++ modules
List of imported modules in expression:
List of include directories gathered for modules:
Parsing the following code:
#line 1 "<lldb wrapper prefix>"
#ifndef offsetof
#define offsetof(t, d) __builtin_offsetof(t, d)
#endif
#ifndef NULL
#define NULL (__null)
#endif
#ifndef Nil
#define Nil (__null)
#endif
#ifndef nil
#define nil (__null)
#endif
#ifndef YES
#define YES ((BOOL)1)
#endif
#ifndef NO
#define NO ((BOOL)0)
#endif
typedef __INT8_TYPE__ int8_t;
typedef __UINT8_TYPE__ uint8_t;
typedef __INT16_TYPE__ int16_t;
typedef __UINT16_TYPE__ uint16_t;
typedef __INT32_TYPE__ int32_t;
typedef __UINT32_TYPE__ uint32_t;
typedef __INT64_TYPE__ int64_t;
typedef __UINT64_TYPE__ uint64_t;
typedef __INTPTR_TYPE__ intptr_t;
typedef __UINTPTR_TYPE__ uintptr_t;
typedef __SIZE_TYPE__ size_t;
typedef __PTRDIFF_TYPE__ ptrdiff_t;
typedef unsigned short unichar;
extern "C"
{
int printf(const char * __restrict, ...);
}
typedef signed char BOOL;
void
$__lldb_expr(void *$__lldb_arg)
{
;
#line 1 "<user expression 0>"
MyClass::MyMember
;
#line 1 "<lldb wrapper suffix>"
}
Using x86_64-pc-windows-msvc as the target triple
Using SIMD alignment: 128
Target datalayout string: 'e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128'
Target ABI: ''
Target vector alignment: 0
ClangExpressionDeclMap::FindExternalVisibleDecls for '$__lldb_arg' in a 'TranslationUnit'
CEDM::FEVD Searching the root namespace
ClangASTSource::FindExternalVisibleDecls on (ASTContext*)0x000001AC147D1300 'Expression ASTContext for '<user expressio
n 0>'' for '$__lldb_arg' in a 'TranslationUnit'
CAS::FEVD Searching the root namespace
ClangExpressionDeclMap::FindExternalVisibleDecls for '$__lldb_expr' in a 'TranslationUnit'
CEDM::FEVD Searching the root namespace
ClangASTSource::FindExternalVisibleDecls on (ASTContext*)0x000001AC147D1300 'Expression ASTContext for '<user expressio
n 0>'' for '$__lldb_expr' in a 'TranslationUnit'
CAS::FEVD Searching the root namespace
ClangExpressionDeclMap::FindExternalVisibleDecls for 'MyClass' in a 'TranslationUnit'
CEDM::FEVD Searching the root namespace
ClangASTSource::FindExternalVisibleDecls on (ASTContext*)0x000001AC147D1300 'Expression ASTContext for '<user expressio
n 0>'' for 'MyClass' in a 'TranslationUnit'
CAS::FEVD Searching the root namespace
CAS::FEVD Matching type found for "MyClass": MyClass
[ClangASTImporter] Imported (CXXRecordDecl*)0x000001AC148098F8, named MyClass (from (Decl*)0x000001AC1450C538), met
adata 65620
[ClangASTImporter] Decl has no origin information in (ASTContext*)0x000001AC145400B0
[ClangASTImporter] To is a TagDecl - attributes Lexical [complete->complete]
FindExternalLexicalDecls on (ASTContext*)0x000001AC147D1300 'Expression ASTContext for '<user expression 0>'' in 'MyCla
ss' (%sDecl*)CXXRecord
FELD Original decl 0x000001AC145400B0 (Decl*)0x000001ac1450c538:
CXXRecordDecl 0x1ac1450c538 <<invalid sloc>> <invalid sloc> struct MyClass definition
|-DefinitionData pass_in_registers empty aggregate standard_layout trivially_copyable pod trivial literal has_constexpr_
non_copy_move_ctor can_const_default_init
| |-DefaultConstructor exists trivial constexpr needs_implicit defaulted_is_constexpr
| |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param
| |-MoveConstructor exists simple trivial needs_implicit
| |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param
| |-MoveAssignment exists simple trivial needs_implicit
| `-Destructor simple irrelevant trivial needs_implicit
`-VarDecl 0x1ac1450c678 <<invalid sloc>> <invalid sloc> MyMember 'const unsigned int' static cinit
`-IntegerLiteral 0x1ac1450c6e0 <<invalid sloc>> 'unsigned int' 16
FELD Adding [to CXXRecordDecl MyClass] lexical VarDecl VarDecl 0x1ac1450c678 <<invalid sloc>> <invalid sloc> MyMember
'const unsigned int' static cinit
`-IntegerLiteral 0x1ac1450c6e0 <<invalid sloc>> 'unsigned int' 16
[ClangASTImporter] Imported (VarDecl*)0x000001AC14809A50, named MyMember (from (Decl*)0x000001AC1450C678), metadata
18446744073709551615
[ClangASTImporter] Decl has no origin information in (ASTContext*)0x000001AC145400B0
Last statement is an lvalue with type: const unsigned int
Found function ?$__lldb_expr@@YAXPEAX@Z for $__lldb_expr
lldb_private::ClangExpressionParser::PrepareForExecution - Current expression language is unknown
Module as passed in to IRForTarget:
"; ModuleID = '$__lldb_module'
source_filename = "$__lldb_module"
target datalayout = "e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-windows-msvc"
$"?MyMember@MyClass@@2IB" = comdat any
@"?$__lldb_expr_result_ptr@?1??$__lldb_expr@@YAXPEAX@Z@4PEBIEB" = internal global i32* @"?MyMember@MyClass@@2IB", align
8
@"?MyMember@MyClass@@2IB" = linkonce_odr dso_local constant i32 16, comdat, align 4
; Function Attrs: convergent noinline nounwind optnone
define dso_local void @"?$__lldb_expr@@YAXPEAX@Z"(i8* %"$__lldb_arg") #0 {
entry:
%"$__lldb_arg.addr" = alloca i8*, align 8, !clang.decl.ptr !10
store i8* %"$__lldb_arg", i8** %"$__lldb_arg.addr", align 8
ret void
}
attributes #0 = { convergent noinline nounwind optnone "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-cal
ls"="false" "frame-pointer"="all" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-builtins" "no-infs-fp-ma
th"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="tru
e" "stack-protector-buffer-size"="0" "target-features"="+cx8,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-fl
oat"="false" }
!clang.global.decl.ptrs = !{!0, !1, !0, !2}
!llvm.module.flags = !{!3, !4, !5, !6, !7, !8}
!llvm.ident = !{!9}
!0 = !{i32** @"?$__lldb_expr_result_ptr@?1??$__lldb_expr@@YAXPEAX@Z@4PEBIEB", i64 1838589975536}
!1 = !{void (i8*)* @"?$__lldb_expr@@YAXPEAX@Z", i64 1838589974576}
!2 = !{i32* @"?MyMember@MyClass@@2IB", i64 1838589975120}
!3 = !{i32 1, !"Objective-C Version", i32 2}
!4 = !{i32 1, !"Objective-C Image Info Version", i32 0}
!5 = !{i32 1, !"Objective-C Image Info Section", !".objc_imageinfo$B"}
!6 = !{i32 1, !"Objective-C Garbage Collection", i8 0}
!7 = !{i32 1, !"Objective-C Class Properties", i32 64}
!8 = !{i32 1, !"wchar_size", i32 2}
!9 = !{!"clang version 11.0.0 (D:Usersjackollvm-project 5b8acd369b43e9d0b0db2be1904750aa5c78e31e)"}
!10 = !{i64 1838589974352}
"
Result name: "?$__lldb_expr_result_ptr@?1??$__lldb_expr@@YAXPEAX@Z@4PEBIEB"
Found result in the IR: "@"?$__lldb_expr_result_ptr@?1??$__lldb_expr@@YAXPEAX@Z@4PEBIEB" = internal global i32* @"?MyMe
mber@MyClass@@2IB", align 8"
Found result decl: "static const unsigned int *$__lldb_expr_result_ptr&MyClass::MyMember"
Result decl type: "const unsigned int"
Creating a new result global: "$RESULT_NAME" with size 4
Replacing "@"?$__lldb_expr_result_ptr@?1??$__lldb_expr@@YAXPEAX@Z@4PEBIEB" = internal global i32* @"?MyMember@MyClass@@
2IB", align 8" with "@"$RESULT_NAME" = external global i32*"
Synthesized result store " store i32* @"?MyMember@MyClass@@2IB", i32** @"$RESULT_NAME", align 8"
[ClangASTImporter] DeportType called on (const unsigned intType*)0x000001AC147B4981 from (ASTContext*)0x000001AC147
D1300 to (ASTContext*)0x000001AC1474D890
Examining ?MyMember@MyClass@@2IB, DeclForGlobalValue returns 0x000001AC14809A50
MaybeHandleVariable (@"?MyMember@MyClass@@2IB" = linkonce_odr dso_local constant i32 16, comdat, align 4)
Examining reloc_placeholder, DeclForGlobalValue returns 0x0000000000000000
Examining $RESULT_NAME, DeclForGlobalValue returns 0x000001AC14809BF0
MaybeHandleVariable (@"$RESULT_NAME" = external global i32*)
Type of "$__lldb_expr_result_ptr" is [clang "const unsigned int **", llvm "i32***"] [size 8, align 8]
Adding value for (NamedDecl*)%p [%s - %s] to the structure
Already placed at 0x0
Placed at 0x0
Element arrangement:
Arg: "i8* %"$__lldb_arg""
"$RESULT_NAME" ("$__lldb_expr_result_ptr") placed at 0
Replacing [@"$RESULT_NAME" = external global i32*]
Total structure [align 8, size 8]
Unsupported constant: @"?MyMember@MyClass@@2IB" = linkonce_odr dso_local constant i32 16, comdat, align 4
Using x86_64-pc-windows-msvc as the target triple
Using SIMD alignment: 128
Target datalayout string: 'e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128'
Target ABI: ''
Target vector alignment: 0
ClangExpressionDeclMap::FindExternalVisibleDecls for '$__lldb_arg_ptr' in a 'TranslationUnit'
CEDM::FEVD Searching the root namespace
ClangASTSource::FindExternalVisibleDecls on (ASTContext*)0x000001AC147ED710 'Expression ASTContext for '<clang expressi
on>'' for '$__lldb_arg_ptr' in a 'TranslationUnit'
CAS::FEVD Searching the root namespace
ClangExpressionDeclMap::FindExternalVisibleDecls for '_$__lldb_valid_pointer_check' in a 'TranslationUnit'
CEDM::FEVD Searching the root namespace
ClangASTSource::FindExternalVisibleDecls on (ASTContext*)0x000001AC147ED710 'Expression ASTContext for '<clang expressi
on>'' for '_$__lldb_valid_pointer_check' in a 'TranslationUnit'
CAS::FEVD Searching the root namespace
ClangExpressionDeclMap::FindExternalVisibleDecls for '$__lldb_local_val' in a 'TranslationUnit'
CEDM::FEVD Searching the root namespace
ClangASTSource::FindExternalVisibleDecls on (ASTContext*)0x000001AC147ED710 'Expression ASTContext for '<clang expressi
on>'' for '$__lldb_local_val' in a 'TranslationUnit'
CAS::FEVD Searching the root namespace
Found function _$__lldb_valid_pointer_check for _$__lldb_valid_pointer_check
lldb_private::ClangExpressionParser::PrepareForExecution - Current expression language is unknown
Module as passed in to IRForTarget:
"; ModuleID = '$__lldb_module'
source_filename = "$__lldb_module"
target datalayout = "e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-windows-msvc"
; Function Attrs: convergent noinline nounwind optnone
define dso_local void @"_$__lldb_valid_pointer_check"(i8* %"$__lldb_arg_ptr") #0 !dbg !12 {
entry:
%"$__lldb_arg_ptr.addr" = alloca i8*, align 8, !clang.decl.ptr !18
%"$__lldb_local_val" = alloca i8, align 1, !clang.decl.ptr !19
store i8* %"$__lldb_arg_ptr", i8** %"$__lldb_arg_ptr.addr", align 8
call void @llvm.dbg.declare(metadata i8** %"$__lldb_arg_ptr.addr", metadata !20, metadata !DIExpression()), !dbg !21
call void @llvm.dbg.declare(metadata i8* %"$__lldb_local_val", metadata !22, metadata !DIExpression()), !dbg !23
%0 = load i8*, i8** %"$__lldb_arg_ptr.addr", align 8, !dbg !23
%1 = load i8, i8* %0, align 1, !dbg !23
store i8 %1, i8* %"$__lldb_local_val", align 1, !dbg !23
ret void, !dbg !24
}
; Function Attrs: nounwind readnone speculatable willreturn
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
attributes #0 = { convergent noinline nounwind optnone "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-cal
ls"="false" "frame-pointer"="all" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-builtins" "no-infs-fp-ma
th"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="tru
e" "stack-protector-buffer-size"="0" "target-features"="+cx8,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-fl
oat"="false" }
attributes #1 = { nounwind readnone speculatable willreturn }
!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!3, !4, !5, !6, !7, !8, !9}
!clang.global.decl.ptrs = !{!10}
!llvm.ident = !{!11}
!0 = distinct !DICompileUnit(language: DW_LANG_ObjC_plus_plus, file: !1, producer: "clang version 11.0.0 (D:Usersjackoll
vm-project 5b8acd369b43e9d0b0db2be1904750aa5c78e31e)", isOptimized: false, runtimeVersion: 2, emissionKind: FullDebug, e
nums: !2)
!1 = !DIFile(filename: "C:\\Users\\jacko\\AppData\\Local\\Temp\\lldb\\13792\\<stdin>", directory: "C:\\Users\\jacko\\Des
ktop")
!2 = !{}
!3 = !{i32 1, !"Objective-C Version", i32 2}
!4 = !{i32 1, !"Objective-C Image Info Version", i32 0}
!5 = !{i32 1, !"Objective-C Image Info Section", !".objc_imageinfo$B"}
!6 = !{i32 1, !"Objective-C Garbage Collection", i8 0}
!7 = !{i32 1, !"Objective-C Class Properties", i32 64}
!8 = !{i32 2, !"Debug Info Version", i32 3}
!9 = !{i32 1, !"wchar_size", i32 2}
!10 = !{void (i8*)* @"_$__lldb_valid_pointer_check", i64 1838591295008}
!11 = !{!"clang version 11.0.0 (D:Usersjackollvm-project 5b8acd369b43e9d0b0db2be1904750aa5c78e31e)"}
!12 = distinct !DISubprogram(name: "_$__lldb_valid_pointer_check", scope: !13, file: !13, line: 37, type: !14, scopeLine
: 38, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !2)
!13 = !DIFile(filename: "<lldb wrapper prefix>", directory: "C:\\Users\\jacko\\Desktop")
!14 = !DISubroutineType(types: !15)
!15 = !{null, !16}
!16 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !17, size: 64)
!17 = !DIBasicType(name: "unsigned char", size: 8, encoding: DW_ATE_unsigned_char)
!18 = !{i64 1838591294776}
!19 = !{i64 1838591295224}
!20 = !DILocalVariable(name: "$__lldb_arg_ptr", arg: 1, scope: !12, file: !13, line: 37, type: !16)
!21 = !DILocation(line: 37, scope: !12)
!22 = !DILocalVariable(name: "$__lldb_local_val", scope: !12, file: !13, line: 39, type: !17)
!23 = !DILocation(line: 39, scope: !12)
!24 = !DILocation(line: 40, scope: !12)
"
MaybeHandleCallArguments( call void @llvm.dbg.declare(metadata i8** %"$__lldb_arg_ptr.addr", metadata !20, metadata !D
IExpression()), !dbg !21)
MaybeHandleVariable (i8** %"$__lldb_arg_ptr.addr")
MaybeHandleVariable (!20 = !DILocalVariable(name: "$__lldb_arg_ptr", arg: 1, scope: !12, file: !13, line: 37, type: !16
))
MaybeHandleVariable (!DIExpression())
MaybeHandleCallArguments( call void @llvm.dbg.declare(metadata i8* %"$__lldb_local_val", metadata !22, metadata !DIExp
ression()), !dbg !23)
MaybeHandleVariable (i8* %"$__lldb_local_val")
MaybeHandleVariable (!22 = !DILocalVariable(name: "$__lldb_local_val", scope: !12, file: !13, line: 39, type: !17))
MaybeHandleVariable (!DIExpression())
Examining reloc_placeholder, DeclForGlobalValue returns 0x0000000000000000
Module being sent to JIT:
; ModuleID = '$__lldb_module'
source_filename = "$__lldb_module"
target datalayout = "e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-windows-msvc"
@reloc_placeholder = internal global i8 0
; Function Attrs: convergent noinline nounwind optnone
define dso_local void @"_$__lldb_valid_pointer_check"(i8* %"$__lldb_arg_ptr") #0 !dbg !12 {
entry:
%"$__lldb_arg_ptr.addr" = alloca i8*, align 8, !clang.decl.ptr !18
%"$__lldb_local_val" = alloca i8, align 1, !clang.decl.ptr !19
store i8* %"$__lldb_arg_ptr", i8** %"$__lldb_arg_ptr.addr", align 8
call void @llvm.dbg.declare(metadata i8** %"$__lldb_arg_ptr.addr", metadata !20, metadata !DIExpression()), !dbg !21
call void @llvm.dbg.declare(metadata i8* %"$__lldb_local_val", metadata !22, metadata !DIExpression()), !dbg !23
%0 = load i8*, i8** %"$__lldb_arg_ptr.addr", align 8, !dbg !23
%1 = load i8, i8* %0, align 1, !dbg !23
store i8 %1, i8* %"$__lldb_local_val", align 1, !dbg !23
ret void, !dbg !24
}
; Function Attrs: nounwind readnone speculatable willreturn
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1
attributes #0 = { convergent noinline nounwind optnone "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-cal
ls"="false" "frame-pointer"="all" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-builtins" "no-infs-fp-ma
th"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="tru
e" "stack-protector-buffer-size"="0" "target-features"="+cx8,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-fl
oat"="false" }
attributes #1 = { nounwind readnone speculatable willreturn }
!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!3, !4, !5, !6, !7, !8, !9}
!clang.global.decl.ptrs = !{!10}
!llvm.ident = !{!11}
!0 = distinct !DICompileUnit(language: DW_LANG_ObjC_plus_plus, file: !1, producer: "clang version 11.0.0 (D:Usersjackoll
vm-project 5b8acd369b43e9d0b0db2be1904750aa5c78e31e)", isOptimized: false, runtimeVersion: 2, emissionKind: FullDebug, e
nums: !2)
!1 = !DIFile(filename: "C:\\Users\\jacko\\AppData\\Local\\Temp\\lldb\\13792\\<stdin>", directory: "C:\\Users\\jacko\\Des
ktop")
!2 = !{}
!3 = !{i32 1, !"Objective-C Version", i32 2}
!4 = !{i32 1, !"Objective-C Image Info Version", i32 0}
!5 = !{i32 1, !"Objective-C Image Info Section", !".objc_imageinfo$B"}
!6 = !{i32 1, !"Objective-C Garbage Collection", i8 0}
!7 = !{i32 1, !"Objective-C Class Properties", i32 64}
!8 = !{i32 2, !"Debug Info Version", i32 3}
!9 = !{i32 1, !"wchar_size", i32 2}
!10 = !{void (i8*)* @"_$__lldb_valid_pointer_check", i64 1838591295008}
!11 = !{!"clang version 11.0.0 (D:Usersjackollvm-project 5b8acd369b43e9d0b0db2be1904750aa5c78e31e)"}
!12 = distinct !DISubprogram(name: "_$__lldb_valid_pointer_check", scope: !13, file: !13, line: 37, type: !14, scopeLine
: 38, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !2)
!13 = !DIFile(filename: "<lldb wrapper prefix>", directory: "C:\\Users\\jacko\\Desktop")
!14 = !DISubroutineType(types: !15)
!15 = !{null, !16}
!16 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !17, size: 64)
!17 = !DIBasicType(name: "unsigned char", size: 8, encoding: DW_ATE_unsigned_char)
!18 = !{i64 1838591294776}
!19 = !{i64 1838591295224}
!20 = !DILocalVariable(name: "$__lldb_arg_ptr", arg: 1, scope: !12, file: !13, line: 37, type: !16)
!21 = !DILocation(line: 37, scope: !12)
!22 = !DILocalVariable(name: "$__lldb_local_val", scope: !12, file: !13, line: 39, type: !17)
!23 = !DILocation(line: 39, scope: !12)
!24 = !DILocation(line: 40, scope: !12)
IRExecutionUnit::allocateCodeSection(Size=0x1d, Alignment=16, SectionID=0) = 000001AC103A0000
IRExecutionUnit::allocateDataSection(Size=0x1, Alignment=4, SectionID=1) = 000001AC103B0000
IRExecutionUnit::allocateDataSection(Size=0x8, Alignment=1, SectionID=2) = 000001AC105C0000
IRExecutionUnit::allocateDataSection(Size=0x1, Alignment=4, SectionID=3) = 000001AC103B0004
IRExecutionUnit::allocateDataSection(Size=0x5a, Alignment=1, SectionID=4) = 000001AC105C0008
IRExecutionUnit::allocateDataSection(Size=0x103, Alignment=1, SectionID=5) = 000001AC105C0062
IRExecutionUnit::allocateDataSection(Size=0xf2, Alignment=1, SectionID=6) = 000001AC105C0165
IRExecutionUnit::allocateDataSection(Size=0x5b, Alignment=1, SectionID=7) = 000001AC105C0257
IRExecutionUnit::allocateDataSection(Size=0x41, Alignment=1, SectionID=8) = 000001AC105C02B2
IRExecutionUnit::allocateDataSection(Size=0x32, Alignment=1, SectionID=9) = 000001AC105C02F3
IRMemoryMap::Malloc (47, 0x10, 0x6, eAllocationPolicyProcessOnly) -> 0x2551fe30000
IRMemoryMap::Malloc (7, 0x4, 0x3, eAllocationPolicyProcessOnly) -> 0x2551fe40000
IRMemoryMap::Malloc (8, 0x1, 0x2, eAllocationPolicyProcessOnly) -> 0x2551fe50000
IRMemoryMap::Malloc (7, 0x4, 0x3, eAllocationPolicyProcessOnly) -> 0x2551fe40010
IRMemoryMap::WriteMemory (0x2551fe30000, 0x1ac103a0000, 0x29) went to [0x2551fe30000..0x2551fe3002f)
IRMemoryMap::WriteMemory (0x2551fe40000, 0x1ac103b0000, 0x1) went to [0x2551fe40000..0x2551fe40007)
IRMemoryMap::WriteMemory (0x2551fe50000, 0x1ac105c0000, 0x8) went to [0x2551fe50000..0x2551fe50008)
IRMemoryMap::WriteMemory (0x2551fe40010, 0x1ac103b0004, 0x1) went to [0x2551fe40010..0x2551fe40017)
IRExecutionUnit::GetRemoteAddressForLocal() found 0x1ac103a0000 in [0x1ac103a0000..0x1ac103a001d], and returned 0x2551f
e30000 from [0x2551fe30000..0x2551fe3001d].
Code can be run in the target.
Found function, has local address 0x1ac103a0000 and remote address 0x2551fe30000
Function's code range is [0x2551fe30000+0x1d]
Function data has contents:
0x2551fe30000: 55 48 83 ec 10 48 8d 6c 24 10 48 89 4d f0 48 8b
0x2551fe30010: 45 f0 8a 00 88 45 ff 48 83 c4 10 5d c3
Function disassembly:
0x2551fe30000: 55 pushq %rbp
0x2551fe30001: 48 83 ec 10 subq $0x10, %rsp
0x2551fe30005: 48 8d 6c 24 10 leaq 0x10(%rsp), %rbp
0x2551fe3000a: 48 89 4d f0 movq %rcx, -0x10(%rbp)
0x2551fe3000e: 48 8b 45 f0 movq -0x10(%rbp), %rax
0x2551fe30012: 8a 00 movb (%rax), %al
0x2551fe30014: 88 45 ff movb %al, -0x1(%rbp)
0x2551fe30017: 48 83 c4 10 addq $0x10, %rsp
0x2551fe3001b: 5d popq %rbp
0x2551fe3001c: c3 retq
Sections:
[0x1ac103a0000+0x1d]->0x2551fe30000 (alignment 16, section ID 0, name .text)
IRMemoryMap::ReadMemory (0x2551fe30000, 0x1ac149adc30, 0x29) came from [0x2551fe30000..0x2551fe3002f)
0x2551fe30000: 55 48 83 ec 10 48 8d 6c 24 10 48 89 4d f0 48 8b
0x2551fe30010: 45 f0 8a 00 88 45 ff 48 83 c4 10 5d c3
[0x1ac103b0000+0x1]->0x2551fe40000 (alignment 4, section ID 1, name .bss)
IRMemoryMap::ReadMemory (0x2551fe40000, 0x1ac144b31e0, 0x1) came from [0x2551fe40000..0x2551fe40007)
0x2551fe40000: 00
[0x1ac105c0000+0x8]->0x2551fe50000 (alignment 1, section ID 2, name .objc_imageinfo$B)
IRMemoryMap::ReadMemory (0x2551fe50000, 0x1ac14a70230, 0x8) came from [0x2551fe50000..0x2551fe50008)
0x2551fe50000: 00 00 00 00 40 00 00 00
[0x1ac103b0004+0x1]->0x2551fe40010 (alignment 4, section ID 3, name .data)
IRMemoryMap::ReadMemory (0x2551fe40010, 0x1ac144b31e0, 0x1) came from [0x2551fe40010..0x2551fe40017)
0x2551fe40010: 00
[0x1ac105c0008+0x5a]->0xffffffffffffffff (alignment 1, section ID 4, name .debug_abbrev)
0x1ac105c0008: 01 11 01 25 0e 13 05 03 0e 10 17 1b 0e b4 42 19
0x1ac105c0018: 11 01 12 06 00 00 02 2e 01 11 01 12 06 40 18 03
0x1ac105c0028: 0e 3a 0b 3b 0b 3f 19 00 00 03 05 00 02 18 03 0e
0x1ac105c0038: 3a 0b 3b 0b 49 13 00 00 04 34 00 02 18 03 0e 3a
0x1ac105c0048: 0b 3b 0b 49 13 00 00 05 0f 00 49 13 00 00 06 24
0x1ac105c0058: 00 03 0e 3e 0b 0b 0b 00 00 00
[0x1ac105c0062+0x103]->0xffffffffffffffff (alignment 1, section ID 5, name .debug_info)
0x1ac105c0062: 65 00 00 00 04 00 00 00 00 00 08 01 00 00 00 00
0x1ac105c0072: 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x1ac105c0082: e3 1f 55 02 00 00 1d 00 00 00 02 00 00 e3 1f 55
0x1ac105c0092: 02 00 00 1d 00 00 00 01 56 00 00 00 00 01 25 03
0x1ac105c00a2: 02 91 70 00 00 00 00 01 25 5c 00 00 00 04 02 91
0x1ac105c00b2: 7f 00 00 00 00 01 27 61 00 00 00 00 05 61 00 00
0x1ac105c00c2: 00 06 00 00 00 00 08 01 00 00 00 00 00 00 00 00
0x1ac105c00d2: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x1ac105c00e2: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x1ac105c00f2: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x1ac105c0102: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x1ac105c0112: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x1ac105c0122: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x1ac105c0132: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x1ac105c0142: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x1ac105c0152: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x1ac105c0162: 00 00 00
[0x1ac105c0165+0xf2]->0xffffffffffffffff (alignment 1, section ID 6, name .debug_str)
0x1ac105c0165: 63 6c 61 6e 67 20 76 65 72 73 69 6f 6e 20 31 31
0x1ac105c0175: 2e 30 2e 30 20 28 44 3a 55 73 65 72 73 6a 61 63
0x1ac105c0185: 6b 6f 6c 6c 76 6d 2d 70 72 6f 6a 65 63 74 20 35
0x1ac105c0195: 62 38 61 63 64 33 36 39 62 34 33 65 39 64 30 62
0x1ac105c01a5: 30 64 62 32 62 65 31 39 30 34 37 35 30 61 61 35
0x1ac105c01b5: 63 37 38 65 33 31 65 29 00 43 3a 5c 55 73 65 72
0x1ac105c01c5: 73 5c 6a 61 63 6b 6f 5c 41 70 70 44 61 74 61 5c
0x1ac105c01d5: 4c 6f 63 61 6c 5c 54 65 6d 70 5c 6c 6c 64 62 5c
0x1ac105c01e5: 31 33 37 39 32 5c 3c 73 74 64 69 6e 3e 00 43 3a
0x1ac105c01f5: 5c 55 73 65 72 73 5c 6a 61 63 6b 6f 5c 44 65 73
0x1ac105c0205: 6b 74 6f 70 00 5f 24 5f 5f 6c 6c 64 62 5f 76 61
0x1ac105c0215: 6c 69 64 5f 70 6f 69 6e 74 65 72 5f 63 68 65 63
0x1ac105c0225: 6b 00 24 5f 5f 6c 6c 64 62 5f 61 72 67 5f 70 74
0x1ac105c0235: 72 00 75 6e 73 69 67 6e 65 64 20 63 68 61 72 00
0x1ac105c0245: 24 5f 5f 6c 6c 64 62 5f 6c 6f 63 61 6c 5f 76 61
0x1ac105c0255: 6c 00
[0x1ac105c0257+0x5b]->0xffffffffffffffff (alignment 1, section ID 7, name .debug_line)
0x1ac105c0257: 49 00 00 00 04 00 2d 00 00 00 01 01 01 fb 0e 0d
0x1ac105c0267: 00 01 01 01 01 00 00 00 01 00 00 01 00 3c 6c 6c
0x1ac105c0277: 64 62 20 77 72 61 70 70 65 72 20 70 72 65 66 69
0x1ac105c0287: 78 3e 00 00 00 00 00 00 09 02 00 00 e3 1f 55 02
0x1ac105c0297: 00 00 03 25 01 0a d7 91 02 06 00 01 01 00 00 00
0x1ac105c02a7: 00 00 00 00 00 00 00 00 00 00 00
[0x1ac105c02b2+0x41]->0xffffffffffffffff (alignment 1, section ID 8, name .debug_pubnames)
0x1ac105c02b2: 2f 00 00 00 02 00 00 00 00 00 69 00 00 00 2a 00
0x1ac105c02c2: 00 00 5f 24 5f 5f 6c 6c 64 62 5f 76 61 6c 69 64
0x1ac105c02d2: 5f 70 6f 69 6e 74 65 72 5f 63 68 65 63 6b 00 00
0x1ac105c02e2: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x1ac105c02f2: 00
[0x1ac105c02f3+0x32]->0xffffffffffffffff (alignment 1, section ID 9, name .debug_pubtypes)
0x1ac105c02f3: 20 00 00 00 02 00 00 00 00 00 69 00 00 00 61 00
0x1ac105c0303: 00 00 75 6e 73 69 67 6e 65 64 20 63 68 61 72 00
0x1ac105c0313: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x1ac105c0323: 00 00
[ClangASTImporter] Forgetting destination (ASTContext*)0x000001AC147ED710
[ClangASTImporter] Forgetting source->dest (ASTContext*)0x000001AC147ED710->(ASTContext*)0x000001AC1474D890
== [ClangExpressionParser::PrepareForExecution] Finished installing dynamic checkers ==
Instrumenting load/store instruction: store i32* @"?MyMember@MyClass@@2IB", i32** %1, align 8
Instrumenting load/store instruction: store i8* %"$__lldb_arg", i8** %"$__lldb_arg.addr", align 8
Module being sent to JIT:
; ModuleID = '$__lldb_module'
source_filename = "$__lldb_module"
target datalayout = "e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-windows-msvc"
$"?MyMember@MyClass@@2IB" = comdat any
@"?MyMember@MyClass@@2IB" = linkonce_odr dso_local constant i32 16, comdat, align 4
@reloc_placeholder = internal global i8 0
; Function Attrs: convergent noinline nounwind optnone
define dso_local void @"?$__lldb_expr@@YAXPEAX@Z"(i8* %"$__lldb_arg") #0 {
entry:
%0 = getelementptr i8, i8* %"$__lldb_arg", i32 0
%1 = bitcast i8* %0 to i32**
%2 = bitcast i32** %1 to i8*
call void (i8*, ...) inttoptr (i64 2564630446080 to void (i8*, ...)*)(i8* %2)
store i32* @"?MyMember@MyClass@@2IB", i32** %1, align 8
%"$__lldb_arg.addr" = alloca i8*, align 8, !clang.decl.ptr !11
%3 = bitcast i8** %"$__lldb_arg.addr" to i8*
call void (i8*, ...) inttoptr (i64 2564630446080 to void (i8*, ...)*)(i8* %3)
store i8* %"$__lldb_arg", i8** %"$__lldb_arg.addr", align 8
ret void
}
attributes #0 = { convergent noinline nounwind optnone "correctly-rounded-divide-sqrt-fp-math"="false" "disable-tail-cal
ls"="false" "frame-pointer"="all" "less-precise-fpmad"="false" "min-legal-vector-width"="0" "no-builtins" "no-infs-fp-ma
th"="false" "no-jump-tables"="false" "no-nans-fp-math"="false" "no-signed-zeros-fp-math"="false" "no-trapping-math"="tru
e" "stack-protector-buffer-size"="0" "target-features"="+cx8,+mmx,+sse,+sse2,+x87" "unsafe-fp-math"="false" "use-soft-fl
oat"="false" }
!clang.global.decl.ptrs = !{!0, !1, !0, !2, !3}
!llvm.module.flags = !{!4, !5, !6, !7, !8, !9}
!llvm.ident = !{!10}
!0 = distinct !{null, i64 1838589975536}
!1 = !{void (i8*)* @"?$__lldb_expr@@YAXPEAX@Z", i64 1838589974576}
!2 = !{i32* @"?MyMember@MyClass@@2IB", i64 1838589975120}
!3 = distinct !{null, i64 1838589975536}
!4 = !{i32 1, !"Objective-C Version", i32 2}
!5 = !{i32 1, !"Objective-C Image Info Version", i32 0}
!6 = !{i32 1, !"Objective-C Image Info Section", !".objc_imageinfo$B"}
!7 = !{i32 1, !"Objective-C Garbage Collection", i8 0}
!8 = !{i32 1, !"Objective-C Class Properties", i32 64}
!9 = !{i32 1, !"wchar_size", i32 2}
!10 = !{!"clang version 11.0.0 (D:Usersjackollvm-project 5b8acd369b43e9d0b0db2be1904750aa5c78e31e)"}
!11 = !{i64 1838589974352}
IRExecutionUnit::allocateDataSection(Size=0x4, Alignment=4, SectionID=0) = 000001AC105D0000
IRExecutionUnit::allocateCodeSection(Size=0x52, Alignment=16, SectionID=1) = 000001AC105E0000
IRExecutionUnit::allocateDataSection(Size=0x1, Alignment=4, SectionID=2) = 000001AC12130000
IRExecutionUnit::allocateDataSection(Size=0x8, Alignment=1, SectionID=3) = 000001AC105D0004
IRExecutionUnit::allocateDataSection(Size=0x1, Alignment=4, SectionID=4) = 000001AC12130004
IRMemoryMap::Malloc (7, 0x4, 0x2, eAllocationPolicyProcessOnly) -> 0x2551fe50010
IRMemoryMap::Malloc (111, 0x10, 0x6, eAllocationPolicyProcessOnly) -> 0x2551fe30030
IRMemoryMap::Malloc (7, 0x4, 0x3, eAllocationPolicyProcessOnly) -> 0x2551fe40020
IRMemoryMap::Malloc (8, 0x1, 0x2, eAllocationPolicyProcessOnly) -> 0x2551fe50020
IRMemoryMap::Malloc (7, 0x4, 0x3, eAllocationPolicyProcessOnly) -> 0x2551fe40030
IRMemoryMap::WriteMemory (0x2551fe50010, 0x1ac105d0000, 0x4) went to [0x2551fe50010..0x2551fe50017)
IRMemoryMap::WriteMemory (0x2551fe30030, 0x1ac105e0000, 0x82) went to [0x2551fe30030..0x2551fe3009f)
IRMemoryMap::WriteMemory (0x2551fe40020, 0x1ac12130000, 0x1) went to [0x2551fe40020..0x2551fe40027)
IRMemoryMap::WriteMemory (0x2551fe50020, 0x1ac105d0004, 0x8) went to [0x2551fe50020..0x2551fe50028)
IRMemoryMap::WriteMemory (0x2551fe40030, 0x1ac12130004, 0x1) went to [0x2551fe40030..0x2551fe40037)
IRExecutionUnit::GetRemoteAddressForLocal() found 0x1ac105e0000 in [0x1ac105e0000..0x1ac105e0052], and returned 0x2551f
e30030 from [0x2551fe30030..0x2551fe30082].
Code can be run in the target.
Found function, has local address 0x1ac105e0000 and remote address 0x2551fe30030
Function's code range is [0x2551fe30030+0x52]
Function data has contents:
0x2551fe30030: 55 56 48 83 ec 28 48 8d 6c 24 20 48 89 ce 48 b8
0x2551fe30040: 00 00 e3 1f 55 02 00 00 48 89 f1 ff d0 48 b8 10
0x2551fe30050: 00 e5 1f 55 02 00 00 48 89 06 48 89 e9 48 b8 00
0x2551fe30060: 00 e3 1f 55 02 00 00 ff d0 48 89 75 00 48 83 c4
0x2551fe30070: 28 5e 5d c3 00 00 00 00 00 00 00 00 00 00 00 00
0x2551fe30080: 00 00
Function disassembly:
0x2551fe30030: 55 pushq %rbp
0x2551fe30031: 56 pushq %rsi
0x2551fe30032: 48 83 ec 28 subq $0x28, %rsp
0x2551fe30036: 48 8d 6c 24 20 leaq 0x20(%rsp), %rbp
0x2551fe3003b: 48 89 ce movq %rcx, %rsi
0x2551fe3003e: 48 b8 00 00 e3 1f 55 02 00 00 movabsq $0x2551fe30000, %rax ; imm = 0x2551FE30000
0x2551fe30048: 48 89 f1 movq %rsi, %rcx
0x2551fe3004b: ff d0 callq *%rax
0x2551fe3004d: 48 b8 10 00 e5 1f 55 02 00 00 movabsq $0x2551fe50010, %rax ; imm = 0x2551FE50010
0x2551fe30057: 48 89 06 movq %rax, (%rsi)
0x2551fe3005a: 48 89 e9 movq %rbp, %rcx
0x2551fe3005d: 48 b8 00 00 e3 1f 55 02 00 00 movabsq $0x2551fe30000, %rax ; imm = 0x2551FE30000
0x2551fe30067: ff d0 callq *%rax
0x2551fe30069: 48 89 75 00 movq %rsi, (%rbp)
0x2551fe3006d: 48 83 c4 28 addq $0x28, %rsp
0x2551fe30071: 5e popq %rsi
0x2551fe30072: 5d popq %rbp
0x2551fe30073: c3 retq
0x2551fe30074: 00 00 addb %al, (%rax)
0x2551fe30076: 00 00 addb %al, (%rax)
0x2551fe30078: 00 00 addb %al, (%rax)
0x2551fe3007a: 00 00 addb %al, (%rax)
0x2551fe3007c: 00 00 addb %al, (%rax)
0x2551fe3007e: 00 00 addb %al, (%rax)
0x2551fe30080: 00 00 addb %al, (%rax)
Sections:
[0x1ac105d0000+0x4]->0x2551fe50010 (alignment 4, section ID 0, name .rdata)
IRMemoryMap::ReadMemory (0x2551fe50010, 0x1ac144b4620, 0x4) came from [0x2551fe50010..0x2551fe50017)
0x2551fe50010: 10 00 00 00
[0x1ac105e0000+0x52]->0x2551fe30030 (alignment 16, section ID 1, name .text)
IRMemoryMap::ReadMemory (0x2551fe30030, 0x1ac14b0d9f0, 0x82) came from [0x2551fe30030..0x2551fe3009f)
0x2551fe30030: 55 56 48 83 ec 28 48 8d 6c 24 20 48 89 ce 48 b8
0x2551fe30040: 00 00 e3 1f 55 02 00 00 48 89 f1 ff d0 48 b8 10
0x2551fe30050: 00 e5 1f 55 02 00 00 48 89 06 48 89 e9 48 b8 00
0x2551fe30060: 00 e3 1f 55 02 00 00 ff d0 48 89 75 00 48 83 c4
0x2551fe30070: 28 5e 5d c3 00 00 00 00 00 00 00 00 00 00 00 00
0x2551fe30080: 00 00
[0x1ac12130000+0x1]->0x2551fe40020 (alignment 4, section ID 2, name .bss)
IRMemoryMap::ReadMemory (0x2551fe40020, 0x1ac144b50e0, 0x1) came from [0x2551fe40020..0x2551fe40027)
0x2551fe40020: 00
[0x1ac105d0004+0x8]->0x2551fe50020 (alignment 1, section ID 3, name .objc_imageinfo$B)
IRMemoryMap::ReadMemory (0x2551fe50020, 0x1ac14977750, 0x8) came from [0x2551fe50020..0x2551fe50028)
0x2551fe50020: 00 00 00 00 40 00 00 00
[0x1ac12130004+0x1]->0x2551fe40030 (alignment 4, section ID 4, name .data)
IRMemoryMap::ReadMemory (0x2551fe40030, 0x1ac144b4960, 0x1) came from [0x2551fe40030..0x2551fe40037)
0x2551fe40030: 00
[ClangASTImporter] Forgetting destination (ASTContext*)0x000001AC147D1300
[ClangASTImporter] Forgetting source->dest (ASTContext*)0x000001AC147D1300->(ASTContext*)0x000001AC1474D890
== [UserExpression::Evaluate] Executing expression ==
IRMemoryMap::lldb_private::IRMemoryMap::Malloc process_sp=0x1ac13b8fbf0, process_sp->CanJIT()=true, process_sp->IsAlive
()=true
IRMemoryMap::Malloc (15, 0x8, 0x3, eAllocationPolicyMirror) -> 0x2551fe40040
Materializer::Materialize (frame_sp = 000001AC14684CC0, process_address = 0x2551fe40040) materialized:
IRMemoryMap::ReadMemory (0x2551fe40040, 0x1ac14977750, 0x8) came from [0x2551fe40040..0x2551fe4004f)
0x2551fe40040: EntityResultVariable
Pointer:
0x2551fe40040: 00 00 00 00 00 00 00 00
Points to process memory:
ABIWindows_x86_64::PrepareTrivialCall (tid = 0x3fa8, sp = 0xd66e6fee00, func_addr = 0x2551fe30030, return_addr = 0x7ff7
a6e51208, arg1 = 0x2551fe40040)
About to write arg1 (0x2551fe40040) into rcx
16-byte aligning SP: 0xd66e6fee00 to 0xd66e6fee00
Pushing the return address onto the stack: 0xd66e6fedf8: 0x7ff7a6e51208
Writing SP: 0xd66e6fedf8
Writing IP: 0x2551fe30030
-- [UserExpression::Execute] Execution of expression begins --
-- [UserExpression::Execute] Execution of expression completed --
-- [UserExpression::FinalizeJITExecution] Dematerializing after execution --
Materializer::Dematerialize (frame_sp = 000001AC14844A90, process_address = 0x2551fe40040) about to dematerialize:
IRMemoryMap::ReadMemory (0x2551fe40040, 0x1ac14a7a0f0, 0x8) came from [0x2551fe40040..0x2551fe4004f)
0x2551fe40040: EntityResultVariable
Pointer:
0x2551fe40040: 10 00 e5 1f 55 02 00 00
Points to process memory:
IRMemoryMap::ReadMemory (0x2551fe40040, 0x1ac14a78f70, 0x8) came from [0x2551fe40040..0x2551fe4004f)
IRMemoryMap::ReadMemory (0x2551fe50010, 0x1ac144b50e0, 0x4) came from [0x2551fe50010..0x2551fe50017)
== [UserExpression::Evaluate] Execution completed normally with result %s ==
IRMemoryMap::Free (0x2551fe30030) freed [0x2551fe30030..0x2551fe3009f)
IRMemoryMap::Free (0x2551fe40020) freed [0x2551fe40020..0x2551fe40027)
IRMemoryMap::Free (0x2551fe40030) freed [0x2551fe40030..0x2551fe40037)
IRMemoryMap::Free (0x2551fe40040) freed [0x2551fe40040..0x2551fe4004f)
IRMemoryMap::Free (0x2551fe50010) freed [0x2551fe50010..0x2551fe50017)
IRMemoryMap::Free (0x2551fe50020) freed [0x2551fe50020..0x2551fe50028)
(const unsigned int) $0 = 16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment