How to not step into function calls? (Example inside)

In my language malloc and memset are invisible. I tried using lldb to set breakpoints/step into/step over/step out however I get the following message on windows

Process 10552 stopped

  • thread #1, stop reason = step over failed (Could not create return address breakpoint.)

Not a big deal. In vscode I am able to step in/over/out without an issue. However since I’m pressing F11 (step in) to go line from line randomly the debugger will enter malloc and memset which may throw the user off.

How do I prevent those functions from being entered? I’d also like to skip “puts”. I wrote some C++ code and modified the llvm file to give an example. I was wondering how to change it to get the behavior I desire.
test.cpp

#include
#include
void test() {
charp=(char)malloc(20);
p[0] = ‘H’;
p[1] = 0;
puts(p);
free(p);
}
int main() {
test();
}

test.ll. NOTICE I added llvm.memset.p0i8.i64 so you can see it happen there too which is a bit strange since it’s not an explicit C call. I added the declaration and the call right after malloc.

; ModuleID = ‘test.cpp’
source_filename = “test.cpp”
target datalayout = “e-m:w-i64:64-f80:128-n8:16:32:64-S128”
target triple = “x86_64-pc-windows-msvc19.10.25017”
declare void @llvm.memset.p0i8.i64(i8* nocapture writeonly, i8, i64, i32, i1)

; Function Attrs: noinline optnone uwtable
define dso_local void @"?test@@YAXXZ"() #0 !dbg !389 {
%1 = alloca i8*, align 8
call void @llvm.dbg.declare(metadata i8** %1, metadata !390, metadata !DIExpression()), !dbg !391
%2 = call noalias i8* @malloc(i64 20), !dbg !391
call void @llvm.memset.p0i8.i64(i8* %2, i8 0, i64 20, i32 1, i1 false)
store i8* %2, i8** %1, align 8, !dbg !391
%3 = load i8*, i8** %1, align 8, !dbg !392
%4 = getelementptr inbounds i8, i8* %3, i64 0, !dbg !392
store i8 72, i8* %4, align 1, !dbg !392
%5 = load i8*, i8** %1, align 8, !dbg !393
%6 = getelementptr inbounds i8, i8* %5, i64 1, !dbg !393
store i8 0, i8* %6, align 1, !dbg !393
%7 = load i8*, i8** %1, align 8, !dbg !394
%8 = call i32 @puts(i8* %7), !dbg !394
%9 = load i8*, i8** %1, align 8, !dbg !395
call void @free(i8* %9), !dbg !395
ret void, !dbg !396
}

; Function Attrs: nounwind readnone speculatable
declare void @llvm.dbg.declare(metadata, metadata, metadata) #1

declare dso_local noalias i8* @malloc(i64) #2

declare dso_local i32 @puts(i8*) #2

declare dso_local void @free(i8*) #2

; Function Attrs: noinline norecurse optnone uwtable
define dso_local i32 @main() #3 !dbg !397 {
call void @"?test@@YAXXZ"(), !dbg !398
ret i32 0, !dbg !399
}

attributes #0 = { noinline optnone uwtable “correctly-rounded-divide-sqrt-fp-math”=“false” “disable-tail-calls”=“false” “less-precise-fpmad”=“false” “min-legal-vector-width”=“0” “no-frame-pointer-elim”=“false” “no-infs-fp-math”=“false” “no-jump-tables”=“false” “no-nans-fp-math”=“false” “no-signed-zeros-fp-math”=“false” “no-trapping-math”=“false” “stack-protector-buffer-size”=“8” “target-cpu”=“x86-64” “target-features”="+fxsr,+mmx,+sse,+sse2,+x87" “unsafe-fp-math”=“false” “use-soft-float”=“false” }
attributes #1 = { nounwind readnone speculatable }
attributes #2 = { “correctly-rounded-divide-sqrt-fp-math”=“false” “disable-tail-calls”=“false” “less-precise-fpmad”=“false” “no-frame-pointer-elim”=“false” “no-infs-fp-math”=“false” “no-nans-fp-math”=“false” “no-signed-zeros-fp-math”=“false” “no-trapping-math”=“false” “stack-protector-buffer-size”=“8” “target-cpu”=“x86-64” “target-features”="+fxsr,+mmx,+sse,+sse2,+x87" “unsafe-fp-math”=“false” “use-soft-float”=“false” }
attributes #3 = { noinline norecurse optnone uwtable “correctly-rounded-divide-sqrt-fp-math”=“false” “disable-tail-calls”=“false” “less-precise-fpmad”=“false” “min-legal-vector-width”=“0” “no-frame-pointer-elim”=“false” “no-infs-fp-math”=“false” “no-jump-tables”=“false” “no-nans-fp-math”=“false” “no-signed-zeros-fp-math”=“false” “no-trapping-math”=“false” “stack-protector-buffer-size”=“8” “target-cpu”=“x86-64” “target-features”="+fxsr,+mmx,+sse,+sse2,+x87" “unsafe-fp-math”=“false” “use-soft-float”=“false” }

llvm.dbg.cu = !{!0}
!llvm.linker.options = !{!379, !380, !381, !382, !383}
!llvm.module.flags = !{!384, !385, !386, !387}
!llvm.ident = !{!388}

!0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: “clang version 8.0.0 (tags/RELEASE_800/final)”, isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, retainedTypes: !3, imports: !6, nameTableKind: None)
!1 = !DIFile(filename: “test.cpp”, directory: “D:\5Cdev\5CLang2018\5CDebuggerTestPrj”, checksumkind: CSK_MD5, checksum: “3d1a5422d6ed875b121f379a6e39b990”)
!2 = !{}
!3 = !{!4}
!4 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !5, size: 64)
!5 = !DIBasicType(name: “char”, size: 8, encoding: DW_ATE_signed_char)
!6 = !{!7, !12, !16, !20, !27, !31, !36, !42, !50, !54, !58, !69, !76, !87, !91, !95, !99, !103, !107, !111, !117, !121, !125, !129, !133, !138, !143, !147, !152, !158, !162, !163, !167, !169, !173, !177, !181, !186, !190, !194, !198, !200, !202, !204, !210, !214, !215, !218, !219, !224, !228, !230, !232, !234, !236, !241, !245, !249, !255, !259, !263, !267, !271, !273, !277, !283, !287, !291, !293, !295, !299, !301, !305, !309, !311, !313, !317, !319, !321, !325, !329, !333, !337, !341, !345, !347, !353, !357, !361, !367, !371, !373, !375}
!7 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !0, entity: !8, file: !9, line: 110)
!8 = !DIDerivedType(tag: DW_TAG_typedef, name: “nullptr_t”, scope: !10, file: !9, line: 109, baseType: !11)
!9 = !DIFile(filename: “C:\5CProgram Files\5CLLVM\5Clib\5Cclang\5C8.0.0\5Cinclude\5Cstddef.h”, directory: “”, checksumkind: CSK_MD5, checksum: “3dd24d4ff6fd1cf5ed6d31accad71676”)
!10 = !DINamespace(name: “std”, scope: null)
!11 = !DIBasicType(tag: DW_TAG_unspecified_type, name: “decltype(nullptr)”)
!12 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !13, file: !15, line: 27)
!13 = !DIDerivedType(tag: DW_TAG_typedef, name: “size_t”, file: !9, line: 62, baseType: !14)
!14 = !DIBasicType(name: “long long unsigned int”, size: 64, encoding: DW_ATE_unsigned)
!15 = !DIFile(filename: “C:\5CProgram Files (x86)\5CMicrosoft Visual Studio\5C2017\5CEnterprise\5CVC\5CTools\5CMSVC\5C14.10.25017\5Cinclude\5Ccstdlib”, directory: “”, checksumkind: CSK_MD5, checksum: “e3fc4cfc41c5758597d6470060398c64”)
!16 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !17, file: !15, line: 27)
!17 = !DIDerivedType(tag: DW_TAG_typedef, name: “div_t”, file: !18, line: 274, baseType: !19)
!18 = !DIFile(filename: “C:\5CProgram Files (x86)\5CWindows Kits\5C10\5CInclude\5C10.0.14393.0\5Cucrt\5Cstdlib.h”, directory: “”, checksumkind: CSK_MD5, checksum: “4c858a490f6809868f004e863b6581bf”)
!19 = !DICompositeType(tag: DW_TAG_structure_type, name: “_div_t”, file: !18, line: 270, flags: DIFlagFwdDecl, identifier: “.?AU_div_t@@”)
!20 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !21, file: !15, line: 27)
!21 = !DIDerivedType(tag: DW_TAG_typedef, name: “ldiv_t”, file: !18, line: 280, baseType: !22)
!22 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: “_ldiv_t”, file: !18, line: 276, size: 64, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !23, identifier: “.?AU_ldiv_t@@”)
!23 = !{!24, !26}
!24 = !DIDerivedType(tag: DW_TAG_member, name: “quot”, scope: !22, file: !18, line: 278, baseType: !25, size: 32)
!25 = !DIBasicType(name: “long int”, size: 32, encoding: DW_ATE_signed)
!26 = !DIDerivedType(tag: DW_TAG_member, name: “rem”, scope: !22, file: !18, line: 279, baseType: !25, size: 32, offset: 32)
!27 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !28, file: !15, line: 28)
!28 = !DISubprogram(name: “abort”, scope: !18, file: !18, line: 55, type: !29, flags: DIFlagPrototyped | DIFlagNoReturn, spFlags: 0)
!29 = !DISubroutineType(types: !30)
!30 = !{null}
!31 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !32, file: !15, line: 28)
!32 = !DISubprogram(name: “abs”, linkageName: “?abs@@YAOO@Z”, scope: !15, file: !15, line: 21, type: !33, flags: DIFlagPrototyped, spFlags: 0)
!33 = !DISubroutineType(types: !34)
!34 = !{!35, !35}
!35 = !DIBasicType(name: “long double”, size: 64, encoding: DW_ATE_float)
!36 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !37, file: !15, line: 28)
!37 = !DISubprogram(name: “atexit”, scope: !18, file: !18, line: 139, type: !38, flags: DIFlagPrototyped, spFlags: 0)
!38 = !DISubroutineType(types: !39)
!39 = !{!40, !41}
!40 = !DIBasicType(name: “int”, size: 32, encoding: DW_ATE_signed)
!41 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !29, size: 64)
!42 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !43, file: !15, line: 29)
!43 = !DISubprogram(name: “atof”, scope: !44, file: !44, line: 491, type: !45, flags: DIFlagPrototyped, spFlags: 0)
!44 = !DIFile(filename: “C:\5CProgram Files (x86)\5CWindows Kits\5C10\5CInclude\5C10.0.14393.0\5Cucrt\5Cmath.h”, directory: “”, checksumkind: CSK_MD5, checksum: “b798897bfa0f15c7de7f5e4c6c8886f8”)
!45 = !DISubroutineType(types: !46)
!46 = !{!47, !48}
!47 = !DIBasicType(name: “double”, size: 64, encoding: DW_ATE_float)
!48 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !49, size: 64)
!49 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !5)
!50 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !51, file: !15, line: 29)
!51 = !DISubprogram(name: “atoi”, scope: !18, file: !18, line: 446, type: !52, flags: DIFlagPrototyped, spFlags: 0)
!52 = !DISubroutineType(types: !53)
!53 = !{!40, !48}
!54 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !55, file: !15, line: 29)
!55 = !DISubprogram(name: “atol”, scope: !18, file: !18, line: 447, type: !56, flags: DIFlagPrototyped, spFlags: 0)
!56 = !DISubroutineType(types: !57)
!57 = !{!25, !48}
!58 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !59, file: !15, line: 30)
!59 = !DISubprogram(name: “bsearch”, scope: !60, file: !60, line: 45, type: !61, flags: DIFlagPrototyped, spFlags: 0)
!60 = !DIFile(filename: “C:\5CProgram Files (x86)\5CWindows Kits\5C10\5CInclude\5C10.0.14393.0\5Cucrt\5Ccorecrt_search.h”, directory: “”, checksumkind: CSK_MD5, checksum: “0aa30c1d056387d8e367ecd12c0ffdf1”)
!61 = !DISubroutineType(types: !62)
!62 = !{!63, !64, !64, !13, !13, !66}
!63 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null, size: 64)
!64 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !65, size: 64)
!65 = !DIDerivedType(tag: DW_TAG_const_type, baseType: null)
!66 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !67, size: 64)
!67 = !DISubroutineType(types: !68)
!68 = !{!40, !64, !64}
!69 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !70, file: !15, line: 30)
!70 = !DISubprogram(name: “calloc”, scope: !71, file: !71, line: 62, type: !72, flags: DIFlagPrototyped, spFlags: 0)
!71 = !DIFile(filename: “C:\5CProgram Files (x86)\5CWindows Kits\5C10\5CInclude\5C10.0.14393.0\5Cucrt\5Ccorecrt_malloc.h”, directory: “”, checksumkind: CSK_MD5, checksum: “77545b29caefbf7038364ec572b18826”)
!72 = !DISubroutineType(types: !73)
!73 = !{!63, !74, !74}
!74 = !DIDerivedType(tag: DW_TAG_typedef, name: “size_t”, file: !75, line: 194, baseType: !14)
!75 = !DIFile(filename: “C:\5CProgram Files (x86)\5CMicrosoft Visual Studio\5C2017\5CEnterprise\5CVC\5CTools\5CMSVC\5C14.10.25017\5Cinclude\5Cvcruntime.h”, directory: “”, checksumkind: CSK_MD5, checksum: “70f6d71b7615fc31611118aaa55f403d”)
!76 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !77, file: !15, line: 30)
!77 = !DISubprogram(name: “div”, linkageName: “?div@@YA?AU_lldiv_t@@_J0@Z”, scope: !18, file: !18, line: 373, type: !78, flags: DIFlagPrototyped, spFlags: 0)
!78 = !DISubroutineType(types: !79)
!79 = !{!80, !86, !86}
!80 = !DIDerivedType(tag: DW_TAG_typedef, name: “lldiv_t”, file: !18, line: 286, baseType: !81)
!81 = distinct !DICompositeType(tag: DW_TAG_structure_type, name: “_lldiv_t”, file: !18, line: 282, size: 128, flags: DIFlagTypePassByValue | DIFlagTrivial, elements: !82, identifier: “.?AU_lldiv_t@@”)
!82 = !{!83, !85}
!83 = !DIDerivedType(tag: DW_TAG_member, name: “quot”, scope: !81, file: !18, line: 284, baseType: !84, size: 64)
!84 = !DIBasicType(name: “long long int”, size: 64, encoding: DW_ATE_signed)
!85 = !DIDerivedType(tag: DW_TAG_member, name: “rem”, scope: !81, file: !18, line: 285, baseType: !84, size: 64, offset: 64)
!86 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !84)
!87 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !88, file: !15, line: 31)
!88 = !DISubprogram(name: “exit”, scope: !18, file: !18, line: 51, type: !89, flags: DIFlagPrototyped | DIFlagNoReturn, spFlags: 0)
!89 = !DISubroutineType(types: !90)
!90 = !{null, !40}
!91 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !92, file: !15, line: 31)
!92 = !DISubprogram(name: “free”, scope: !71, file: !71, line: 85, type: !93, flags: DIFlagPrototyped, spFlags: 0)
!93 = !DISubroutineType(types: !94)
!94 = !{null, !63}
!95 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !96, file: !15, line: 32)
!96 = !DISubprogram(name: “labs”, scope: !44, file: !44, line: 466, type: !97, flags: DIFlagPrototyped, spFlags: 0)
!97 = !DISubroutineType(types: !98)
!98 = !{!25, !25}
!99 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !100, file: !15, line: 32)
!100 = !DISubprogram(name: “ldiv”, scope: !18, file: !18, line: 298, type: !101, flags: DIFlagPrototyped, spFlags: 0)
!101 = !DISubroutineType(types: !102)
!102 = !{!21, !25, !25}
!103 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !104, file: !15, line: 32)
!104 = !DISubprogram(name: “malloc”, scope: !71, file: !71, line: 97, type: !105, flags: DIFlagPrototyped, spFlags: 0)
!105 = !DISubroutineType(types: !106)
!106 = !{!63, !74}
!107 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !108, file: !15, line: 33)
!108 = !DISubprogram(name: “mblen”, scope: !18, file: !18, line: 847, type: !109, flags: DIFlagPrototyped, spFlags: 0)
!109 = !DISubroutineType(types: !110)
!110 = !{!40, !48, !13}
!111 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !112, file: !15, line: 33)
!112 = !DISubprogram(name: “mbstowcs”, scope: !18, file: !18, line: 919, type: !113, flags: DIFlagPrototyped, spFlags: 0)
!113 = !DISubroutineType(types: !114)
!114 = !{!13, !115, !48, !13}
!115 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !116, size: 64)
!116 = !DIBasicType(name: “wchar_t”, size: 16, encoding: DW_ATE_unsigned)
!117 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !118, file: !15, line: 33)
!118 = !DISubprogram(name: “mbtowc”, scope: !18, file: !18, line: 888, type: !119, flags: DIFlagPrototyped, spFlags: 0)
!119 = !DISubroutineType(types: !120)
!120 = !{!40, !115, !48, !13}
!121 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !122, file: !15, line: 34)
!122 = !DISubprogram(name: “qsort”, scope: !60, file: !60, line: 53, type: !123, flags: DIFlagPrototyped, spFlags: 0)
!123 = !DISubroutineType(types: !124)
!124 = !{null, !63, !13, !13, !66}
!125 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !126, file: !15, line: 34)
!126 = !DISubprogram(name: “rand”, scope: !18, file: !18, line: 347, type: !127, flags: DIFlagPrototyped, spFlags: 0)
!127 = !DISubroutineType(types: !128)
!128 = !{!40}
!129 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !130, file: !15, line: 34)
!130 = !DISubprogram(name: “realloc”, scope: !71, file: !71, line: 122, type: !131, flags: DIFlagPrototyped, spFlags: 0)
!131 = !DISubroutineType(types: !132)
!132 = !{!63, !63, !74}
!133 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !134, file: !15, line: 35)
!134 = !DISubprogram(name: “srand”, scope: !18, file: !18, line: 345, type: !135, flags: DIFlagPrototyped, spFlags: 0)
!135 = !DISubroutineType(types: !136)
!136 = !{null, !137}
!137 = !DIBasicType(name: “unsigned int”, size: 32, encoding: DW_ATE_unsigned)
!138 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !139, file: !15, line: 35)
!139 = !DISubprogram(name: “strtod”, scope: !18, file: !18, line: 497, type: !140, flags: DIFlagPrototyped, spFlags: 0)
!140 = !DISubroutineType(types: !141)
!141 = !{!47, !48, !142}
!142 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !4, size: 64)
!143 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !144, file: !15, line: 35)
!144 = !DISubprogram(name: “strtol”, scope: !18, file: !18, line: 523, type: !145, flags: DIFlagPrototyped, spFlags: 0)
!145 = !DISubroutineType(types: !146)
!146 = !{!25, !48, !142, !40}
!147 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !148, file: !15, line: 36)
!148 = !DISubprogram(name: “strtoul”, scope: !18, file: !18, line: 553, type: !149, flags: DIFlagPrototyped, spFlags: 0)
!149 = !DISubroutineType(types: !150)
!150 = !{!151, !48, !142, !40}
!151 = !DIBasicType(name: “long unsigned int”, size: 32, encoding: DW_ATE_unsigned)
!152 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !153, file: !15, line: 37)
!153 = !DISubprogram(name: “wcstombs”, scope: !18, file: !18, line: 1007, type: !154, flags: DIFlagPrototyped, spFlags: 0)
!154 = !DISubroutineType(types: !155)
!155 = !{!13, !4, !156, !13}
!156 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !157, size: 64)
!157 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !116)
!158 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !159, file: !15, line: 37)
!159 = !DISubprogram(name: “wctomb”, scope: !18, file: !18, line: 958, type: !160, flags: DIFlagPrototyped, spFlags: 0)
!160 = !DISubroutineType(types: !161)
!161 = !{!40, !4, !116}
!162 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !80, file: !15, line: 39)
!163 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !164, file: !15, line: 42)
!164 = !DISubprogram(name: “getenv”, scope: !18, file: !18, line: 1188, type: !165, flags: DIFlagPrototyped, spFlags: 0)
!165 = !DISubroutineType(types: !166)
!166 = !{!4, !48}
!167 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !168, file: !15, line: 43)
!168 = !DISubprogram(name: “system”, scope: !18, file: !18, line: 1215, type: !52, flags: DIFlagPrototyped, spFlags: 0)
!169 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !170, file: !15, line: 46)
!170 = !DISubprogram(name: “atoll”, scope: !18, file: !18, line: 448, type: !171, flags: DIFlagPrototyped, spFlags: 0)
!171 = !DISubroutineType(types: !172)
!172 = !{!84, !48}
!173 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !174, file: !15, line: 46)
!174 = !DISubprogram(name: “llabs”, scope: !44, file: !44, line: 467, type: !175, flags: DIFlagPrototyped, spFlags: 0)
!175 = !DISubroutineType(types: !176)
!176 = !{!84, !84}
!177 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !178, file: !15, line: 46)
!178 = !DISubprogram(name: “lldiv”, scope: !18, file: !18, line: 299, type: !179, flags: DIFlagPrototyped, spFlags: 0)
!179 = !DISubroutineType(types: !180)
!180 = !{!80, !84, !84}
!181 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !182, file: !15, line: 47)
!182 = !DISubprogram(name: “strtof”, scope: !18, file: !18, line: 484, type: !183, flags: DIFlagPrototyped, spFlags: 0)
!183 = !DISubroutineType(types: !184)
!184 = !{!185, !48, !142}
!185 = !DIBasicType(name: “float”, size: 32, encoding: DW_ATE_float)
!186 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !187, file: !15, line: 47)
!187 = !DISubprogram(name: “strtold”, scope: !18, file: !18, line: 510, type: !188, flags: DIFlagPrototyped, spFlags: 0)
!188 = !DISubroutineType(types: !189)
!189 = !{!35, !48, !142}
!190 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !191, file: !15, line: 48)
!191 = !DISubprogram(name: “strtoll”, scope: !18, file: !18, line: 538, type: !192, flags: DIFlagPrototyped, spFlags: 0)
!192 = !DISubroutineType(types: !193)
!193 = !{!84, !48, !142, !40}
!194 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !195, file: !15, line: 48)
!195 = !DISubprogram(name: “strtoull”, scope: !18, file: !18, line: 568, type: !196, flags: DIFlagPrototyped, spFlags: 0)
!196 = !DISubroutineType(types: !197)
!197 = !{!14, !48, !142, !40}
!198 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !199, file: !15, line: 50)
!199 = !DISubprogram(name: “_Exit”, scope: !18, file: !18, line: 53, type: !89, flags: DIFlagPrototyped | DIFlagNoReturn, spFlags: 0)
!200 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !201, file: !15, line: 50)
!201 = !DISubprogram(name: “at_quick_exit”, scope: !18, file: !18, line: 143, type: !38, flags: DIFlagPrototyped, spFlags: 0)
!202 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !203, file: !15, line: 50)
!203 = !DISubprogram(name: “quick_exit”, scope: !18, file: !18, line: 54, type: !89, flags: DIFlagPrototyped | DIFlagNoReturn, spFlags: 0)
!204 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !205, file: !206, line: 24)
!205 = !DIDerivedType(tag: DW_TAG_typedef, name: “FILE”, file: !206, line: 20, baseType: !207)
!206 = !DIFile(filename: “C:\5CProgram Files (x86)\5CMicrosoft Visual Studio\5C2017\5CEnterprise\5CVC\5CTools\5CMSVC\5C14.10.25017\5Cinclude\5Ccstdio”, directory: “”)
!207 = !DIDerivedType(tag: DW_TAG_typedef, name: “FILE”, file: !208, line: 28, baseType: !209)
!208 = !DIFile(filename: “C:\5CProgram Files (x86)\5CWindows Kits\5C10\5CInclude\5C10.0.14393.0\5Cucrt\5Ccorecrt_wstdio.h”, directory: “”, checksumkind: CSK_MD5, checksum: “67e9dc9692b4aaecdafeab925d0e98a8”)
!209 = !DICompositeType(tag: DW_TAG_structure_type, name: “_iobuf”, file: !208, line: 25, flags: DIFlagFwdDecl, identifier: “.?AU_iobuf@@”)
!210 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !211, file: !206, line: 24)
!211 = !DIDerivedType(tag: DW_TAG_typedef, name: “_Mbstatet”, file: !212, line: 501, baseType: !213)
!212 = !DIFile(filename: “C:\5CProgram Files (x86)\5CWindows Kits\5C10\5CInclude\5C10.0.14393.0\5Cucrt\5Ccorecrt.h”, directory: “”, checksumkind: CSK_MD5, checksum: “4d6f1ab46fda1149cb7b236644915124”)
!213 = !DICompositeType(tag: DW_TAG_structure_type, name: “_Mbstatet”, file: !212, line: 497, flags: DIFlagFwdDecl, identifier: “.?AU_Mbstatet@@”)
!214 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !13, file: !206, line: 26)
!215 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !216, file: !206, line: 26)
!216 = !DIDerivedType(tag: DW_TAG_typedef, name: “fpos_t”, file: !217, line: 68, baseType: !84)
!217 = !DIFile(filename: “C:\5CProgram Files (x86)\5CWindows Kits\5C10\5CInclude\5C10.0.14393.0\5Cucrt\5Cstdio.h”, directory: “”, checksumkind: CSK_MD5, checksum: “38d94df65e42aaf7764829e79905cc0f”)
!218 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !205, file: !206, line: 26)
!219 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !220, file: !206, line: 27)
!220 = !DISubprogram(name: “clearerr”, scope: !217, file: !217, line: 140, type: !221, flags: DIFlagPrototyped, spFlags: 0)
!221 = !DISubroutineType(types: !222)
!222 = !{null, !223}
!223 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !207, size: 64)
!224 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !225, file: !206, line: 27)
!225 = !DISubprogram(name: “fclose”, scope: !217, file: !217, line: 146, type: !226, flags: DIFlagPrototyped, spFlags: 0)
!226 = !DISubroutineType(types: !227)
!227 = !{!40, !223}
!228 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !229, file: !206, line: 27)
!229 = !DISubprogram(name: “feof”, scope: !217, file: !217, line: 160, type: !226, flags: DIFlagPrototyped, spFlags: 0)
!230 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !231, file: !206, line: 28)
!231 = !DISubprogram(name: “ferror”, scope: !217, file: !217, line: 165, type: !226, flags: DIFlagPrototyped, spFlags: 0)
!232 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !233, file: !206, line: 28)
!233 = !DISubprogram(name: “fflush”, scope: !217, file: !217, line: 170, type: !226, flags: DIFlagPrototyped, spFlags: 0)
!234 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !235, file: !206, line: 28)
!235 = !DISubprogram(name: “fgetc”, scope: !217, file: !217, line: 176, type: !226, flags: DIFlagPrototyped, spFlags: 0)
!236 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !237, file: !206, line: 29)
!237 = !DISubprogram(name: “fgetpos”, scope: !217, file: !217, line: 185, type: !238, flags: DIFlagPrototyped, spFlags: 0)
!238 = !DISubroutineType(types: !239)
!239 = !{!40, !223, !240}
!240 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !216, size: 64)
!241 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !242, file: !206, line: 29)
!242 = !DISubprogram(name: “fgets”, scope: !217, file: !217, line: 192, type: !243, flags: DIFlagPrototyped, spFlags: 0)
!243 = !DISubroutineType(types: !244)
!244 = !{!4, !4, !40, !223}
!245 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !246, file: !206, line: 29)
!246 = !DISubprogram(name: “fopen”, scope: !217, file: !217, line: 207, type: !247, flags: DIFlagPrototyped, spFlags: 0)
!247 = !DISubroutineType(types: !248)
!248 = !{!223, !48, !48}
!249 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !250, file: !206, line: 30)
!250 = !DISubprogram(name: “fprintf”, scope: !217, file: !217, line: 823, type: !251, flags: DIFlagPrototyped, spFlags: 0)
!251 = !DISubroutineType(types: !252)
!252 = !{!40, !253, !254, null}
!253 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !223)
!254 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !48)
!255 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !256, file: !206, line: 30)
!256 = !DISubprogram(name: “fputc”, scope: !217, file: !217, line: 215, type: !257, flags: DIFlagPrototyped, spFlags: 0)
!257 = !DISubroutineType(types: !258)
!258 = !{!40, !40, !223}
!259 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !260, file: !206, line: 30)
!260 = !DISubprogram(name: “fputs”, scope: !217, file: !217, line: 227, type: !261, flags: DIFlagPrototyped, spFlags: 0)
!261 = !DISubroutineType(types: !262)
!262 = !{!40, !48, !223}
!263 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !264, file: !206, line: 31)
!264 = !DISubprogram(name: “fread”, scope: !217, file: !217, line: 233, type: !265, flags: DIFlagPrototyped, spFlags: 0)
!265 = !DISubroutineType(types: !266)
!266 = !{!13, !63, !13, !13, !223}
!267 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !268, file: !206, line: 31)
!268 = !DISubprogram(name: “freopen”, scope: !217, file: !217, line: 242, type: !269, flags: DIFlagPrototyped, spFlags: 0)
!269 = !DISubroutineType(types: !270)
!270 = !{!223, !48, !48, !223}
!271 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !272, file: !206, line: 31)
!272 = !DISubprogram(name: “fscanf”, scope: !217, file: !217, line: 1192, type: !251, flags: DIFlagPrototyped, spFlags: 0)
!273 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !274, file: !206, line: 32)
!274 = !DISubprogram(name: “fseek”, scope: !217, file: !217, line: 264, type: !275, flags: DIFlagPrototyped, spFlags: 0)
!275 = !DISubroutineType(types: !276)
!276 = !{!40, !223, !25, !40}
!277 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !278, file: !206, line: 32)
!278 = !DISubprogram(name: “fsetpos”, scope: !217, file: !217, line: 257, type: !279, flags: DIFlagPrototyped, spFlags: 0)
!279 = !DISubroutineType(types: !280)
!280 = !{!40, !223, !281}
!281 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !282, size: 64)
!282 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !216)
!283 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !284, file: !206, line: 32)
!284 = !DISubprogram(name: “ftell”, scope: !217, file: !217, line: 280, type: !285, flags: DIFlagPrototyped, spFlags: 0)
!285 = !DISubroutineType(types: !286)
!286 = !{!25, !223}
!287 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !288, file: !206, line: 33)
!288 = !DISubprogram(name: “fwrite”, scope: !217, file: !217, line: 291, type: !289, flags: DIFlagPrototyped, spFlags: 0)
!289 = !DISubroutineType(types: !290)
!290 = !{!13, !64, !13, !13, !223}
!291 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !292, file: !206, line: 33)
!292 = !DISubprogram(name: “getc”, scope: !217, file: !217, line: 300, type: !226, flags: DIFlagPrototyped, spFlags: 0)
!293 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !294, file: !206, line: 33)
!294 = !DISubprogram(name: “getchar”, scope: !217, file: !217, line: 305, type: !127, flags: DIFlagPrototyped, spFlags: 0)
!295 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !296, file: !206, line: 34)
!296 = !DISubprogram(name: “perror”, scope: !217, file: !217, line: 319, type: !297, flags: DIFlagPrototyped, spFlags: 0)
!297 = !DISubroutineType(types: !298)
!298 = !{null, !48}
!299 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !300, file: !206, line: 35)
!300 = !DISubprogram(name: “putc”, scope: !217, file: !217, line: 341, type: !257, flags: DIFlagPrototyped, spFlags: 0)
!301 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !302, file: !206, line: 35)
!302 = !DISubprogram(name: “putchar”, scope: !217, file: !217, line: 347, type: !303, flags: DIFlagPrototyped, spFlags: 0)
!303 = !DISubroutineType(types: !304)
!304 = !{!40, !40}
!305 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !306, file: !206, line: 36)
!306 = !DISubprogram(name: “printf”, scope: !217, file: !217, line: 943, type: !307, flags: DIFlagPrototyped, spFlags: 0)
!307 = !DISubroutineType(types: !308)
!308 = !{!40, !254, null}
!309 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !310, file: !206, line: 36)
!310 = !DISubprogram(name: “puts”, scope: !217, file: !217, line: 352, type: !52, flags: DIFlagPrototyped, spFlags: 0)
!311 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !312, file: !206, line: 36)
!312 = !DISubprogram(name: “remove”, scope: !217, file: !217, line: 363, type: !52, flags: DIFlagPrototyped, spFlags: 0)
!313 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !314, file: !206, line: 37)
!314 = !DISubprogram(name: “rename”, scope: !217, file: !217, line: 368, type: !315, flags: DIFlagPrototyped, spFlags: 0)
!315 = !DISubroutineType(types: !316)
!316 = !{!40, !48, !48}
!317 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !318, file: !206, line: 37)
!318 = !DISubprogram(name: “rewind”, scope: !217, file: !217, line: 386, type: !221, flags: DIFlagPrototyped, spFlags: 0)
!319 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !320, file: !206, line: 37)
!320 = !DISubprogram(name: “scanf”, scope: !217, file: !217, line: 1269, type: !307, flags: DIFlagPrototyped, spFlags: 0)
!321 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !322, file: !206, line: 38)
!322 = !DISubprogram(name: “setbuf”, scope: !217, file: !217, line: 394, type: !323, flags: DIFlagPrototyped, spFlags: 0)
!323 = !DISubroutineType(types: !324)
!324 = !{null, !223, !4}
!325 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !326, file: !206, line: 38)
!326 = !DISubprogram(name: “setvbuf”, scope: !217, file: !217, line: 406, type: !327, flags: DIFlagPrototyped, spFlags: 0)
!327 = !DISubroutineType(types: !328)
!328 = !{!40, !223, !4, !40, !13}
!329 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !330, file: !206, line: 38)
!330 = !DISubprogram(name: “sprintf”, scope: !217, file: !217, line: 1793, type: !331, flags: DIFlagPrototyped, spFlags: 0)
!331 = !DISubroutineType(types: !332)
!332 = !{!40, !4, !48, null}
!333 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !334, file: !206, line: 39)
!334 = !DISubprogram(name: “sscanf”, scope: !217, file: !217, line: 2254, type: !335, flags: DIFlagPrototyped, spFlags: 0)
!335 = !DISubroutineType(types: !336)
!336 = !{!40, !254, !254, null}
!337 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !338, file: !206, line: 39)
!338 = !DISubprogram(name: “tmpfile”, scope: !217, file: !217, line: 429, type: !339, flags: DIFlagPrototyped, spFlags: 0)
!339 = !DISubroutineType(types: !340)
!340 = !{!223}
!341 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !342, file: !206, line: 39)
!342 = !DISubprogram(name: “tmpnam”, scope: !217, file: !217, line: 437, type: !343, flags: DIFlagPrototyped, spFlags: 0)
!343 = !DISubroutineType(types: !344)
!344 = !{!4, !4}
!345 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !346, file: !206, line: 40)
!346 = !DISubprogram(name: “ungetc”, scope: !217, file: !217, line: 445, type: !257, flags: DIFlagPrototyped, spFlags: 0)
!347 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !348, file: !206, line: 40)
!348 = !DISubprogram(name: “vfprintf”, scope: !217, file: !217, line: 643, type: !349, flags: DIFlagPrototyped, spFlags: 0)
!349 = !DISubroutineType(types: !350)
!350 = !{!40, !253, !254, !351}
!351 = !DIDerivedType(tag: DW_TAG_typedef, name: “va_list”, file: !352, line: 39, baseType: !4)
!352 = !DIFile(filename: “C:\5CProgram Files (x86)\5CMicrosoft Visual Studio\5C2017\5CEnterprise\5CVC\5CTools\5CMSVC\5C14.10.25017\5Cinclude\5Cvadefs.h”, directory: “”, checksumkind: CSK_MD5, checksum: “303c50a7bc924cd426baa20c7f16192c”)
!353 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !354, file: !206, line: 40)
!354 = !DISubprogram(name: “vprintf”, scope: !217, file: !217, line: 733, type: !355, flags: DIFlagPrototyped, spFlags: 0)
!355 = !DISubroutineType(types: !356)
!356 = !{!40, !254, !351}
!357 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !358, file: !206, line: 41)
!358 = !DISubprogram(name: “vsprintf”, scope: !217, file: !217, line: 1793, type: !359, flags: DIFlagPrototyped, spFlags: 0)
!359 = !DISubroutineType(types: !360)
!360 = !{!40, !4, !48, !351}
!361 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !362, file: !206, line: 43)
!362 = !DISubprogram(name: “snprintf”, scope: !217, file: !217, line: 1932, type: !363, flags: DIFlagPrototyped, spFlags: 0)
!363 = !DISubroutineType(types: !364)
!364 = !{!40, !365, !366, !254, null}
!365 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !4)
!366 = !DIDerivedType(tag: DW_TAG_const_type, baseType: !13)
!367 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !368, file: !206, line: 43)
!368 = !DISubprogram(name: “vsnprintf”, scope: !217, file: !217, line: 1425, type: !369, flags: DIFlagPrototyped, spFlags: 0)
!369 = !DISubroutineType(types: !370)
!370 = !{!40, !365, !366, !254, !351}
!371 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !372, file: !206, line: 44)
!372 = !DISubprogram(name: “vfscanf”, scope: !217, file: !217, line: 1065, type: !349, flags: DIFlagPrototyped, spFlags: 0)
!373 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !374, file: !206, line: 44)
!374 = !DISubprogram(name: “vscanf”, scope: !217, file: !217, line: 1129, type: !355, flags: DIFlagPrototyped, spFlags: 0)
!375 = !DIImportedEntity(tag: DW_TAG_imported_declaration, scope: !10, entity: !376, file: !206, line: 44)
!376 = !DISubprogram(name: “vsscanf”, scope: !217, file: !217, line: 2174, type: !377, flags: DIFlagPrototyped, spFlags: 0)
!377 = !DISubroutineType(types: !378)
!378 = !{!40, !254, !254, !351}
!379 = !{!"/FAILIFMISMATCH:\22_MSC_VER=1900\22"}
!380 = !{!"/FAILIFMISMATCH:\22_ITERATOR_DEBUG_LEVEL=0\22"}
!381 = !{!"/FAILIFMISMATCH:\22RuntimeLibrary=MT_StaticRelease\22"}
!382 = !{!"/DEFAULTLIB:libcpmt.lib"}
!383 = !{!"/FAILIFMISMATCH:\22_CRT_STDIO_ISO_WIDE_SPECIFIERS=0\22"}
!384 = !{i32 2, !“CodeView”, i32 1}
!385 = !{i32 2, !“Debug Info Version”, i32 3}
!386 = !{i32 1, !“wchar_size”, i32 2}
!387 = !{i32 7, !“PIC Level”, i32 2}
!388 = !{!“clang version 8.0.0 (tags/RELEASE_800/final)”}
!389 = distinct !DISubprogram(name: “test”, linkageName: “?test@@YAXXZ”, scope: !1, file: !1, line: 3, type: !29, scopeLine: 3, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !2)
!390 = !DILocalVariable(name: “p”, scope: !389, file: !1, line: 4, type: !4)
!391 = !DILocation(line: 4, scope: !389)
!392 = !DILocation(line: 5, scope: !389)
!393 = !DILocation(line: 6, scope: !389)
!394 = !DILocation(line: 7, scope: !389)
!395 = !DILocation(line: 8, scope: !389)
!396 = !DILocation(line: 9, scope: !389)
!397 = distinct !DISubprogram(name: “main”, scope: !1, file: !1, line: 10, type: !127, scopeLine: 10, flags: DIFlagPrototyped, spFlags: DISPFlagDefinition, unit: !0, retainedNodes: !2)
!398 = !DILocation(line: 11, scope: !397)
!399 = !DILocation(line: 12, scope: !397)