| ... | ... | @@ -41,6 +41,21 @@ pub fn addCases(cases: *tests.StackTracesContext) void { |
| 41 | 41 | \\ try foo(); |
| 42 | 42 | \\} |
| 43 | 43 | ; |
| 44 | const source_dumpCurrentStackTrace = |
| 45 | \\const std = @import("std"); |
| 46 | \\ |
| 47 | \\fn bar() void { |
| 48 | \\ std.debug.dumpCurrentStackTrace(@returnAddress()); |
| 49 | \\} |
| 50 | \\fn foo() void { |
| 51 | \\ bar(); |
| 52 | \\} |
| 53 | \\pub fn main() u8 { |
| 54 | \\ foo(); |
| 55 | \\ return 1; |
| 56 | \\} |
| 57 | ; |
| 58 | |
| 44 | 59 | // zig fmt: off |
| 45 | 60 | switch (builtin.os) { |
| 46 | 61 | .freebsd => { |
| ... | ... | @@ -49,25 +64,25 @@ pub fn addCases(cases: *tests.StackTracesContext) void { |
| 49 | 64 | source_return, |
| 50 | 65 | [_][]const u8{ |
| 51 | 66 | // debug |
| 52 | | \\error: TheSkyIsFalling |
| 67 | \\error: TheSkyIsFalling |
| 53 | 68 | \\source.zig:4:5: [address] in main (test) |
| 54 | 69 | \\ return error.TheSkyIsFalling; |
| 55 | 70 | \\ ^ |
| 56 | 71 | \\ |
| 57 | 72 | , |
| 58 | 73 | // release-safe |
| 59 | | \\error: TheSkyIsFalling |
| 74 | \\error: TheSkyIsFalling |
| 60 | 75 | \\source.zig:4:5: [address] in std.start.main (test) |
| 61 | 76 | \\ return error.TheSkyIsFalling; |
| 62 | 77 | \\ ^ |
| 63 | 78 | \\ |
| 64 | 79 | , |
| 65 | 80 | // release-fast |
| 66 | | \\error: TheSkyIsFalling |
| 81 | \\error: TheSkyIsFalling |
| 67 | 82 | \\ |
| 68 | 83 | , |
| 69 | 84 | // release-small |
| 70 | | \\error: TheSkyIsFalling |
| 85 | \\error: TheSkyIsFalling |
| 71 | 86 | \\ |
| 72 | 87 | }, |
| 73 | 88 | ); |
| ... | ... | @@ -76,7 +91,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void { |
| 76 | 91 | source_try_return, |
| 77 | 92 | [_][]const u8{ |
| 78 | 93 | // debug |
| 79 | | \\error: TheSkyIsFalling |
| 94 | \\error: TheSkyIsFalling |
| 80 | 95 | \\source.zig:4:5: [address] in foo (test) |
| 81 | 96 | \\ return error.TheSkyIsFalling; |
| 82 | 97 | \\ ^ |
| ... | ... | @@ -86,7 +101,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void { |
| 86 | 101 | \\ |
| 87 | 102 | , |
| 88 | 103 | // release-safe |
| 89 | | \\error: TheSkyIsFalling |
| 104 | \\error: TheSkyIsFalling |
| 90 | 105 | \\source.zig:4:5: [address] in std.start.main (test) |
| 91 | 106 | \\ return error.TheSkyIsFalling; |
| 92 | 107 | \\ ^ |
| ... | ... | @@ -96,11 +111,11 @@ pub fn addCases(cases: *tests.StackTracesContext) void { |
| 96 | 111 | \\ |
| 97 | 112 | , |
| 98 | 113 | // release-fast |
| 99 | | \\error: TheSkyIsFalling |
| 114 | \\error: TheSkyIsFalling |
| 100 | 115 | \\ |
| 101 | 116 | , |
| 102 | 117 | // release-small |
| 103 | | \\error: TheSkyIsFalling |
| 118 | \\error: TheSkyIsFalling |
| 104 | 119 | \\ |
| 105 | 120 | }, |
| 106 | 121 | ); |
| ... | ... | @@ -109,7 +124,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void { |
| 109 | 124 | source_try_try_return_return, |
| 110 | 125 | [_][]const u8{ |
| 111 | 126 | // debug |
| 112 | | \\error: TheSkyIsFalling |
| 127 | \\error: TheSkyIsFalling |
| 113 | 128 | \\source.zig:12:5: [address] in make_error (test) |
| 114 | 129 | \\ return error.TheSkyIsFalling; |
| 115 | 130 | \\ ^ |
| ... | ... | @@ -125,7 +140,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void { |
| 125 | 140 | \\ |
| 126 | 141 | , |
| 127 | 142 | // release-safe |
| 128 | | \\error: TheSkyIsFalling |
| 143 | \\error: TheSkyIsFalling |
| 129 | 144 | \\source.zig:12:5: [address] in std.start.main (test) |
| 130 | 145 | \\ return error.TheSkyIsFalling; |
| 131 | 146 | \\ ^ |
| ... | ... | @@ -141,11 +156,11 @@ pub fn addCases(cases: *tests.StackTracesContext) void { |
| 141 | 156 | \\ |
| 142 | 157 | , |
| 143 | 158 | // release-fast |
| 144 | | \\error: TheSkyIsFalling |
| 159 | \\error: TheSkyIsFalling |
| 145 | 160 | \\ |
| 146 | 161 | , |
| 147 | 162 | // release-small |
| 148 | | \\error: TheSkyIsFalling |
| 163 | \\error: TheSkyIsFalling |
| 149 | 164 | \\ |
| 150 | 165 | }, |
| 151 | 166 | ); |
| ... | ... | @@ -156,25 +171,25 @@ pub fn addCases(cases: *tests.StackTracesContext) void { |
| 156 | 171 | source_return, |
| 157 | 172 | [_][]const u8{ |
| 158 | 173 | // debug |
| 159 | | \\error: TheSkyIsFalling |
| 174 | \\error: TheSkyIsFalling |
| 160 | 175 | \\source.zig:4:5: [address] in main (test) |
| 161 | 176 | \\ return error.TheSkyIsFalling; |
| 162 | 177 | \\ ^ |
| 163 | 178 | \\ |
| 164 | 179 | , |
| 165 | 180 | // release-safe |
| 166 | | \\error: TheSkyIsFalling |
| 181 | \\error: TheSkyIsFalling |
| 167 | 182 | \\source.zig:4:5: [address] in std.start.posixCallMainAndExit (test) |
| 168 | 183 | \\ return error.TheSkyIsFalling; |
| 169 | 184 | \\ ^ |
| 170 | 185 | \\ |
| 171 | 186 | , |
| 172 | 187 | // release-fast |
| 173 | | \\error: TheSkyIsFalling |
| 188 | \\error: TheSkyIsFalling |
| 174 | 189 | \\ |
| 175 | 190 | , |
| 176 | 191 | // release-small |
| 177 | | \\error: TheSkyIsFalling |
| 192 | \\error: TheSkyIsFalling |
| 178 | 193 | \\ |
| 179 | 194 | }, |
| 180 | 195 | ); |
| ... | ... | @@ -183,7 +198,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void { |
| 183 | 198 | source_try_return, |
| 184 | 199 | [_][]const u8{ |
| 185 | 200 | // debug |
| 186 | | \\error: TheSkyIsFalling |
| 201 | \\error: TheSkyIsFalling |
| 187 | 202 | \\source.zig:4:5: [address] in foo (test) |
| 188 | 203 | \\ return error.TheSkyIsFalling; |
| 189 | 204 | \\ ^ |
| ... | ... | @@ -193,7 +208,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void { |
| 193 | 208 | \\ |
| 194 | 209 | , |
| 195 | 210 | // release-safe |
| 196 | | \\error: TheSkyIsFalling |
| 211 | \\error: TheSkyIsFalling |
| 197 | 212 | \\source.zig:4:5: [address] in std.start.posixCallMainAndExit (test) |
| 198 | 213 | \\ return error.TheSkyIsFalling; |
| 199 | 214 | \\ ^ |
| ... | ... | @@ -203,11 +218,11 @@ pub fn addCases(cases: *tests.StackTracesContext) void { |
| 203 | 218 | \\ |
| 204 | 219 | , |
| 205 | 220 | // release-fast |
| 206 | | \\error: TheSkyIsFalling |
| 221 | \\error: TheSkyIsFalling |
| 207 | 222 | \\ |
| 208 | 223 | , |
| 209 | 224 | // release-small |
| 210 | | \\error: TheSkyIsFalling |
| 225 | \\error: TheSkyIsFalling |
| 211 | 226 | \\ |
| 212 | 227 | }, |
| 213 | 228 | ); |
| ... | ... | @@ -216,7 +231,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void { |
| 216 | 231 | source_try_try_return_return, |
| 217 | 232 | [_][]const u8{ |
| 218 | 233 | // debug |
| 219 | | \\error: TheSkyIsFalling |
| 234 | \\error: TheSkyIsFalling |
| 220 | 235 | \\source.zig:12:5: [address] in make_error (test) |
| 221 | 236 | \\ return error.TheSkyIsFalling; |
| 222 | 237 | \\ ^ |
| ... | ... | @@ -232,7 +247,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void { |
| 232 | 247 | \\ |
| 233 | 248 | , |
| 234 | 249 | // release-safe |
| 235 | | \\error: TheSkyIsFalling |
| 250 | \\error: TheSkyIsFalling |
| 236 | 251 | \\source.zig:12:5: [address] in std.start.posixCallMainAndExit (test) |
| 237 | 252 | \\ return error.TheSkyIsFalling; |
| 238 | 253 | \\ ^ |
| ... | ... | @@ -248,14 +263,46 @@ pub fn addCases(cases: *tests.StackTracesContext) void { |
| 248 | 263 | \\ |
| 249 | 264 | , |
| 250 | 265 | // release-fast |
| 251 | | \\error: TheSkyIsFalling |
| 266 | \\error: TheSkyIsFalling |
| 252 | 267 | \\ |
| 253 | 268 | , |
| 254 | 269 | // release-small |
| 255 | | \\error: TheSkyIsFalling |
| 270 | \\error: TheSkyIsFalling |
| 256 | 271 | \\ |
| 257 | 272 | }, |
| 258 | 273 | ); |
| 274 | cases.addCase( |
| 275 | "dumpCurrentStackTrace", |
| 276 | source_dumpCurrentStackTrace, |
| 277 | [_][]const u8{ |
| 278 | // debug |
| 279 | \\source.zig:7:8: [address] in foo (test) |
| 280 | \\ bar(); |
| 281 | \\ ^ |
| 282 | \\source.zig:10:8: [address] in main (test) |
| 283 | \\ foo(); |
| 284 | \\ ^ |
| 285 | \\start.zig:247:29: [address] in std.start.posixCallMainAndExit (test) |
| 286 | \\ return root.main(); |
| 287 | \\ ^ |
| 288 | \\start.zig:114:5: [address] in std.start._start (test) |
| 289 | \\ @call(.{ .modifier = .never_inline }, posixCallMainAndExit, .{}); |
| 290 | \\ ^ |
| 291 | \\ |
| 292 | , |
| 293 | // release-safe |
| 294 | \\start.zig:114:5: [address] in std.start._start (test) |
| 295 | \\ @call(.{ .modifier = .never_inline }, posixCallMainAndExit, .{}); |
| 296 | \\ ^ |
| 297 | \\ |
| 298 | , |
| 299 | // release-fast |
| 300 | \\ |
| 301 | , |
| 302 | // release-small |
| 303 | \\ |
| 304 | }, |
| 305 | ); |
| 259 | 306 | }, |
| 260 | 307 | .macosx => { |
| 261 | 308 | cases.addCase( |
| ... | ... | @@ -263,25 +310,25 @@ pub fn addCases(cases: *tests.StackTracesContext) void { |
| 263 | 310 | source_return, |
| 264 | 311 | [_][]const u8{ |
| 265 | 312 | // debug |
| 266 | | \\error: TheSkyIsFalling |
| 313 | \\error: TheSkyIsFalling |
| 267 | 314 | \\source.zig:4:5: [address] in _main.0 (test.o) |
| 268 | 315 | \\ return error.TheSkyIsFalling; |
| 269 | 316 | \\ ^ |
| 270 | 317 | \\ |
| 271 | 318 | , |
| 272 | 319 | // release-safe |
| 273 | | \\error: TheSkyIsFalling |
| 320 | \\error: TheSkyIsFalling |
| 274 | 321 | \\source.zig:4:5: [address] in _main (test.o) |
| 275 | 322 | \\ return error.TheSkyIsFalling; |
| 276 | 323 | \\ ^ |
| 277 | 324 | \\ |
| 278 | 325 | , |
| 279 | 326 | // release-fast |
| 280 | | \\error: TheSkyIsFalling |
| 327 | \\error: TheSkyIsFalling |
| 281 | 328 | \\ |
| 282 | 329 | , |
| 283 | 330 | // release-small |
| 284 | | \\error: TheSkyIsFalling |
| 331 | \\error: TheSkyIsFalling |
| 285 | 332 | \\ |
| 286 | 333 | }, |
| 287 | 334 | ); |
| ... | ... | @@ -290,7 +337,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void { |
| 290 | 337 | source_try_return, |
| 291 | 338 | [_][]const u8{ |
| 292 | 339 | // debug |
| 293 | | \\error: TheSkyIsFalling |
| 340 | \\error: TheSkyIsFalling |
| 294 | 341 | \\source.zig:4:5: [address] in _foo (test.o) |
| 295 | 342 | \\ return error.TheSkyIsFalling; |
| 296 | 343 | \\ ^ |
| ... | ... | @@ -300,7 +347,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void { |
| 300 | 347 | \\ |
| 301 | 348 | , |
| 302 | 349 | // release-safe |
| 303 | | \\error: TheSkyIsFalling |
| 350 | \\error: TheSkyIsFalling |
| 304 | 351 | \\source.zig:4:5: [address] in _main (test.o) |
| 305 | 352 | \\ return error.TheSkyIsFalling; |
| 306 | 353 | \\ ^ |
| ... | ... | @@ -310,11 +357,11 @@ pub fn addCases(cases: *tests.StackTracesContext) void { |
| 310 | 357 | \\ |
| 311 | 358 | , |
| 312 | 359 | // release-fast |
| 313 | | \\error: TheSkyIsFalling |
| 360 | \\error: TheSkyIsFalling |
| 314 | 361 | \\ |
| 315 | 362 | , |
| 316 | 363 | // release-small |
| 317 | | \\error: TheSkyIsFalling |
| 364 | \\error: TheSkyIsFalling |
| 318 | 365 | \\ |
| 319 | 366 | }, |
| 320 | 367 | ); |
| ... | ... | @@ -323,7 +370,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void { |
| 323 | 370 | source_try_try_return_return, |
| 324 | 371 | [_][]const u8{ |
| 325 | 372 | // debug |
| 326 | | \\error: TheSkyIsFalling |
| 373 | \\error: TheSkyIsFalling |
| 327 | 374 | \\source.zig:12:5: [address] in _make_error (test.o) |
| 328 | 375 | \\ return error.TheSkyIsFalling; |
| 329 | 376 | \\ ^ |
| ... | ... | @@ -339,7 +386,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void { |
| 339 | 386 | \\ |
| 340 | 387 | , |
| 341 | 388 | // release-safe |
| 342 | | \\error: TheSkyIsFalling |
| 389 | \\error: TheSkyIsFalling |
| 343 | 390 | \\source.zig:12:5: [address] in _main (test.o) |
| 344 | 391 | \\ return error.TheSkyIsFalling; |
| 345 | 392 | \\ ^ |
| ... | ... | @@ -355,11 +402,11 @@ pub fn addCases(cases: *tests.StackTracesContext) void { |
| 355 | 402 | \\ |
| 356 | 403 | , |
| 357 | 404 | // release-fast |
| 358 | | \\error: TheSkyIsFalling |
| 405 | \\error: TheSkyIsFalling |
| 359 | 406 | \\ |
| 360 | 407 | , |
| 361 | 408 | // release-small |
| 362 | | \\error: TheSkyIsFalling |
| 409 | \\error: TheSkyIsFalling |
| 363 | 410 | \\ |
| 364 | 411 | }, |
| 365 | 412 | ); |
| ... | ... | @@ -370,7 +417,7 @@ pub fn addCases(cases: *tests.StackTracesContext) void { |
| 370 | 417 | source_return, |
| 371 | 418 | [_][]const u8{ |
| 372 | 419 | // debug |
| 373 | | \\error: TheSkyIsFalling |
| 420 | \\error: TheSkyIsFalling |
| 374 | 421 | \\source.zig:4:5: [address] in main (test.obj) |
| 375 | 422 | \\ return error.TheSkyIsFalling; |
| 376 | 423 | \\ ^ |
| ... | ... | @@ -380,11 +427,11 @@ pub fn addCases(cases: *tests.StackTracesContext) void { |
| 380 | 427 | // --disabled-- results in segmenetation fault |
| 381 | 428 | "", |
| 382 | 429 | // release-fast |
| 383 | | \\error: TheSkyIsFalling |
| 430 | \\error: TheSkyIsFalling |
| 384 | 431 | \\ |
| 385 | 432 | , |
| 386 | 433 | // release-small |
| 387 | | \\error: TheSkyIsFalling |
| 434 | \\error: TheSkyIsFalling |
| 388 | 435 | \\ |
| 389 | 436 | }, |
| 390 | 437 | ); |
| ... | ... | @@ -406,11 +453,11 @@ pub fn addCases(cases: *tests.StackTracesContext) void { |
| 406 | 453 | // --disabled-- results in segmenetation fault |
| 407 | 454 | "", |
| 408 | 455 | // release-fast |
| 409 | | \\error: TheSkyIsFalling |
| 456 | \\error: TheSkyIsFalling |
| 410 | 457 | \\ |
| 411 | 458 | , |
| 412 | 459 | // release-small |
| 413 | | \\error: TheSkyIsFalling |
| 460 | \\error: TheSkyIsFalling |
| 414 | 461 | \\ |
| 415 | 462 | }, |
| 416 | 463 | ); |
| ... | ... | @@ -438,11 +485,11 @@ pub fn addCases(cases: *tests.StackTracesContext) void { |
| 438 | 485 | // --disabled-- results in segmenetation fault |
| 439 | 486 | "", |
| 440 | 487 | // release-fast |
| 441 | | \\error: TheSkyIsFalling |
| 488 | \\error: TheSkyIsFalling |
| 442 | 489 | \\ |
| 443 | 490 | , |
| 444 | 491 | // release-small |
| 445 | | \\error: TheSkyIsFalling |
| 492 | \\error: TheSkyIsFalling |
| 446 | 493 | \\ |
| 447 | 494 | }, |
| 448 | 495 | ); |