summary refs log tree commit diff stats
path: root/tests/misc/tstrace.nim
blob: 00af0af69d056e711d6a98c0a767a90efd2cca14 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
discard """
exitcode: 1
output: '''
Traceback (most recent call last)
tstrace.nim(36)          tstrace
tstrace.nim(28)          recTest
tstrace.nim(28)          recTest
tstrace.nim(28)          recTest
tstrace.nim(28)          recTest
tstrace.nim(28)          recTest
tstrace.nim(28)          recTest
tstrace.nim(28)          recTest
tstrace.nim(28)          recTest
tstrace.nim(28)          recTest
tstrace.nim(28)          recTest
tstrace.nim(31)          recTest
SIGSEGV: Illegal storage access. (Attempt to read from nil?)
'''
"""

# Test the new stacktraces (great for debugging!)

{.push stack_trace: on.}

proc recTest(i: int) =
  # enter
  if i < 10:
    recTest(i+1)
  else: # should printStackTrace()
    var p: ptr int = nil
    p[] = 12
  # leave

{.pop.}

recTest(0)