authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2024-08-18 18:43:28-07:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2024-08-18 18:43:28-07:00
log93ba960e3b799ebe1279fc5f1c759e5b1966d59b
treeccaa2f72dbffec5d3842228c16a39ccb18130cf0
parentcf9f8de661034be1db41e24f3c6a7b1776ba58a2
parent9a64b80377139ee0b472b6f8525181cc19f0fce7
signaturebadge-check Signed by PGP key B5690EEEBB952194

Merge pull request #21127 from jacobly0/self-dwarf

Dwarf: more progress

3 files changed, 112 insertions(+), 2 deletions(-)

ci/x86_64-linux-debug.sh+1-1
...@@ -64,7 +64,7 @@ stage3-debug/bin/zig build \...@@ -64,7 +64,7 @@ stage3-debug/bin/zig build \
6464
65stage3-debug/bin/zig build test docs \65stage3-debug/bin/zig build test docs \
66 --maxrss 21000000000 \66 --maxrss 21000000000 \
67 -Dlldb=$HOME/deps/lldb-zig/Debug/bin/lldb \67 -Dlldb=$HOME/deps/lldb-zig/Debug-f96d3e6fc/bin/lldb \
68 -fqemu \68 -fqemu \
69 -fwasmtime \69 -fwasmtime \
70 -Dstatic-llvm \70 -Dstatic-llvm \
ci/x86_64-linux-release.sh+1-1
...@@ -64,7 +64,7 @@ stage3-release/bin/zig build \...@@ -64,7 +64,7 @@ stage3-release/bin/zig build \
6464
65stage3-release/bin/zig build test docs \65stage3-release/bin/zig build test docs \
66 --maxrss 21000000000 \66 --maxrss 21000000000 \
67 -Dlldb=$HOME/deps/lldb-zig/Release/bin/lldb \67 -Dlldb=$HOME/deps/lldb-zig/Release-f96d3e6fc/bin/lldb \
68 -fqemu \68 -fqemu \
69 -fwasmtime \69 -fwasmtime \
70 -Dstatic-llvm \70 -Dstatic-llvm \
test/src/Debugger.zig+110
...@@ -305,6 +305,51 @@ pub fn addTestsForTarget(db: *Debugger, target: Target) void {...@@ -305,6 +305,51 @@ pub fn addTestsForTarget(db: *Debugger, target: Target) void {
305 \\1 breakpoints deleted; 0 breakpoint locations disabled.305 \\1 breakpoints deleted; 0 breakpoint locations disabled.
306 },306 },
307 );307 );
308 db.addLldbTest(
309 "enums",
310 target,
311 &.{
312 .{
313 .path = "enums.zig",
314 .source =
315 \\const Enums = struct {
316 \\ const Zero = enum(u4) { _ };
317 \\ const One = enum { first };
318 \\ const Two = enum(i32) { first, second, _ };
319 \\ const Three = enum { first, second, third };
320 \\
321 \\ zero: Zero = @enumFromInt(13),
322 \\ one: One = .first,
323 \\ two: Two = @enumFromInt(-1234),
324 \\ three: Three = .second,
325 \\};
326 \\fn testEnums(enums: Enums) void {
327 \\ _ = enums;
328 \\}
329 \\pub fn main() void {
330 \\ testEnums(.{});
331 \\}
332 \\
333 ,
334 },
335 },
336 \\breakpoint set --file enums.zig --source-pattern-regexp '_ = enums;'
337 \\process launch
338 \\frame variable --show-types enums
339 \\breakpoint delete --force 1
340 ,
341 &.{
342 \\(lldb) frame variable --show-types enums
343 \\(root.enums.Enums) enums = {
344 \\ (root.enums.Enums.Zero) zero = @enumFromInt(13)
345 \\ (root.enums.Enums.One) one = .first
346 \\ (root.enums.Enums.Two) two = @enumFromInt(-1234)
347 \\ (root.enums.Enums.Three) three = .second
348 \\}
349 \\(lldb) breakpoint delete --force 1
350 \\1 breakpoints deleted; 0 breakpoint locations disabled.
351 },
352 );
308 db.addLldbTest(353 db.addLldbTest(
309 "errors",354 "errors",
310 target,355 target,
...@@ -403,6 +448,71 @@ pub fn addTestsForTarget(db: *Debugger, target: Target) void {...@@ -403,6 +448,71 @@ pub fn addTestsForTarget(db: *Debugger, target: Target) void {
403 \\1 breakpoints deleted; 0 breakpoint locations disabled.448 \\1 breakpoints deleted; 0 breakpoint locations disabled.
404 },449 },
405 );450 );
451 db.addLldbTest(
452 "unions",
453 target,
454 &.{
455 .{
456 .path = "unions.zig",
457 .source =
458 \\const Unions = struct {
459 \\ const Enum = enum { first, second, third };
460 \\ const Untagged = extern union {
461 \\ u32: u32,
462 \\ i32: i32,
463 \\ f32: f32,
464 \\ };
465 \\ const SafetyTagged = union {
466 \\ void: void,
467 \\ en: Enum,
468 \\ eu: error{Error}!Enum,
469 \\ };
470 \\ const Tagged = union(enum) {
471 \\ void: void,
472 \\ en: Enum,
473 \\ eu: error{Error}!Enum,
474 \\ };
475 \\
476 \\ untagged: Untagged = .{ .f32 = -1.5 },
477 \\ safety_tagged: SafetyTagged = .{ .en = .second },
478 \\ tagged: Tagged = .{ .eu = error.Error },
479 \\};
480 \\fn testUnions(unions: Unions) void {
481 \\ _ = unions;
482 \\}
483 \\pub fn main() void {
484 \\ testUnions(.{});
485 \\}
486 \\
487 ,
488 },
489 },
490 \\breakpoint set --file unions.zig --source-pattern-regexp '_ = unions;'
491 \\process launch
492 \\frame variable --show-types unions
493 \\breakpoint delete --force 1
494 ,
495 &.{
496 \\(lldb) frame variable --show-types unions
497 \\(root.unions.Unions) unions = {
498 \\ (root.unions.Unions.Untagged) untagged = {
499 \\ (u32) u32 = 3217031168
500 \\ (i32) i32 = -1077936128
501 \\ (f32) f32 = -1.5
502 \\ }
503 \\ (root.unions.Unions.SafetyTagged) safety_tagged = {
504 \\ (root.unions.Unions.Enum) en = .second
505 \\ }
506 \\ (root.unions.Unions.Tagged) tagged = {
507 \\ (error{Error}!root.unions.Unions.Enum) eu = {
508 \\ (error{Error}) error = error.Error
509 \\ }
510 \\ }
511 \\}
512 \\(lldb) breakpoint delete --force 1
513 \\1 breakpoints deleted; 0 breakpoint locations disabled.
514 },
515 );
406 db.addLldbTest(516 db.addLldbTest(
407 "storage",517 "storage",
408 target,518 target,