emrekultursay updated this revision to Diff 253254.
emrekultursay added a comment.
Added test that verifies end-to-end impact of
"setting set use_source_cache false" on Windows.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D76806/new/
https://reviews.llvm.org/D76806
Files:
lldb/include/lldb/Core/SourceManager.h
lldb/source/Core/SourceManager.cpp
lldb/test/API/commands/settings/use_source_cache/Makefile
lldb/test/API/commands/settings/use_source_cache/TestUseSourceCache.py
lldb/test/API/commands/settings/use_source_cache/header.h
lldb/test/API/commands/settings/use_source_cache/main.cpp
Index: lldb/test/API/commands/settings/use_source_cache/main.cpp
===================================================================
--- /dev/null
+++ lldb/test/API/commands/settings/use_source_cache/main.cpp
@@ -0,0 +1,17 @@
+#include <stdio.h>
+#include <windows.h>
+
+#include "header.h"
+
+int
+main(int argc, char const *argv[])
+{
+ //for (int j=0;;j++) {
+ //Sleep(1000);
+ int j = 0;
+ fprintf(stderr, "Hello, world (%d) => %d\n", j, calc(j, j+1, j+2));
+ //}
+
+ return 0;
+}
+
Index: lldb/test/API/commands/settings/use_source_cache/header.h
===================================================================
--- /dev/null
+++ lldb/test/API/commands/settings/use_source_cache/header.h
@@ -0,0 +1,1006 @@
+// This file should be large enough that LLDB decides to load it using memory mapping.
+// See: llvm/lib/Support/MemoryBuffer.cp:shouldUseMmap()
+
+// The name of this function is used in tests to set breakpoints by name.
+int calc(int x0, int x1, int x2) {
+ int x3 = x2 * x1 + x0;
+ int x4 = x3 * x2 + x1;
+ int x5 = x4 * x3 + x2;
+ int x6 = x5 * x4 + x3;
+ int x7 = x6 * x5 + x4;
+ int x8 = x7 * x6 + x5;
+ int x9 = x8 * x7 + x6;
+ int x10 = x9 * x8 + x7;
+ int x11 = x10 * x9 + x8;
+ int x12 = x11 * x10 + x9;
+ int x13 = x12 * x11 + x10;
+ int x14 = x13 * x12 + x11;
+ int x15 = x14 * x13 + x12;
+ int x16 = x15 * x14 + x13;
+ int x17 = x16 * x15 + x14;
+ int x18 = x17 * x16 + x15;
+ int x19 = x18 * x17 + x16;
+ int x20 = x19 * x18 + x17;
+ int x21 = x20 * x19 + x18;
+ int x22 = x21 * x20 + x19;
+ int x23 = x22 * x21 + x20;
+ int x24 = x23 * x22 + x21;
+ int x25 = x24 * x23 + x22;
+ int x26 = x25 * x24 + x23;
+ int x27 = x26 * x25 + x24;
+ int x28 = x27 * x26 + x25;
+ int x29 = x28 * x27 + x26;
+ int x30 = x29 * x28 + x27;
+ int x31 = x30 * x29 + x28;
+ int x32 = x31 * x30 + x29;
+ int x33 = x32 * x31 + x30;
+ int x34 = x33 * x32 + x31;
+ int x35 = x34 * x33 + x32;
+ int x36 = x35 * x34 + x33;
+ int x37 = x36 * x35 + x34;
+ int x38 = x37 * x36 + x35;
+ int x39 = x38 * x37 + x36;
+ int x40 = x39 * x38 + x37;
+ int x41 = x40 * x39 + x38;
+ int x42 = x41 * x40 + x39;
+ int x43 = x42 * x41 + x40;
+ int x44 = x43 * x42 + x41;
+ int x45 = x44 * x43 + x42;
+ int x46 = x45 * x44 + x43;
+ int x47 = x46 * x45 + x44;
+ int x48 = x47 * x46 + x45;
+ int x49 = x48 * x47 + x46;
+ int x50 = x49 * x48 + x47;
+ int x51 = x50 * x49 + x48;
+ int x52 = x51 * x50 + x49;
+ int x53 = x52 * x51 + x50;
+ int x54 = x53 * x52 + x51;
+ int x55 = x54 * x53 + x52;
+ int x56 = x55 * x54 + x53;
+ int x57 = x56 * x55 + x54;
+ int x58 = x57 * x56 + x55;
+ int x59 = x58 * x57 + x56;
+ int x60 = x59 * x58 + x57;
+ int x61 = x60 * x59 + x58;
+ int x62 = x61 * x60 + x59;
+ int x63 = x62 * x61 + x60;
+ int x64 = x63 * x62 + x61;
+ int x65 = x64 * x63 + x62;
+ int x66 = x65 * x64 + x63;
+ int x67 = x66 * x65 + x64;
+ int x68 = x67 * x66 + x65;
+ int x69 = x68 * x67 + x66;
+ int x70 = x69 * x68 + x67;
+ int x71 = x70 * x69 + x68;
+ int x72 = x71 * x70 + x69;
+ int x73 = x72 * x71 + x70;
+ int x74 = x73 * x72 + x71;
+ int x75 = x74 * x73 + x72;
+ int x76 = x75 * x74 + x73;
+ int x77 = x76 * x75 + x74;
+ int x78 = x77 * x76 + x75;
+ int x79 = x78 * x77 + x76;
+ int x80 = x79 * x78 + x77;
+ int x81 = x80 * x79 + x78;
+ int x82 = x81 * x80 + x79;
+ int x83 = x82 * x81 + x80;
+ int x84 = x83 * x82 + x81;
+ int x85 = x84 * x83 + x82;
+ int x86 = x85 * x84 + x83;
+ int x87 = x86 * x85 + x84;
+ int x88 = x87 * x86 + x85;
+ int x89 = x88 * x87 + x86;
+ int x90 = x89 * x88 + x87;
+ int x91 = x90 * x89 + x88;
+ int x92 = x91 * x90 + x89;
+ int x93 = x92 * x91 + x90;
+ int x94 = x93 * x92 + x91;
+ int x95 = x94 * x93 + x92;
+ int x96 = x95 * x94 + x93;
+ int x97 = x96 * x95 + x94;
+ int x98 = x97 * x96 + x95;
+ int x99 = x98 * x97 + x96;
+ int x100 = x99 * x98 + x97;
+ int x101 = x100 * x99 + x98;
+ int x102 = x101 * x100 + x99;
+ int x103 = x102 * x101 + x100;
+ int x104 = x103 * x102 + x101;
+ int x105 = x104 * x103 + x102;
+ int x106 = x105 * x104 + x103;
+ int x107 = x106 * x105 + x104;
+ int x108 = x107 * x106 + x105;
+ int x109 = x108 * x107 + x106;
+ int x110 = x109 * x108 + x107;
+ int x111 = x110 * x109 + x108;
+ int x112 = x111 * x110 + x109;
+ int x113 = x112 * x111 + x110;
+ int x114 = x113 * x112 + x111;
+ int x115 = x114 * x113 + x112;
+ int x116 = x115 * x114 + x113;
+ int x117 = x116 * x115 + x114;
+ int x118 = x117 * x116 + x115;
+ int x119 = x118 * x117 + x116;
+ int x120 = x119 * x118 + x117;
+ int x121 = x120 * x119 + x118;
+ int x122 = x121 * x120 + x119;
+ int x123 = x122 * x121 + x120;
+ int x124 = x123 * x122 + x121;
+ int x125 = x124 * x123 + x122;
+ int x126 = x125 * x124 + x123;
+ int x127 = x126 * x125 + x124;
+ int x128 = x127 * x126 + x125;
+ int x129 = x128 * x127 + x126;
+ int x130 = x129 * x128 + x127;
+ int x131 = x130 * x129 + x128;
+ int x132 = x131 * x130 + x129;
+ int x133 = x132 * x131 + x130;
+ int x134 = x133 * x132 + x131;
+ int x135 = x134 * x133 + x132;
+ int x136 = x135 * x134 + x133;
+ int x137 = x136 * x135 + x134;
+ int x138 = x137 * x136 + x135;
+ int x139 = x138 * x137 + x136;
+ int x140 = x139 * x138 + x137;
+ int x141 = x140 * x139 + x138;
+ int x142 = x141 * x140 + x139;
+ int x143 = x142 * x141 + x140;
+ int x144 = x143 * x142 + x141;
+ int x145 = x144 * x143 + x142;
+ int x146 = x145 * x144 + x143;
+ int x147 = x146 * x145 + x144;
+ int x148 = x147 * x146 + x145;
+ int x149 = x148 * x147 + x146;
+ int x150 = x149 * x148 + x147;
+ int x151 = x150 * x149 + x148;
+ int x152 = x151 * x150 + x149;
+ int x153 = x152 * x151 + x150;
+ int x154 = x153 * x152 + x151;
+ int x155 = x154 * x153 + x152;
+ int x156 = x155 * x154 + x153;
+ int x157 = x156 * x155 + x154;
+ int x158 = x157 * x156 + x155;
+ int x159 = x158 * x157 + x156;
+ int x160 = x159 * x158 + x157;
+ int x161 = x160 * x159 + x158;
+ int x162 = x161 * x160 + x159;
+ int x163 = x162 * x161 + x160;
+ int x164 = x163 * x162 + x161;
+ int x165 = x164 * x163 + x162;
+ int x166 = x165 * x164 + x163;
+ int x167 = x166 * x165 + x164;
+ int x168 = x167 * x166 + x165;
+ int x169 = x168 * x167 + x166;
+ int x170 = x169 * x168 + x167;
+ int x171 = x170 * x169 + x168;
+ int x172 = x171 * x170 + x169;
+ int x173 = x172 * x171 + x170;
+ int x174 = x173 * x172 + x171;
+ int x175 = x174 * x173 + x172;
+ int x176 = x175 * x174 + x173;
+ int x177 = x176 * x175 + x174;
+ int x178 = x177 * x176 + x175;
+ int x179 = x178 * x177 + x176;
+ int x180 = x179 * x178 + x177;
+ int x181 = x180 * x179 + x178;
+ int x182 = x181 * x180 + x179;
+ int x183 = x182 * x181 + x180;
+ int x184 = x183 * x182 + x181;
+ int x185 = x184 * x183 + x182;
+ int x186 = x185 * x184 + x183;
+ int x187 = x186 * x185 + x184;
+ int x188 = x187 * x186 + x185;
+ int x189 = x188 * x187 + x186;
+ int x190 = x189 * x188 + x187;
+ int x191 = x190 * x189 + x188;
+ int x192 = x191 * x190 + x189;
+ int x193 = x192 * x191 + x190;
+ int x194 = x193 * x192 + x191;
+ int x195 = x194 * x193 + x192;
+ int x196 = x195 * x194 + x193;
+ int x197 = x196 * x195 + x194;
+ int x198 = x197 * x196 + x195;
+ int x199 = x198 * x197 + x196;
+ int x200 = x199 * x198 + x197;
+ int x201 = x200 * x199 + x198;
+ int x202 = x201 * x200 + x199;
+ int x203 = x202 * x201 + x200;
+ int x204 = x203 * x202 + x201;
+ int x205 = x204 * x203 + x202;
+ int x206 = x205 * x204 + x203;
+ int x207 = x206 * x205 + x204;
+ int x208 = x207 * x206 + x205;
+ int x209 = x208 * x207 + x206;
+ int x210 = x209 * x208 + x207;
+ int x211 = x210 * x209 + x208;
+ int x212 = x211 * x210 + x209;
+ int x213 = x212 * x211 + x210;
+ int x214 = x213 * x212 + x211;
+ int x215 = x214 * x213 + x212;
+ int x216 = x215 * x214 + x213;
+ int x217 = x216 * x215 + x214;
+ int x218 = x217 * x216 + x215;
+ int x219 = x218 * x217 + x216;
+ int x220 = x219 * x218 + x217;
+ int x221 = x220 * x219 + x218;
+ int x222 = x221 * x220 + x219;
+ int x223 = x222 * x221 + x220;
+ int x224 = x223 * x222 + x221;
+ int x225 = x224 * x223 + x222;
+ int x226 = x225 * x224 + x223;
+ int x227 = x226 * x225 + x224;
+ int x228 = x227 * x226 + x225;
+ int x229 = x228 * x227 + x226;
+ int x230 = x229 * x228 + x227;
+ int x231 = x230 * x229 + x228;
+ int x232 = x231 * x230 + x229;
+ int x233 = x232 * x231 + x230;
+ int x234 = x233 * x232 + x231;
+ int x235 = x234 * x233 + x232;
+ int x236 = x235 * x234 + x233;
+ int x237 = x236 * x235 + x234;
+ int x238 = x237 * x236 + x235;
+ int x239 = x238 * x237 + x236;
+ int x240 = x239 * x238 + x237;
+ int x241 = x240 * x239 + x238;
+ int x242 = x241 * x240 + x239;
+ int x243 = x242 * x241 + x240;
+ int x244 = x243 * x242 + x241;
+ int x245 = x244 * x243 + x242;
+ int x246 = x245 * x244 + x243;
+ int x247 = x246 * x245 + x244;
+ int x248 = x247 * x246 + x245;
+ int x249 = x248 * x247 + x246;
+ int x250 = x249 * x248 + x247;
+ int x251 = x250 * x249 + x248;
+ int x252 = x251 * x250 + x249;
+ int x253 = x252 * x251 + x250;
+ int x254 = x253 * x252 + x251;
+ int x255 = x254 * x253 + x252;
+ int x256 = x255 * x254 + x253;
+ int x257 = x256 * x255 + x254;
+ int x258 = x257 * x256 + x255;
+ int x259 = x258 * x257 + x256;
+ int x260 = x259 * x258 + x257;
+ int x261 = x260 * x259 + x258;
+ int x262 = x261 * x260 + x259;
+ int x263 = x262 * x261 + x260;
+ int x264 = x263 * x262 + x261;
+ int x265 = x264 * x263 + x262;
+ int x266 = x265 * x264 + x263;
+ int x267 = x266 * x265 + x264;
+ int x268 = x267 * x266 + x265;
+ int x269 = x268 * x267 + x266;
+ int x270 = x269 * x268 + x267;
+ int x271 = x270 * x269 + x268;
+ int x272 = x271 * x270 + x269;
+ int x273 = x272 * x271 + x270;
+ int x274 = x273 * x272 + x271;
+ int x275 = x274 * x273 + x272;
+ int x276 = x275 * x274 + x273;
+ int x277 = x276 * x275 + x274;
+ int x278 = x277 * x276 + x275;
+ int x279 = x278 * x277 + x276;
+ int x280 = x279 * x278 + x277;
+ int x281 = x280 * x279 + x278;
+ int x282 = x281 * x280 + x279;
+ int x283 = x282 * x281 + x280;
+ int x284 = x283 * x282 + x281;
+ int x285 = x284 * x283 + x282;
+ int x286 = x285 * x284 + x283;
+ int x287 = x286 * x285 + x284;
+ int x288 = x287 * x286 + x285;
+ int x289 = x288 * x287 + x286;
+ int x290 = x289 * x288 + x287;
+ int x291 = x290 * x289 + x288;
+ int x292 = x291 * x290 + x289;
+ int x293 = x292 * x291 + x290;
+ int x294 = x293 * x292 + x291;
+ int x295 = x294 * x293 + x292;
+ int x296 = x295 * x294 + x293;
+ int x297 = x296 * x295 + x294;
+ int x298 = x297 * x296 + x295;
+ int x299 = x298 * x297 + x296;
+ int x300 = x299 * x298 + x297;
+ int x301 = x300 * x299 + x298;
+ int x302 = x301 * x300 + x299;
+ int x303 = x302 * x301 + x300;
+ int x304 = x303 * x302 + x301;
+ int x305 = x304 * x303 + x302;
+ int x306 = x305 * x304 + x303;
+ int x307 = x306 * x305 + x304;
+ int x308 = x307 * x306 + x305;
+ int x309 = x308 * x307 + x306;
+ int x310 = x309 * x308 + x307;
+ int x311 = x310 * x309 + x308;
+ int x312 = x311 * x310 + x309;
+ int x313 = x312 * x311 + x310;
+ int x314 = x313 * x312 + x311;
+ int x315 = x314 * x313 + x312;
+ int x316 = x315 * x314 + x313;
+ int x317 = x316 * x315 + x314;
+ int x318 = x317 * x316 + x315;
+ int x319 = x318 * x317 + x316;
+ int x320 = x319 * x318 + x317;
+ int x321 = x320 * x319 + x318;
+ int x322 = x321 * x320 + x319;
+ int x323 = x322 * x321 + x320;
+ int x324 = x323 * x322 + x321;
+ int x325 = x324 * x323 + x322;
+ int x326 = x325 * x324 + x323;
+ int x327 = x326 * x325 + x324;
+ int x328 = x327 * x326 + x325;
+ int x329 = x328 * x327 + x326;
+ int x330 = x329 * x328 + x327;
+ int x331 = x330 * x329 + x328;
+ int x332 = x331 * x330 + x329;
+ int x333 = x332 * x331 + x330;
+ int x334 = x333 * x332 + x331;
+ int x335 = x334 * x333 + x332;
+ int x336 = x335 * x334 + x333;
+ int x337 = x336 * x335 + x334;
+ int x338 = x337 * x336 + x335;
+ int x339 = x338 * x337 + x336;
+ int x340 = x339 * x338 + x337;
+ int x341 = x340 * x339 + x338;
+ int x342 = x341 * x340 + x339;
+ int x343 = x342 * x341 + x340;
+ int x344 = x343 * x342 + x341;
+ int x345 = x344 * x343 + x342;
+ int x346 = x345 * x344 + x343;
+ int x347 = x346 * x345 + x344;
+ int x348 = x347 * x346 + x345;
+ int x349 = x348 * x347 + x346;
+ int x350 = x349 * x348 + x347;
+ int x351 = x350 * x349 + x348;
+ int x352 = x351 * x350 + x349;
+ int x353 = x352 * x351 + x350;
+ int x354 = x353 * x352 + x351;
+ int x355 = x354 * x353 + x352;
+ int x356 = x355 * x354 + x353;
+ int x357 = x356 * x355 + x354;
+ int x358 = x357 * x356 + x355;
+ int x359 = x358 * x357 + x356;
+ int x360 = x359 * x358 + x357;
+ int x361 = x360 * x359 + x358;
+ int x362 = x361 * x360 + x359;
+ int x363 = x362 * x361 + x360;
+ int x364 = x363 * x362 + x361;
+ int x365 = x364 * x363 + x362;
+ int x366 = x365 * x364 + x363;
+ int x367 = x366 * x365 + x364;
+ int x368 = x367 * x366 + x365;
+ int x369 = x368 * x367 + x366;
+ int x370 = x369 * x368 + x367;
+ int x371 = x370 * x369 + x368;
+ int x372 = x371 * x370 + x369;
+ int x373 = x372 * x371 + x370;
+ int x374 = x373 * x372 + x371;
+ int x375 = x374 * x373 + x372;
+ int x376 = x375 * x374 + x373;
+ int x377 = x376 * x375 + x374;
+ int x378 = x377 * x376 + x375;
+ int x379 = x378 * x377 + x376;
+ int x380 = x379 * x378 + x377;
+ int x381 = x380 * x379 + x378;
+ int x382 = x381 * x380 + x379;
+ int x383 = x382 * x381 + x380;
+ int x384 = x383 * x382 + x381;
+ int x385 = x384 * x383 + x382;
+ int x386 = x385 * x384 + x383;
+ int x387 = x386 * x385 + x384;
+ int x388 = x387 * x386 + x385;
+ int x389 = x388 * x387 + x386;
+ int x390 = x389 * x388 + x387;
+ int x391 = x390 * x389 + x388;
+ int x392 = x391 * x390 + x389;
+ int x393 = x392 * x391 + x390;
+ int x394 = x393 * x392 + x391;
+ int x395 = x394 * x393 + x392;
+ int x396 = x395 * x394 + x393;
+ int x397 = x396 * x395 + x394;
+ int x398 = x397 * x396 + x395;
+ int x399 = x398 * x397 + x396;
+ int x400 = x399 * x398 + x397;
+ int x401 = x400 * x399 + x398;
+ int x402 = x401 * x400 + x399;
+ int x403 = x402 * x401 + x400;
+ int x404 = x403 * x402 + x401;
+ int x405 = x404 * x403 + x402;
+ int x406 = x405 * x404 + x403;
+ int x407 = x406 * x405 + x404;
+ int x408 = x407 * x406 + x405;
+ int x409 = x408 * x407 + x406;
+ int x410 = x409 * x408 + x407;
+ int x411 = x410 * x409 + x408;
+ int x412 = x411 * x410 + x409;
+ int x413 = x412 * x411 + x410;
+ int x414 = x413 * x412 + x411;
+ int x415 = x414 * x413 + x412;
+ int x416 = x415 * x414 + x413;
+ int x417 = x416 * x415 + x414;
+ int x418 = x417 * x416 + x415;
+ int x419 = x418 * x417 + x416;
+ int x420 = x419 * x418 + x417;
+ int x421 = x420 * x419 + x418;
+ int x422 = x421 * x420 + x419;
+ int x423 = x422 * x421 + x420;
+ int x424 = x423 * x422 + x421;
+ int x425 = x424 * x423 + x422;
+ int x426 = x425 * x424 + x423;
+ int x427 = x426 * x425 + x424;
+ int x428 = x427 * x426 + x425;
+ int x429 = x428 * x427 + x426;
+ int x430 = x429 * x428 + x427;
+ int x431 = x430 * x429 + x428;
+ int x432 = x431 * x430 + x429;
+ int x433 = x432 * x431 + x430;
+ int x434 = x433 * x432 + x431;
+ int x435 = x434 * x433 + x432;
+ int x436 = x435 * x434 + x433;
+ int x437 = x436 * x435 + x434;
+ int x438 = x437 * x436 + x435;
+ int x439 = x438 * x437 + x436;
+ int x440 = x439 * x438 + x437;
+ int x441 = x440 * x439 + x438;
+ int x442 = x441 * x440 + x439;
+ int x443 = x442 * x441 + x440;
+ int x444 = x443 * x442 + x441;
+ int x445 = x444 * x443 + x442;
+ int x446 = x445 * x444 + x443;
+ int x447 = x446 * x445 + x444;
+ int x448 = x447 * x446 + x445;
+ int x449 = x448 * x447 + x446;
+ int x450 = x449 * x448 + x447;
+ int x451 = x450 * x449 + x448;
+ int x452 = x451 * x450 + x449;
+ int x453 = x452 * x451 + x450;
+ int x454 = x453 * x452 + x451;
+ int x455 = x454 * x453 + x452;
+ int x456 = x455 * x454 + x453;
+ int x457 = x456 * x455 + x454;
+ int x458 = x457 * x456 + x455;
+ int x459 = x458 * x457 + x456;
+ int x460 = x459 * x458 + x457;
+ int x461 = x460 * x459 + x458;
+ int x462 = x461 * x460 + x459;
+ int x463 = x462 * x461 + x460;
+ int x464 = x463 * x462 + x461;
+ int x465 = x464 * x463 + x462;
+ int x466 = x465 * x464 + x463;
+ int x467 = x466 * x465 + x464;
+ int x468 = x467 * x466 + x465;
+ int x469 = x468 * x467 + x466;
+ int x470 = x469 * x468 + x467;
+ int x471 = x470 * x469 + x468;
+ int x472 = x471 * x470 + x469;
+ int x473 = x472 * x471 + x470;
+ int x474 = x473 * x472 + x471;
+ int x475 = x474 * x473 + x472;
+ int x476 = x475 * x474 + x473;
+ int x477 = x476 * x475 + x474;
+ int x478 = x477 * x476 + x475;
+ int x479 = x478 * x477 + x476;
+ int x480 = x479 * x478 + x477;
+ int x481 = x480 * x479 + x478;
+ int x482 = x481 * x480 + x479;
+ int x483 = x482 * x481 + x480;
+ int x484 = x483 * x482 + x481;
+ int x485 = x484 * x483 + x482;
+ int x486 = x485 * x484 + x483;
+ int x487 = x486 * x485 + x484;
+ int x488 = x487 * x486 + x485;
+ int x489 = x488 * x487 + x486;
+ int x490 = x489 * x488 + x487;
+ int x491 = x490 * x489 + x488;
+ int x492 = x491 * x490 + x489;
+ int x493 = x492 * x491 + x490;
+ int x494 = x493 * x492 + x491;
+ int x495 = x494 * x493 + x492;
+ int x496 = x495 * x494 + x493;
+ int x497 = x496 * x495 + x494;
+ int x498 = x497 * x496 + x495;
+ int x499 = x498 * x497 + x496;
+ int x500 = x499 * x498 + x497;
+ int x501 = x500 * x499 + x498;
+ int x502 = x501 * x500 + x499;
+ int x503 = x502 * x501 + x500;
+ int x504 = x503 * x502 + x501;
+ int x505 = x504 * x503 + x502;
+ int x506 = x505 * x504 + x503;
+ int x507 = x506 * x505 + x504;
+ int x508 = x507 * x506 + x505;
+ int x509 = x508 * x507 + x506;
+ int x510 = x509 * x508 + x507;
+ int x511 = x510 * x509 + x508;
+ int x512 = x511 * x510 + x509;
+ int x513 = x512 * x511 + x510;
+ int x514 = x513 * x512 + x511;
+ int x515 = x514 * x513 + x512;
+ int x516 = x515 * x514 + x513;
+ int x517 = x516 * x515 + x514;
+ int x518 = x517 * x516 + x515;
+ int x519 = x518 * x517 + x516;
+ int x520 = x519 * x518 + x517;
+ int x521 = x520 * x519 + x518;
+ int x522 = x521 * x520 + x519;
+ int x523 = x522 * x521 + x520;
+ int x524 = x523 * x522 + x521;
+ int x525 = x524 * x523 + x522;
+ int x526 = x525 * x524 + x523;
+ int x527 = x526 * x525 + x524;
+ int x528 = x527 * x526 + x525;
+ int x529 = x528 * x527 + x526;
+ int x530 = x529 * x528 + x527;
+ int x531 = x530 * x529 + x528;
+ int x532 = x531 * x530 + x529;
+ int x533 = x532 * x531 + x530;
+ int x534 = x533 * x532 + x531;
+ int x535 = x534 * x533 + x532;
+ int x536 = x535 * x534 + x533;
+ int x537 = x536 * x535 + x534;
+ int x538 = x537 * x536 + x535;
+ int x539 = x538 * x537 + x536;
+ int x540 = x539 * x538 + x537;
+ int x541 = x540 * x539 + x538;
+ int x542 = x541 * x540 + x539;
+ int x543 = x542 * x541 + x540;
+ int x544 = x543 * x542 + x541;
+ int x545 = x544 * x543 + x542;
+ int x546 = x545 * x544 + x543;
+ int x547 = x546 * x545 + x544;
+ int x548 = x547 * x546 + x545;
+ int x549 = x548 * x547 + x546;
+ int x550 = x549 * x548 + x547;
+ int x551 = x550 * x549 + x548;
+ int x552 = x551 * x550 + x549;
+ int x553 = x552 * x551 + x550;
+ int x554 = x553 * x552 + x551;
+ int x555 = x554 * x553 + x552;
+ int x556 = x555 * x554 + x553;
+ int x557 = x556 * x555 + x554;
+ int x558 = x557 * x556 + x555;
+ int x559 = x558 * x557 + x556;
+ int x560 = x559 * x558 + x557;
+ int x561 = x560 * x559 + x558;
+ int x562 = x561 * x560 + x559;
+ int x563 = x562 * x561 + x560;
+ int x564 = x563 * x562 + x561;
+ int x565 = x564 * x563 + x562;
+ int x566 = x565 * x564 + x563;
+ int x567 = x566 * x565 + x564;
+ int x568 = x567 * x566 + x565;
+ int x569 = x568 * x567 + x566;
+ int x570 = x569 * x568 + x567;
+ int x571 = x570 * x569 + x568;
+ int x572 = x571 * x570 + x569;
+ int x573 = x572 * x571 + x570;
+ int x574 = x573 * x572 + x571;
+ int x575 = x574 * x573 + x572;
+ int x576 = x575 * x574 + x573;
+ int x577 = x576 * x575 + x574;
+ int x578 = x577 * x576 + x575;
+ int x579 = x578 * x577 + x576;
+ int x580 = x579 * x578 + x577;
+ int x581 = x580 * x579 + x578;
+ int x582 = x581 * x580 + x579;
+ int x583 = x582 * x581 + x580;
+ int x584 = x583 * x582 + x581;
+ int x585 = x584 * x583 + x582;
+ int x586 = x585 * x584 + x583;
+ int x587 = x586 * x585 + x584;
+ int x588 = x587 * x586 + x585;
+ int x589 = x588 * x587 + x586;
+ int x590 = x589 * x588 + x587;
+ int x591 = x590 * x589 + x588;
+ int x592 = x591 * x590 + x589;
+ int x593 = x592 * x591 + x590;
+ int x594 = x593 * x592 + x591;
+ int x595 = x594 * x593 + x592;
+ int x596 = x595 * x594 + x593;
+ int x597 = x596 * x595 + x594;
+ int x598 = x597 * x596 + x595;
+ int x599 = x598 * x597 + x596;
+ int x600 = x599 * x598 + x597;
+ int x601 = x600 * x599 + x598;
+ int x602 = x601 * x600 + x599;
+ int x603 = x602 * x601 + x600;
+ int x604 = x603 * x602 + x601;
+ int x605 = x604 * x603 + x602;
+ int x606 = x605 * x604 + x603;
+ int x607 = x606 * x605 + x604;
+ int x608 = x607 * x606 + x605;
+ int x609 = x608 * x607 + x606;
+ int x610 = x609 * x608 + x607;
+ int x611 = x610 * x609 + x608;
+ int x612 = x611 * x610 + x609;
+ int x613 = x612 * x611 + x610;
+ int x614 = x613 * x612 + x611;
+ int x615 = x614 * x613 + x612;
+ int x616 = x615 * x614 + x613;
+ int x617 = x616 * x615 + x614;
+ int x618 = x617 * x616 + x615;
+ int x619 = x618 * x617 + x616;
+ int x620 = x619 * x618 + x617;
+ int x621 = x620 * x619 + x618;
+ int x622 = x621 * x620 + x619;
+ int x623 = x622 * x621 + x620;
+ int x624 = x623 * x622 + x621;
+ int x625 = x624 * x623 + x622;
+ int x626 = x625 * x624 + x623;
+ int x627 = x626 * x625 + x624;
+ int x628 = x627 * x626 + x625;
+ int x629 = x628 * x627 + x626;
+ int x630 = x629 * x628 + x627;
+ int x631 = x630 * x629 + x628;
+ int x632 = x631 * x630 + x629;
+ int x633 = x632 * x631 + x630;
+ int x634 = x633 * x632 + x631;
+ int x635 = x634 * x633 + x632;
+ int x636 = x635 * x634 + x633;
+ int x637 = x636 * x635 + x634;
+ int x638 = x637 * x636 + x635;
+ int x639 = x638 * x637 + x636;
+ int x640 = x639 * x638 + x637;
+ int x641 = x640 * x639 + x638;
+ int x642 = x641 * x640 + x639;
+ int x643 = x642 * x641 + x640;
+ int x644 = x643 * x642 + x641;
+ int x645 = x644 * x643 + x642;
+ int x646 = x645 * x644 + x643;
+ int x647 = x646 * x645 + x644;
+ int x648 = x647 * x646 + x645;
+ int x649 = x648 * x647 + x646;
+ int x650 = x649 * x648 + x647;
+ int x651 = x650 * x649 + x648;
+ int x652 = x651 * x650 + x649;
+ int x653 = x652 * x651 + x650;
+ int x654 = x653 * x652 + x651;
+ int x655 = x654 * x653 + x652;
+ int x656 = x655 * x654 + x653;
+ int x657 = x656 * x655 + x654;
+ int x658 = x657 * x656 + x655;
+ int x659 = x658 * x657 + x656;
+ int x660 = x659 * x658 + x657;
+ int x661 = x660 * x659 + x658;
+ int x662 = x661 * x660 + x659;
+ int x663 = x662 * x661 + x660;
+ int x664 = x663 * x662 + x661;
+ int x665 = x664 * x663 + x662;
+ int x666 = x665 * x664 + x663;
+ int x667 = x666 * x665 + x664;
+ int x668 = x667 * x666 + x665;
+ int x669 = x668 * x667 + x666;
+ int x670 = x669 * x668 + x667;
+ int x671 = x670 * x669 + x668;
+ int x672 = x671 * x670 + x669;
+ int x673 = x672 * x671 + x670;
+ int x674 = x673 * x672 + x671;
+ int x675 = x674 * x673 + x672;
+ int x676 = x675 * x674 + x673;
+ int x677 = x676 * x675 + x674;
+ int x678 = x677 * x676 + x675;
+ int x679 = x678 * x677 + x676;
+ int x680 = x679 * x678 + x677;
+ int x681 = x680 * x679 + x678;
+ int x682 = x681 * x680 + x679;
+ int x683 = x682 * x681 + x680;
+ int x684 = x683 * x682 + x681;
+ int x685 = x684 * x683 + x682;
+ int x686 = x685 * x684 + x683;
+ int x687 = x686 * x685 + x684;
+ int x688 = x687 * x686 + x685;
+ int x689 = x688 * x687 + x686;
+ int x690 = x689 * x688 + x687;
+ int x691 = x690 * x689 + x688;
+ int x692 = x691 * x690 + x689;
+ int x693 = x692 * x691 + x690;
+ int x694 = x693 * x692 + x691;
+ int x695 = x694 * x693 + x692;
+ int x696 = x695 * x694 + x693;
+ int x697 = x696 * x695 + x694;
+ int x698 = x697 * x696 + x695;
+ int x699 = x698 * x697 + x696;
+ int x700 = x699 * x698 + x697;
+ int x701 = x700 * x699 + x698;
+ int x702 = x701 * x700 + x699;
+ int x703 = x702 * x701 + x700;
+ int x704 = x703 * x702 + x701;
+ int x705 = x704 * x703 + x702;
+ int x706 = x705 * x704 + x703;
+ int x707 = x706 * x705 + x704;
+ int x708 = x707 * x706 + x705;
+ int x709 = x708 * x707 + x706;
+ int x710 = x709 * x708 + x707;
+ int x711 = x710 * x709 + x708;
+ int x712 = x711 * x710 + x709;
+ int x713 = x712 * x711 + x710;
+ int x714 = x713 * x712 + x711;
+ int x715 = x714 * x713 + x712;
+ int x716 = x715 * x714 + x713;
+ int x717 = x716 * x715 + x714;
+ int x718 = x717 * x716 + x715;
+ int x719 = x718 * x717 + x716;
+ int x720 = x719 * x718 + x717;
+ int x721 = x720 * x719 + x718;
+ int x722 = x721 * x720 + x719;
+ int x723 = x722 * x721 + x720;
+ int x724 = x723 * x722 + x721;
+ int x725 = x724 * x723 + x722;
+ int x726 = x725 * x724 + x723;
+ int x727 = x726 * x725 + x724;
+ int x728 = x727 * x726 + x725;
+ int x729 = x728 * x727 + x726;
+ int x730 = x729 * x728 + x727;
+ int x731 = x730 * x729 + x728;
+ int x732 = x731 * x730 + x729;
+ int x733 = x732 * x731 + x730;
+ int x734 = x733 * x732 + x731;
+ int x735 = x734 * x733 + x732;
+ int x736 = x735 * x734 + x733;
+ int x737 = x736 * x735 + x734;
+ int x738 = x737 * x736 + x735;
+ int x739 = x738 * x737 + x736;
+ int x740 = x739 * x738 + x737;
+ int x741 = x740 * x739 + x738;
+ int x742 = x741 * x740 + x739;
+ int x743 = x742 * x741 + x740;
+ int x744 = x743 * x742 + x741;
+ int x745 = x744 * x743 + x742;
+ int x746 = x745 * x744 + x743;
+ int x747 = x746 * x745 + x744;
+ int x748 = x747 * x746 + x745;
+ int x749 = x748 * x747 + x746;
+ int x750 = x749 * x748 + x747;
+ int x751 = x750 * x749 + x748;
+ int x752 = x751 * x750 + x749;
+ int x753 = x752 * x751 + x750;
+ int x754 = x753 * x752 + x751;
+ int x755 = x754 * x753 + x752;
+ int x756 = x755 * x754 + x753;
+ int x757 = x756 * x755 + x754;
+ int x758 = x757 * x756 + x755;
+ int x759 = x758 * x757 + x756;
+ int x760 = x759 * x758 + x757;
+ int x761 = x760 * x759 + x758;
+ int x762 = x761 * x760 + x759;
+ int x763 = x762 * x761 + x760;
+ int x764 = x763 * x762 + x761;
+ int x765 = x764 * x763 + x762;
+ int x766 = x765 * x764 + x763;
+ int x767 = x766 * x765 + x764;
+ int x768 = x767 * x766 + x765;
+ int x769 = x768 * x767 + x766;
+ int x770 = x769 * x768 + x767;
+ int x771 = x770 * x769 + x768;
+ int x772 = x771 * x770 + x769;
+ int x773 = x772 * x771 + x770;
+ int x774 = x773 * x772 + x771;
+ int x775 = x774 * x773 + x772;
+ int x776 = x775 * x774 + x773;
+ int x777 = x776 * x775 + x774;
+ int x778 = x777 * x776 + x775;
+ int x779 = x778 * x777 + x776;
+ int x780 = x779 * x778 + x777;
+ int x781 = x780 * x779 + x778;
+ int x782 = x781 * x780 + x779;
+ int x783 = x782 * x781 + x780;
+ int x784 = x783 * x782 + x781;
+ int x785 = x784 * x783 + x782;
+ int x786 = x785 * x784 + x783;
+ int x787 = x786 * x785 + x784;
+ int x788 = x787 * x786 + x785;
+ int x789 = x788 * x787 + x786;
+ int x790 = x789 * x788 + x787;
+ int x791 = x790 * x789 + x788;
+ int x792 = x791 * x790 + x789;
+ int x793 = x792 * x791 + x790;
+ int x794 = x793 * x792 + x791;
+ int x795 = x794 * x793 + x792;
+ int x796 = x795 * x794 + x793;
+ int x797 = x796 * x795 + x794;
+ int x798 = x797 * x796 + x795;
+ int x799 = x798 * x797 + x796;
+ int x800 = x799 * x798 + x797;
+ int x801 = x800 * x799 + x798;
+ int x802 = x801 * x800 + x799;
+ int x803 = x802 * x801 + x800;
+ int x804 = x803 * x802 + x801;
+ int x805 = x804 * x803 + x802;
+ int x806 = x805 * x804 + x803;
+ int x807 = x806 * x805 + x804;
+ int x808 = x807 * x806 + x805;
+ int x809 = x808 * x807 + x806;
+ int x810 = x809 * x808 + x807;
+ int x811 = x810 * x809 + x808;
+ int x812 = x811 * x810 + x809;
+ int x813 = x812 * x811 + x810;
+ int x814 = x813 * x812 + x811;
+ int x815 = x814 * x813 + x812;
+ int x816 = x815 * x814 + x813;
+ int x817 = x816 * x815 + x814;
+ int x818 = x817 * x816 + x815;
+ int x819 = x818 * x817 + x816;
+ int x820 = x819 * x818 + x817;
+ int x821 = x820 * x819 + x818;
+ int x822 = x821 * x820 + x819;
+ int x823 = x822 * x821 + x820;
+ int x824 = x823 * x822 + x821;
+ int x825 = x824 * x823 + x822;
+ int x826 = x825 * x824 + x823;
+ int x827 = x826 * x825 + x824;
+ int x828 = x827 * x826 + x825;
+ int x829 = x828 * x827 + x826;
+ int x830 = x829 * x828 + x827;
+ int x831 = x830 * x829 + x828;
+ int x832 = x831 * x830 + x829;
+ int x833 = x832 * x831 + x830;
+ int x834 = x833 * x832 + x831;
+ int x835 = x834 * x833 + x832;
+ int x836 = x835 * x834 + x833;
+ int x837 = x836 * x835 + x834;
+ int x838 = x837 * x836 + x835;
+ int x839 = x838 * x837 + x836;
+ int x840 = x839 * x838 + x837;
+ int x841 = x840 * x839 + x838;
+ int x842 = x841 * x840 + x839;
+ int x843 = x842 * x841 + x840;
+ int x844 = x843 * x842 + x841;
+ int x845 = x844 * x843 + x842;
+ int x846 = x845 * x844 + x843;
+ int x847 = x846 * x845 + x844;
+ int x848 = x847 * x846 + x845;
+ int x849 = x848 * x847 + x846;
+ int x850 = x849 * x848 + x847;
+ int x851 = x850 * x849 + x848;
+ int x852 = x851 * x850 + x849;
+ int x853 = x852 * x851 + x850;
+ int x854 = x853 * x852 + x851;
+ int x855 = x854 * x853 + x852;
+ int x856 = x855 * x854 + x853;
+ int x857 = x856 * x855 + x854;
+ int x858 = x857 * x856 + x855;
+ int x859 = x858 * x857 + x856;
+ int x860 = x859 * x858 + x857;
+ int x861 = x860 * x859 + x858;
+ int x862 = x861 * x860 + x859;
+ int x863 = x862 * x861 + x860;
+ int x864 = x863 * x862 + x861;
+ int x865 = x864 * x863 + x862;
+ int x866 = x865 * x864 + x863;
+ int x867 = x866 * x865 + x864;
+ int x868 = x867 * x866 + x865;
+ int x869 = x868 * x867 + x866;
+ int x870 = x869 * x868 + x867;
+ int x871 = x870 * x869 + x868;
+ int x872 = x871 * x870 + x869;
+ int x873 = x872 * x871 + x870;
+ int x874 = x873 * x872 + x871;
+ int x875 = x874 * x873 + x872;
+ int x876 = x875 * x874 + x873;
+ int x877 = x876 * x875 + x874;
+ int x878 = x877 * x876 + x875;
+ int x879 = x878 * x877 + x876;
+ int x880 = x879 * x878 + x877;
+ int x881 = x880 * x879 + x878;
+ int x882 = x881 * x880 + x879;
+ int x883 = x882 * x881 + x880;
+ int x884 = x883 * x882 + x881;
+ int x885 = x884 * x883 + x882;
+ int x886 = x885 * x884 + x883;
+ int x887 = x886 * x885 + x884;
+ int x888 = x887 * x886 + x885;
+ int x889 = x888 * x887 + x886;
+ int x890 = x889 * x888 + x887;
+ int x891 = x890 * x889 + x888;
+ int x892 = x891 * x890 + x889;
+ int x893 = x892 * x891 + x890;
+ int x894 = x893 * x892 + x891;
+ int x895 = x894 * x893 + x892;
+ int x896 = x895 * x894 + x893;
+ int x897 = x896 * x895 + x894;
+ int x898 = x897 * x896 + x895;
+ int x899 = x898 * x897 + x896;
+ int x900 = x899 * x898 + x897;
+ int x901 = x900 * x899 + x898;
+ int x902 = x901 * x900 + x899;
+ int x903 = x902 * x901 + x900;
+ int x904 = x903 * x902 + x901;
+ int x905 = x904 * x903 + x902;
+ int x906 = x905 * x904 + x903;
+ int x907 = x906 * x905 + x904;
+ int x908 = x907 * x906 + x905;
+ int x909 = x908 * x907 + x906;
+ int x910 = x909 * x908 + x907;
+ int x911 = x910 * x909 + x908;
+ int x912 = x911 * x910 + x909;
+ int x913 = x912 * x911 + x910;
+ int x914 = x913 * x912 + x911;
+ int x915 = x914 * x913 + x912;
+ int x916 = x915 * x914 + x913;
+ int x917 = x916 * x915 + x914;
+ int x918 = x917 * x916 + x915;
+ int x919 = x918 * x917 + x916;
+ int x920 = x919 * x918 + x917;
+ int x921 = x920 * x919 + x918;
+ int x922 = x921 * x920 + x919;
+ int x923 = x922 * x921 + x920;
+ int x924 = x923 * x922 + x921;
+ int x925 = x924 * x923 + x922;
+ int x926 = x925 * x924 + x923;
+ int x927 = x926 * x925 + x924;
+ int x928 = x927 * x926 + x925;
+ int x929 = x928 * x927 + x926;
+ int x930 = x929 * x928 + x927;
+ int x931 = x930 * x929 + x928;
+ int x932 = x931 * x930 + x929;
+ int x933 = x932 * x931 + x930;
+ int x934 = x933 * x932 + x931;
+ int x935 = x934 * x933 + x932;
+ int x936 = x935 * x934 + x933;
+ int x937 = x936 * x935 + x934;
+ int x938 = x937 * x936 + x935;
+ int x939 = x938 * x937 + x936;
+ int x940 = x939 * x938 + x937;
+ int x941 = x940 * x939 + x938;
+ int x942 = x941 * x940 + x939;
+ int x943 = x942 * x941 + x940;
+ int x944 = x943 * x942 + x941;
+ int x945 = x944 * x943 + x942;
+ int x946 = x945 * x944 + x943;
+ int x947 = x946 * x945 + x944;
+ int x948 = x947 * x946 + x945;
+ int x949 = x948 * x947 + x946;
+ int x950 = x949 * x948 + x947;
+ int x951 = x950 * x949 + x948;
+ int x952 = x951 * x950 + x949;
+ int x953 = x952 * x951 + x950;
+ int x954 = x953 * x952 + x951;
+ int x955 = x954 * x953 + x952;
+ int x956 = x955 * x954 + x953;
+ int x957 = x956 * x955 + x954;
+ int x958 = x957 * x956 + x955;
+ int x959 = x958 * x957 + x956;
+ int x960 = x959 * x958 + x957;
+ int x961 = x960 * x959 + x958;
+ int x962 = x961 * x960 + x959;
+ int x963 = x962 * x961 + x960;
+ int x964 = x963 * x962 + x961;
+ int x965 = x964 * x963 + x962;
+ int x966 = x965 * x964 + x963;
+ int x967 = x966 * x965 + x964;
+ int x968 = x967 * x966 + x965;
+ int x969 = x968 * x967 + x966;
+ int x970 = x969 * x968 + x967;
+ int x971 = x970 * x969 + x968;
+ int x972 = x971 * x970 + x969;
+ int x973 = x972 * x971 + x970;
+ int x974 = x973 * x972 + x971;
+ int x975 = x974 * x973 + x972;
+ int x976 = x975 * x974 + x973;
+ int x977 = x976 * x975 + x974;
+ int x978 = x977 * x976 + x975;
+ int x979 = x978 * x977 + x976;
+ int x980 = x979 * x978 + x977;
+ int x981 = x980 * x979 + x978;
+ int x982 = x981 * x980 + x979;
+ int x983 = x982 * x981 + x980;
+ int x984 = x983 * x982 + x981;
+ int x985 = x984 * x983 + x982;
+ int x986 = x985 * x984 + x983;
+ int x987 = x986 * x985 + x984;
+ int x988 = x987 * x986 + x985;
+ int x989 = x988 * x987 + x986;
+ int x990 = x989 * x988 + x987;
+ int x991 = x990 * x989 + x988;
+ int x992 = x991 * x990 + x989;
+ int x993 = x992 * x991 + x990;
+ int x994 = x993 * x992 + x991;
+ int x995 = x994 * x993 + x992;
+ int x996 = x995 * x994 + x993;
+ int x997 = x996 * x995 + x994;
+ int x998 = x997 * x996 + x995;
+ int x999 = x998 * x997 + x996;
+ int x1000 = x999 * x998 + x997;
+
+ return x1000;
+}
Index: lldb/test/API/commands/settings/use_source_cache/TestUseSourceCache.py
===================================================================
--- /dev/null
+++ lldb/test/API/commands/settings/use_source_cache/TestUseSourceCache.py
@@ -0,0 +1,82 @@
+"""
+Tests large source files are not locked on Windows when source cache is disabled
+"""
+
+import lldb
+from lldbsuite.test.decorators import *
+from lldbsuite.test.lldbtest import *
+from lldbsuite.test import lldbutil
+
+from shutil import copy
+
+class SettingsUseSourceCacheTestCase(TestBase):
+
+ mydir = TestBase.compute_mydir(__file__)
+ NO_DEBUG_INFO_TESTCASE = True
+
+ @skipIf(oslist=no_match(["windows"]))
+ def test_set_use_source_cache_false(self):
+ """Test that after 'set use-source-cache false', files are not locked."""
+ self.set_use_source_cache_and_test(False)
+
+ @skipIf(oslist=no_match(["windows"]))
+ def test_set_use_source_cache_true(self):
+ """Test that after 'set use-source-cache false', files are locked."""
+ self.set_use_source_cache_and_test(True)
+
+ def set_use_source_cache_and_test(self, is_cache_enabled):
+ """Common test for both True/False values of use-source-cache."""
+ # Build and set the executable.
+ self.build()
+ exe = self.getBuildArtifact("a.out")
+ self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
+
+ # Enable/Disable source cache
+ self.runCmd(
+ "settings set use-source-cache " +
+ ("true" if is_cache_enabled else "false"))
+
+ # Get paths for source files: header.h, header2.h
+ src_file = self.getSourcePath("header.h")
+ self.assertTrue(src_file)
+ src_file2 = self.getSourcePath("header2.h")
+ self.assertTrue(src_file)
+
+ # Copy header.h to header2.h as a backup. The test will try to delete
+ # header.h and we will use header2.h to recover it.
+ copy(src_file, src_file2)
+
+ # Set breakpoint inside header.h.
+ target = self.dbg.GetTargetAtIndex(0)
+ self.assertTrue(target, VALID_TARGET)
+ breakpoint = target.BreakpointCreateByName("calc")
+ self.assertTrue(breakpoint and
+ breakpoint.GetNumLocations() >= 1,
+ VALID_BREAKPOINT)
+
+ # Run the app.
+ process = target.LaunchSimple(None, None, None)
+ self.assertTrue(process, PROCESS_IS_VALID)
+
+ # Make sure we hit the breakpoint.
+ from lldbsuite.test.lldbutil import get_threads_stopped_at_breakpoint
+ threads = get_threads_stopped_at_breakpoint(process, breakpoint)
+ self.assertTrue(
+ len(threads) == 1,
+ "There should be a thread stopped at our breakpoint")
+ self.assertEquals(breakpoint.GetHitCount(), 1)
+
+ # Show the source file contents to make sure LLDB loads header.h file.
+ self.runCmd("source list")
+
+ try:
+ os.remove(src_file)
+ copy(src_file2, src_file)
+ if is_cache_enabled:
+ raise "Source cache is enabled, but delete file succeeded"
+ except Exception as e:
+ if not is_cache_enabled:
+ raise "Source cache is disabled, but delete file failed"
+ finally:
+ os.remove(src_file2)
+
Index: lldb/test/API/commands/settings/use_source_cache/Makefile
===================================================================
--- /dev/null
+++ lldb/test/API/commands/settings/use_source_cache/Makefile
@@ -0,0 +1,3 @@
+CXX_SOURCES := main.cpp
+
+include Makefile.rules
Index: lldb/source/Core/SourceManager.cpp
===================================================================
--- lldb/source/Core/SourceManager.cpp
+++ lldb/source/Core/SourceManager.cpp
@@ -52,27 +52,21 @@
// SourceManager constructor
SourceManager::SourceManager(const TargetSP &target_sp)
- : m_last_file_sp(), m_last_line(0), m_last_count(0), m_default_set(false),
+ : m_last_line(0), m_last_count(0), m_default_set(false),
m_target_wp(target_sp),
m_debugger_wp(target_sp->GetDebugger().shared_from_this()) {}
SourceManager::SourceManager(const DebuggerSP &debugger_sp)
- : m_last_file_sp(), m_last_line(0), m_last_count(0), m_default_set(false),
- m_target_wp(), m_debugger_wp(debugger_sp) {}
+ : m_last_line(0), m_last_count(0), m_default_set(false), m_target_wp(),
+ m_debugger_wp(debugger_sp) {}
// Destructor
SourceManager::~SourceManager() {}
SourceManager::FileSP SourceManager::GetFile(const FileSpec &file_spec) {
- bool same_as_previous =
- m_last_file_sp &&
- FileSpec::Match(file_spec, m_last_file_sp->GetFileSpec());
-
DebuggerSP debugger_sp(m_debugger_wp.lock());
FileSP file_sp;
- if (same_as_previous)
- file_sp = m_last_file_sp;
- else if (debugger_sp && debugger_sp->GetUseSourceCache())
+ if (debugger_sp && debugger_sp->GetUseSourceCache())
file_sp = debugger_sp->GetSourceFileCache().FindSourceFile(file_spec);
TargetSP target_sp(m_target_wp.lock());
@@ -178,10 +172,10 @@
m_last_line = start_line;
m_last_count = count;
- if (m_last_file_sp.get()) {
+ if (FileSP last_file_sp = GetFile(m_last_file_spec)) {
const uint32_t end_line = start_line + count - 1;
for (uint32_t line = start_line; line <= end_line; ++line) {
- if (!m_last_file_sp->LineIsValid(line)) {
+ if (!last_file_sp->LineIsValid(line)) {
m_last_line = UINT32_MAX;
break;
}
@@ -219,12 +213,12 @@
columnToHighlight = column - 1;
size_t this_line_size =
- m_last_file_sp->DisplaySourceLines(line, columnToHighlight, 0, 0, s);
+ last_file_sp->DisplaySourceLines(line, columnToHighlight, 0, 0, s);
if (column != 0 && line == curr_line &&
should_show_stop_column_with_caret(debugger_sp)) {
// Display caret cursor.
std::string src_line;
- m_last_file_sp->GetLine(line, src_line);
+ last_file_sp->GetLine(line, src_line);
s->Printf(" \t");
// Insert a space for every non-tab character in the source line.
for (size_t i = 0; i + 1 < column && i < src_line.length(); ++i)
@@ -255,10 +249,11 @@
else
start_line = 1;
- if (m_last_file_sp.get() != file_sp.get()) {
+ FileSP last_file_sp(GetLastFile());
+ if (last_file_sp.get() != file_sp.get()) {
if (line == 0)
m_last_line = 0;
- m_last_file_sp = file_sp;
+ m_last_file_spec = file_spec;
}
return DisplaySourceLinesWithLineNumbersUsingLastFile(
start_line, count, line, column, current_line_cstr, s, bp_locs);
@@ -268,14 +263,15 @@
Stream *s, uint32_t count, bool reverse, const SymbolContextList *bp_locs) {
// If we get called before anybody has set a default file and line, then try
// to figure it out here.
- const bool have_default_file_line = m_last_file_sp && m_last_line > 0;
+ FileSP last_file_sp(GetLastFile());
+ const bool have_default_file_line = last_file_sp && m_last_line > 0;
if (!m_default_set) {
FileSpec tmp_spec;
uint32_t tmp_line;
GetDefaultFileAndLine(tmp_spec, tmp_line);
}
- if (m_last_file_sp) {
+ if (last_file_sp) {
if (m_last_line == UINT32_MAX)
return 0;
@@ -310,22 +306,21 @@
bool SourceManager::SetDefaultFileAndLine(const FileSpec &file_spec,
uint32_t line) {
- FileSP old_file_sp = m_last_file_sp;
- m_last_file_sp = GetFile(file_spec);
-
m_default_set = true;
- if (m_last_file_sp) {
+ FileSP file_sp(GetFile(file_spec));
+
+ if (file_sp) {
m_last_line = line;
+ m_last_file_spec = file_spec;
return true;
} else {
- m_last_file_sp = old_file_sp;
return false;
}
}
bool SourceManager::GetDefaultFileAndLine(FileSpec &file_spec, uint32_t &line) {
- if (m_last_file_sp) {
- file_spec = m_last_file_sp->GetFileSpec();
+ if (FileSP last_file_sp = GetLastFile()) {
+ file_spec = last_file_sp->GetFileSpec();
line = m_last_line;
return true;
} else if (!m_default_set) {
@@ -355,7 +350,7 @@
.GetBaseAddress()
.CalculateSymbolContextLineEntry(line_entry)) {
SetDefaultFileAndLine(line_entry.file, line_entry.line);
- file_spec = m_last_file_sp->GetFileSpec();
+ file_spec = last_file_sp->GetFileSpec();
line = m_last_line;
return true;
}
Index: lldb/include/lldb/Core/SourceManager.h
===================================================================
--- lldb/include/lldb/Core/SourceManager.h
+++ lldb/include/lldb/Core/SourceManager.h
@@ -119,7 +119,7 @@
~SourceManager();
- FileSP GetLastFile() { return m_last_file_sp; }
+ FileSP GetLastFile() { return GetFile(m_last_file_spec); }
size_t
DisplaySourceLinesWithLineNumbers(const FileSpec &file, uint32_t line,
@@ -141,7 +141,9 @@
bool GetDefaultFileAndLine(FileSpec &file_spec, uint32_t &line);
- bool DefaultFileAndLineSet() { return (m_last_file_sp.get() != nullptr); }
+ bool DefaultFileAndLineSet() {
+ return (GetFile(m_last_file_spec).get() != nullptr);
+ }
void FindLinesMatchingRegex(FileSpec &file_spec, RegularExpression ®ex,
uint32_t start_line, uint32_t end_line,
@@ -150,7 +152,7 @@
FileSP GetFile(const FileSpec &file_spec);
protected:
- FileSP m_last_file_sp;
+ FileSpec m_last_file_spec;
uint32_t m_last_line;
uint32_t m_last_count;
bool m_default_set;
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits