-
frame.f_code.co_filename is a qualified filename with no leading / for frozen modules.
-
attempring to access frame_f_locals in a frozen module causes a crash on ESP32, possibly caused by the fact that mpy files are not compiled with "debug symbols"/ access to local names.
import sys
from collections import OrderedDict as OD
try:
import neopixel
from machine import Pin
np = neopixel.NeoPixel(Pin(15), 10)
except ImportError:
print("neopixel module not found. Skipping NeoPixel initialization.")
np = None
import asyncio
def tracer(frame, event, arg):
try:
try:
filename = frame.f_code.co_filename
co_name = frame.f_code.co_name
except:
filename = "<unknown>"
co_name = "<unknown>"
print(f"[{event:<10}] ({filename} {co_name} {frame.f_lineno} , {frame.f_lasti} ) ")
# accessing locals this way crashes the ESP32 (dsee below)
# f_locals = OD(sorted(frame.f_locals.items()))
# print(f"{f_locals}")
# del f_locals
except Exception as e:
pass
return tracer
def f_normal(n):
i = 0
while i < n:
print(i)
i += 1
async def blink(num, period_ms):
while True and np:
np[num] = (255, 0, 0)
np.write()
await asyncio.sleep_ms(period_ms)
np[num] = (0, 0, 0)
np.write()
await asyncio.sleep_ms(period_ms)
async def a_main():
asyncio.create_task(blink(1, 700))
asyncio.create_task(blink(2, 1700))
await asyncio.sleep_ms(10_000)
def call_frozen(n):
if np:
np.fill((0, 0, 0))
np.write()
print("*" * 40)
asyncio.run(a_main())
print("="*40)
print("Tracing normal function")
print("="*40)
sys.settrace(tracer)
# f_normal(1)
call_frozen(1)
sys.settrace(None)
print("="*40)
mpremote run src/check_settrace.py
========================================
Tracing normal function
========================================
[call ] (<stdin> call_frozen 51 , 0 )
[line ] (<stdin> call_frozen 52 , 0 )
[call ] (neopixel.py __len__ 1 , 0 )
[line ] (neopixel.py __len__ 1 , 0 )
[return ] (neopixel.py __len__ 1 , 1 )
[line ] (<stdin> call_frozen 53 , 0 )
[call ] (neopixel.py fill 1 , 0 )
[line ] (neopixel.py fill 1 , 0 )
[return ] (neopixel.py fill 1 , 27 )
[line ] (<stdin> call_frozen 54 , 10 )
[call ] (neopixel.py write 1 , 0 )
[line ] (neopixel.py write 1 , 0 )
[return ] (neopixel.py write 1 , 12 )
[line ] (<stdin> call_frozen 55 , 17 )
****************************************
[line ] (<stdin> call_frozen 56 , 26 )
[call ] (asyncio/core.py run 1 , 0 )
[line ] (asyncio/core.py run 1 , 0 )
[call ] (asyncio/core.py create_task 1 , 0 )
[line ] (asyncio/core.py create_task 1 , 0 )
[return ] (asyncio/core.py create_task 1 , 31 )
[call ] (asyncio/core.py run_until_complete 1 , 0 )
[line ] (asyncio/core.py run_until_complete 1 , 0 )
[call ] (asyncio/core.py wait_io_event 1 , 0 )
[line ] (asyncio/core.py wait_io_event 1 , 0 )
[return ] (asyncio/core.py wait_io_event 1 , 9 )
[call ] (<stdin> a_main 46 , 0 )
[line ] (<stdin> a_main 47 , 0 )
[call ] (asyncio/core.py create_task 1 , 0 )
[line ] (asyncio/core.py create_task 1 , 0 )
[return ] (asyncio/core.py create_task 1 , 31 )
[line ] (<stdin> a_main 48 , 12 )
[call ] (asyncio/core.py create_task 1 , 0 )
[line ] (asyncio/core.py create_task 1 , 0 )
[return ] (asyncio/core.py create_task 1 , 31 )
[line ] (<stdin> a_main 49 , 27 )
[call ] (asyncio/core.py sleep_ms 1 , 0 )
[line ] (asyncio/core.py sleep_ms 1 , 0 )
[return ] (asyncio/core.py sleep_ms 1 , 15 )
[call ] (asyncio/core.py __iter__ 1 , 0 )
[line ] (asyncio/core.py __iter__ 1 , 0 )
[return ] (asyncio/core.py __iter__ 1 , 0 )
[call ] (asyncio/core.py __next__ 1 , 0 )
[line ] (asyncio/core.py __next__ 1 , 0 )
[return ] (asyncio/core.py __next__ 1 , 22 )
[call ] (asyncio/core.py wait_io_event 1 , 0 )
[line ] (asyncio/core.py wait_io_event 1 , 0 )
[return ] (asyncio/core.py wait_io_event 1 , 9 )
[call ] (<stdin> blink 37 , 0 )
[line ] (<stdin> blink 38 , 0 )
[line ] (<stdin> blink 44 , 0 )
[call ] (neopixel.py __len__ 1 , 0 )
[line ] (neopixel.py __len__ 1 , 0 )
[return ] (neopixel.py __len__ 1 , 1 )
[line ] (<stdin> blink 39 , 0 )
[call ] (neopixel.py __setitem__ 1 , 0 )
[line ] (neopixel.py __setitem__ 1 , 0 )
[return ] (neopixel.py __setitem__ 1 , 22 )
[line ] (<stdin> blink 40 , 0 )
[call ] (neopixel.py write 1 , 0 )
[line ] (neopixel.py write 1 , 0 )
[return ] (neopixel.py write 1 , 12 )
[line ] (<stdin> blink 41 , 12 )
[call ] (asyncio/core.py sleep_ms 1 , 0 )
[line ] (asyncio/core.py sleep_ms 1 , 0 )
[return ] (asyncio/core.py sleep_ms 1 , 15 )
[call ] (asyncio/core.py __iter__ 1 , 0 )
[line ] (asyncio/core.py __iter__ 1 , 0 )
[return ] (asyncio/core.py __iter__ 1 , 0 )
[call ] (asyncio/core.py __next__ 1 , 0 )
[line ] (asyncio/core.py __next__ 1 , 0 )
[return ] (asyncio/core.py __next__ 1 , 22 )
[call ] (asyncio/core.py wait_io_event 1 , 0 )
[line ] (asyncio/core.py wait_io_event 1 , 0 )
[return ] (asyncio/core.py wait_io_event 1 , 9 )
[call ] (<stdin> blink 37 , 0 )
[line ] (<stdin> blink 38 , 0 )
[line ] (<stdin> blink 44 , 0 )
[call ] (neopixel.py __len__ 1 , 0 )
[line ] (neopixel.py __len__ 1 , 0 )
[return ] (neopixel.py __len__ 1 , 1 )
[line ] (<stdin> blink 39 , 0 )
[call ] (neopixel.py __setitem__ 1 , 0 )
[line ] (neopixel.py __setitem__ 1 , 0 )
[return ] (neopixel.py __setitem__ 1 , 22 )
[line ] (<stdin> blink 40 , 0 )
[call ] (neopixel.py write 1 , 0 )
[line ] (neopixel.py write 1 , 0 )
[return ] (neopixel.py write 1 , 12 )
[line ] (<stdin> blink 41 , 12 )
[call ] (asyncio/core.py sleep_ms 1 , 0 )
[line ] (asyncio/core.py sleep_ms 1 , 0 )
[return ] (asyncio/core.py sleep_ms 1 , 15 )
[call ] (asyncio/core.py __iter__ 1 , 0 )
[line ] (asyncio/core.py __iter__ 1 , 0 )
[return ] (asyncio/core.py __iter__ 1 , 0 )
[call ] (asyncio/core.py __next__ 1 , 0 )
[line ] (asyncio/core.py __next__ 1 , 0 )
[return ] (asyncio/core.py __next__ 1 , 22 )
[call ] (asyncio/core.py wait_io_event 1 , 0 )
[line ] (asyncio/core.py wait_io_event 1 , 0 )
[return ] (asyncio/core.py wait_io_event 1 , 9 )
[call ] (asyncio/core.py wait_io_event 1 , 0 )
[line ] (asyncio/core.py wait_io_event 1 , 0 )
[return ] (asyncio/core.py wait_io_event 1 , 9 )
[call ] (<stdin> blink 41 , 24 )
[line ] (<stdin> blink 41 , 24 )
[call ] (asyncio/core.py __next__ 1 , 0 )
[line ] (asyncio/core.py __next__ 1 , 0 )
[exception ] (asyncio/core.py __next__ 1 , 33 )
[line ] (<stdin> blink 42 , 24 )
[call ] (neopixel.py __setitem__ 1 , 0 )
[line ] (neopixel.py __setitem__ 1 , 0 )
[return ] (neopixel.py __setitem__ 1 , 22 )
[line ] (<stdin> blink 43 , 24 )
[call ] (neopixel.py write 1 , 0 )
[line ] (neopixel.py write 1 , 0 )
[return ] (neopixel.py write 1 , 12 )
[line ] (<stdin> blink 44 , 36 )
[call ] (asyncio/core.py sleep_ms 1 , 0 )
[line ] (asyncio/core.py sleep_ms 1 , 0 )
[return ] (asyncio/core.py sleep_ms 1 , 15 )
[call ] (asyncio/core.py __iter__ 1 , 0 )
[line ] (asyncio/core.py __iter__ 1 , 0 )
[return ] (asyncio/core.py __iter__ 1 , 0 )
[call ] (asyncio/core.py __next__ 1 , 0 )
[line ] (asyncio/core.py __next__ 1 , 0 )
[return ] (asyncio/core.py __next__ 1 , 22 )
[call ] (asyncio/core.py wait_io_event 1 , 0 )
[line ] (asyncio/core.py wait_io_event 1 , 0 )
[return ] (asyncio/core.py wait_io_event 1 , 9 )
[call ] (asyncio/core.py wait_io_event 1 , 0 )
[line ] (asyncio/core.py wait_io_event 1 , 0 )
[return ] (asyncio/core.py wait_io_event 1 , 9 )
[call ] (<stdin> blink 44 , 48 )
[line ] (<stdin> blink 44 , 48 )
[call ] (asyncio/core.py __next__ 1 , 0 )
[line ] (asyncio/core.py __next__ 1 , 0 )
[exception ] (asyncio/core.py __next__ 1 , 33 )
[call ] (neopixel.py __len__ 1 , 0 )
[line ] (neopixel.py __len__ 1 , 0 )
[return ] (neopixel.py __len__ 1 , 1 )
[line ] (<stdin> blink 39 , 48 )
[call ] (neopixel.py __setitem__ 1 , 0 )
[line ] (neopixel.py __setitem__ 1 , 0 )
[return ] (neopixel.py __setitem__ 1 , 22 )
[line ] (<stdin> blink 40 , 48 )
[call ] (neopixel.py write 1 , 0 )
[line ] (neopixel.py write 1 , 0 )
[return ] (neopixel.py write 1 , 12 )
[line ] (<stdin> blink 41 , 12 )
[call ] (asyncio/core.py sleep_ms 1 , 0 )
[line ] (asyncio/core.py sleep_ms 1 , 0 )
[return ] (asyncio/core.py sleep_ms 1 , 15 )
[call ] (asyncio/core.py __iter__ 1 , 0 )
[line ] (asyncio/core.py __iter__ 1 , 0 )
[return ] (asyncio/core.py __iter__ 1 , 0 )
[call ] (asyncio/core.py __next__ 1 , 0 )
[line ] (asyncio/core.py __next__ 1 , 0 )
[return ] (asyncio/core.py __next__ 1 , 22 )
[call ] (asyncio/core.py wait_io_event 1 , 0 )
[line ] (asyncio/core.py wait_io_event 1 , 0 )
[return ] (asyncio/core.py wait_io_event 1 , 9 )
[call ] (asyncio/core.py wait_io_event 1 , 0 )
[line ] (asyncio/core.py wait_io_event 1 , 0 )
[return ] (asyncio/core.py wait_io_event 1 , 9 )
[call ] (<stdin> blink 41 , 24 )
[line ] (<stdin> blink 41 , 24 )
[call ] (asyncio/core.py __next__ 1 , 0 )
[line ] (asyncio/core.py __next__ 1 , 0 )
[exception ] (asyncio/core.py __next__ 1 , 33 )
[line ] (<stdin> blink 42 , 24 )
[call ] (neopixel.py __setitem__ 1 , 0 )
[line ] (neopixel.py __setitem__ 1 , 0 )
[return ] (neopixel.py __setitem__ 1 , 22 )
[line ] (<stdin> blink 43 , 24 )
[call ] (neopixel.py write 1 , 0 )
[line ] (neopixel.py write 1 , 0 )
[return ] (neopixel.py write 1 , 12 )
[line ] (<stdin> blink 44 , 36 )
[call ] (asyncio/core.py sleep_ms 1 , 0 )
[line ] (asyncio/core.py sleep_ms 1 , 0 )
[return ] (asyncio/core.py sleep_ms 1 , 15 )
[call ] (asyncio/core.py __iter__ 1 , 0 )
[line ] (asyncio/core.py __iter__ 1 , 0 )
[return ] (asyncio/core.py __iter__ 1 , 0 )
[call ] (asyncio/core.py __next__ 1 , 0 )
[line ] (asyncio/core.py __next__ 1 , 0 )
[return ] (asyncio/core.py __next__ 1 , 22 )
[call ] (asyncio/core.py wait_io_event 1 , 0 )
[line ] (asyncio/core.py wait_io_event 1 , 0 )
[return ] (asyncio/core.py wait_io_event 1 , 9 )
[call ] (asyncio/core.py wait_io_event 1 , 0 )
[line ] (asyncio/core.py wait_io_event 1 , 0 )
[return ] (asyncio/core.py wait_io_event 1 , 9 )
[call ] (<stdin> blink 41 , 24 )
[line ] (<stdin> blink 41 , 24 )
[call ] (asyncio/core.py __next__ 1 , 0 )
[line ] (asyncio/core.py __next__ 1 , 0 )
[exception ] (asyncio/core.py __next__ 1 , 33 )
[line ] (<stdin> blink 42 , 24 )
[call ] (neopixel.py __setitem__ 1 , 0 )
[line ] (neopixel.py __setitem__ 1 , 0 )
[return ] (neopixel.py __setitem__ 1 , 22 )
[line ] (<stdin> blink 43 , 24 )
[call ] (neopixel.py write 1 , 0 )
[line ] (neopixel.py write 1 , 0 )
[return ] (neopixel.py write 1 , 12 )
[line ] (<stdin> blink 44 , 36 )
[call ] (asyncio/core.py sleep_ms 1 , 0 )
[line ] (asyncio/core.py sleep_ms 1 , 0 )
[return ] (asyncio/core.py sleep_ms 1 , 15 )
[call ] (asyncio/core.py __iter__ 1 , 0 )
[line ] (asyncio/core.py __iter__ 1 , 0 )
[return ] (asyncio/core.py __iter__ 1 , 0 )
[call ] (asyncio/core.py __next__ 1 , 0 )
[line ] (asyncio/core.py __next__ 1 , 0 )
[return ] (asyncio/core.py __next__ 1 , 22 )
[call ] (asyncio/core.py wait_io_event 1 , 0 )
[line ] (asyncio/core.py wait_io_event 1 , 0 )
[return ] (asyncio/core.py wait_io_event 1 , 9 )
[call ] (asyncio/core.py wait_io_event 1 , 0 )
[line ] (asyncio/core.py wait_io_event 1 , 0 )
[return ] (asyncio/core.py wait_io_event 1 , 9 )
[call ] (<stdin> blink 44 , 48 )
[line ] (<stdin> blink 44 , 48 )
[call ] (asyncio/core.py __next__ 1 , 0 )
[line ] (asyncio/core.py __next__ 1 , 0 )
[exception ] (asyncio/core.py __next__ 1 , 33 )
[call ] (neopixel.py __len__ 1 , 0 )
[line ] (neopixel.py __len__ 1 , 0 )
[return ] (neopixel.py __len__ 1 , 1 )
[line ] (<stdin> blink 39 , 48 )
[call ] (neopixel.py __setitem__ 1 , 0 )
[line ] (neopixel.py __setitem__ 1 , 0 )
[return ] (neopixel.py __setitem__ 1 , 22 )
[line ] (<stdin> blink 40 , 48 )
[call ] (neopixel.py write 1 , 0 )
[line ] (neopixel.py write 1 , 0 )
[return ] (neopixel.py write 1 , 12 )
[line ] (<stdin> blink 41 , 12 )
[call ] (asyncio/core.py sleep_ms 1 , 0 )
[line ] (asyncio/core.py sleep_ms 1 , 0 )
[return ] (asyncio/core.py sleep_ms 1 , 15 )
[call ] (asyncio/core.py __iter__ 1 , 0 )
[line ] (asyncio/core.py __iter__ 1 , 0 )
[return ] (asyncio/core.py __iter__ 1 , 0 )
[call ] (asyncio/core.py __next__ 1 , 0 )
[line ] (asyncio/core.py __next__ 1 , 0 )
[return ] (asyncio/core.py __next__ 1 , 22 )
[call ] (asyncio/core.py wait_io_event 1 , 0 )
[line ] (asyncio/core.py wait_io_event 1 , 0 )
[return ] (asyncio/core.py wait_io_event 1 , 9 )
[call ] (asyncio/core.py wait_io_event 1 , 0 )
[line ] (asyncio/core.py wait_io_event 1 , 0 )
[return ] (asyncio/core.py wait_io_event 1 , 9 )
[call ] (<stdin> blink 44 , 48 )
[line ] (<stdin> blink 44 , 48 )
[call ] (asyncio/core.py __next__ 1 , 0 )
[line ] (asyncio/core.py __next__ 1 , 0 )
[exception ] (asyncio/core.py __next__ 1 , 33 )
[call ] (neopixel.py __len__ 1 , 0 )
[line ] (neopixel.py __len__ 1 , 0 )
[return ] (neopixel.py __len__ 1 , 1 )
[line ] (<stdin> blink 39 , 48 )
[call ] (neopixel.py __setitem__ 1 , 0 )
[line ] (neopixel.py __setitem__ 1 , 0 )
[return ] (neopixel.py __setitem__ 1 , 22 )
[line ] (<stdin> blink 40 , 48 )
[call ] (neopixel.py write 1 , 0 )
[line ] (neopixel.py write 1 , 0 )
[return ] (neopixel.py write 1 , 12 )
[line ] (<stdin> blink 41 , 12 )
[call ] (asyncio/core.py sleep_ms 1 , 0 )
[line ] (asyncio/core.py sleep_ms 1 , 0 )
[return ] (asyncio/core.py sleep_ms 1 , 15 )
[call ] (asyncio/core.py __iter__ 1 , 0 )
[line ] (asyncio/core.py __iter__ 1 , 0 )
[return ] (asyncio/core.py __iter__ 1 , 0 )
[call ] (asyncio/core.py __next__ 1 , 0 )
[line ] (asyncio/core.py __next__ 1 , 0 )
[return ] (asyncio/core.py __next__ 1 , 22 )
[call ] (asyncio/core.py wait_io_event 1 , 0 )
[line ] (asyncio/core.py wait_io_event 1 , 0 )
[return ] (asyncio/core.py wait_io_event 1 , 9 )
[call ] (asyncio/core.py wait_io_event 1 , 0 )
[line ] (asyncio/core.py wait_io_event 1 , 0 )
[return ] (asyncio/core.py wait_io_event 1 , 9 )
[call ] (<stdin> blink 41 , 24 )
[line ] (<stdin> blink 41 , 24 )
[call ] (asyncio/core.py __next__ 1 , 0 )
[line ] (asyncio/core.py __next__ 1 , 0 )
[exception ] (asyncio/core.py __next__ 1 , 33 )
[line ] (<stdin> blink 42 , 24 )
[call ] (neopixel.py __setitem__ 1 , 0 )
[line ] (neopixel.py __setitem__ 1 , 0 )
[return ] (neopixel.py __setitem__ 1 , 22 )
[line ] (<stdin> blink 43 , 24 )
[call ] (neopixel.py write 1 , 0 )
[line ] (neopixel.py write 1 , 0 )
[return ] (neopixel.py write 1 , 12 )
[line ] (<stdin> blink 44 , 36 )
[call ] (asyncio/core.py sleep_ms 1 , 0 )
[line ] (asyncio/core.py sleep_ms 1 , 0 )
[return ] (asyncio/core.py sleep_ms 1 , 15 )
[call ] (asyncio/core.py __iter__ 1 , 0 )
[line ] (asyncio/core.py __iter__ 1 , 0 )
[return ] (asyncio/core.py __iter__ 1 , 0 )
[call ] (asyncio/core.py __next__ 1 , 0 )
[line ] (asyncio/core.py __next__ 1 , 0 )
[return ] (asyncio/core.py __next__ 1 , 22 )
[call ] (asyncio/core.py wait_io_event 1 , 0 )
[line ] (asyncio/core.py wait_io_event 1 , 0 )
[return ] (asyncio/core.py wait_io_event 1 , 9 )
[call ] (asyncio/core.py wait_io_event 1 , 0 )
[line ] (asyncio/core.py wait_io_event 1 , 0 )
[return ] (asyncio/core.py wait_io_event 1 , 9 )
[call ] (<stdin> blink 44 , 48 )
[line ] (<stdin> blink 44 , 48 )
[call ] (asyncio/core.py __next__ 1 , 0 )
[line ] (asyncio/core.py __next__ 1 , 0 )
[exception ] (asyncio/core.py __next__ 1 , 33 )
[call ] (neopixel.py __len__ 1 , 0 )
[line ] (neopixel.py __len__ 1 , 0 )
[return ] (neopixel.py __len__ 1 , 1 )
[line ] (<stdin> blink 39 , 48 )
[call ] (neopixel.py __setitem__ 1 , 0 )
[line ] (neopixel.py __setitem__ 1 , 0 )
[return ] (neopixel.py __setitem__ 1 , 22 )
[line ] (<stdin> blink 40 , 48 )
[call ] (neopixel.py write 1 , 0 )
[line ] (neopixel.py write 1 , 0 )
[return ] (neopixel.py write 1 , 12 )
[line ] (<stdin> blink 41 , 12 )
[call ] (asyncio/core.py sleep_ms 1 , 0 )
[line ] (asyncio/core.py sleep_ms 1 , 0 )
[return ] (asyncio/core.py sleep_ms 1 , 15 )
[call ] (asyncio/core.py __iter__ 1 , 0 )
[line ] (asyncio/core.py __iter__ 1 , 0 )
[return ] (asyncio/core.py __iter__ 1 , 0 )
[call ] (asyncio/core.py __next__ 1 , 0 )
[line ] (asyncio/core.py __next__ 1 , 0 )
[return ] (asyncio/core.py __next__ 1 , 22 )
[call ] (asyncio/core.py wait_io_event 1 , 0 )
[line ] (asyncio/core.py wait_io_event 1 , 0 )
[return ] (asyncio/core.py wait_io_event 1 , 9 )
[call ] (asyncio/core.py wait_io_event 1 , 0 )
[line ] (asyncio/core.py wait_io_event 1 , 0 )
[return ] (asyncio/core.py wait_io_event 1 , 9 )
[call ] (<stdin> blink 41 , 24 )
[line ] (<stdin> blink 41 , 24 )
[call ] (asyncio/core.py __next__ 1 , 0 )
[line ] (asyncio/core.py __next__ 1 , 0 )
[exception ] (asyncio/core.py __next__ 1 , 33 )
[line ] (<stdin> blink 42 , 24 )
[call ] (neopixel.py __setitem__ 1 , 0 )
[line ] (neopixel.py __setitem__ 1 , 0 )
[return ] (neopixel.py __setitem__ 1 , 22 )
[line ] (<stdin> blink 43 , 24 )
[call ] (neopixel.py write 1 , 0 )
[line ] (neopixel.py write 1 , 0 )
[return ] (neopixel.py write 1 , 12 )
[line ] (<stdin> blink 44 , 36 )
[call ] (asyncio/core.py sleep_ms 1 , 0 )
[line ] (asyncio/core.py sleep_ms 1 , 0 )
[return ] (asyncio/core.py sleep_ms 1 , 15 )
[call ] (asyncio/core.py __iter__ 1 , 0 )
[line ] (asyncio/core.py __iter__ 1 , 0 )
[return ] (asyncio/core.py __iter__ 1 , 0 )
[call ] (asyncio/core.py __next__ 1 , 0 )
[line ] (asyncio/core.py __next__ 1 , 0 )
[return ] (asyncio/core.py __next__ 1 , 22 )
[call ] (asyncio/core.py wait_io_event 1 , 0 )
[line ] (asyncio/core.py wait_io_event 1 , 0 )
[return ] (asyncio/core.py wait_io_event 1 , 9 )
[call ] (<stdin> blink 41 , 24 )
[line ] (<stdin> blink 41 , 24 )
[call ] (asyncio/core.py __next__ 1 , 0 )
[line ] (asyncio/core.py __next__ 1 , 0 )
[exception ] (asyncio/core.py __next__ 1 , 33 )
[line ] (<stdin> blink 42 , 24 )
[call ] (neopixel.py __setitem__ 1 , 0 )
[line ] (neopixel.py __setitem__ 1 , 0 )
[return ] (neopixel.py __setitem__ 1 , 22 )
[line ] (<stdin> blink 43 , 24 )
[call ] (neopixel.py write 1 , 0 )
[line ] (neopixel.py write 1 , 0 )
[return ] (neopixel.py write 1 , 12 )
[line ] (<stdin> blink 44 , 36 )
[call ] (asyncio/core.py sleep_ms 1 , 0 )
[line ] (asyncio/core.py sleep_ms 1 , 0 )
[return ] (asyncio/core.py sleep_ms 1 , 15 )
[call ] (asyncio/core.py __iter__ 1 , 0 )
[line ] (asyncio/core.py __iter__ 1 , 0 )
[return ] (asyncio/core.py __iter__ 1 , 0 )
[call ] (asyncio/core.py __next__ 1 , 0 )
[line ] (asyncio/core.py __next__ 1 , 0 )
[return ] (asyncio/core.py __next__ 1 , 22 )
[call ] (asyncio/core.py wait_io_event 1 , 0 )
[line ] (asyncio/core.py wait_io_event 1 , 0 )
[return ] (asyncio/core.py wait_io_event 1 , 9 )
[call ] (asyncio/core.py wait_io_event 1 , 0 )
[line ] (asyncio/core.py wait_io_event 1 , 0 )
[return ] (asyncio/core.py wait_io_event 1 , 9 )
[call ] (<stdin> blink 44 , 48 )
[line ] (<stdin> blink 44 , 48 )
[call ] (asyncio/core.py __next__ 1 , 0 )
[line ] (asyncio/core.py __next__ 1 , 0 )
[exception ] (asyncio/core.py __next__ 1 , 33 )
[call ] (neopixel.py __len__ 1 , 0 )
[line ] (neopixel.py __len__ 1 , 0 )
[return ] (neopixel.py __len__ 1 , 1 )
[line ] (<stdin> blink 39 , 48 )
[call ] (neopixel.py __setitem__ 1 , 0 )
[line ] (neopixel.py __setitem__ 1 , 0 )
[return ] (neopixel.py __setitem__ 1 , 22 )
[line ] (<stdin> blink 40 , 48 )
[call ] (neopixel.py write 1 , 0 )
[line ] (neopixel.py write 1 , 0 )
[return ] (neopixel.py write 1 , 12 )
[line ] (<stdin> blink 41 , 12 )
[call ] (asyncio/core.py sleep_ms 1 , 0 )
[line ] (asyncio/core.py sleep_ms 1 , 0 )
[return ] (asyncio/core.py sleep_ms 1 , 15 )
[call ] (asyncio/core.py __iter__ 1 , 0 )
[line ] (asyncio/core.py __iter__ 1 , 0 )
[return ] (asyncio/core.py __iter__ 1 , 0 )
[call ] (asyncio/core.py __next__ 1 , 0 )
[line ] (asyncio/core.py __next__ 1 , 0 )
[return ] (asyncio/core.py __next__ 1 , 22 )
[call ] (asyncio/core.py wait_io_event 1 , 0 )
[line ] (asyncio/core.py wait_io_event 1 , 0 )
[return ] (asyncio/core.py wait_io_event 1 , 9 )
[call ] (asyncio/core.py wait_io_event 1 , 0 )
[line ] (asyncio/core.py wait_io_event 1 , 0 )
[return ] (asyncio/core.py wait_io_event 1 , 9 )
[call ] (<stdin> blink 41 , 24 )
[line ] (<stdin> blink 41 , 24 )
[call ] (asyncio/core.py __next__ 1 , 0 )
[line ] (asyncio/core.py __next__ 1 , 0 )
[exception ] (asyncio/core.py __next__ 1 , 33 )
[line ] (<stdin> blink 42 , 24 )
[call ] (neopixel.py __setitem__ 1 , 0 )
[line ] (neopixel.py __setitem__ 1 , 0 )
[return ] (neopixel.py __setitem__ 1 , 22 )
[line ] (<stdin> blink 43 , 24 )
[call ] (neopixel.py write 1 , 0 )
[line ] (neopixel.py write 1 , 0 )
[return ] (neopixel.py write 1 , 12 )
[line ] (<stdin> blink 44 , 36 )
[call ] (asyncio/core.py sleep_ms 1 , 0 )
[line ] (asyncio/core.py sleep_ms 1 , 0 )
[return ] (asyncio/core.py sleep_ms 1 , 15 )
[call ] (asyncio/core.py __iter__ 1 , 0 )
[line ] (asyncio/core.py __iter__ 1 , 0 )
[return ] (asyncio/core.py __iter__ 1 , 0 )
[call ] (asyncio/core.py __next__ 1 , 0 )
[line ] (asyncio/core.py __next__ 1 , 0 )
[return ] (asyncio/core.py __next__ 1 , 22 )
[call ] (asyncio/core.py wait_io_event 1 , 0 )
[line ] (asyncio/core.py wait_io_event 1 , 0 )
[return ] (asyncio/core.py wait_io_event 1 , 9 )
[call ] (<stdin> blink 44 , 48 )
[line ] (<stdin> blink 44 , 48 )
[call ] (asyncio/core.py __next__ 1 , 0 )
[line ] (asyncio/core.py __next__ 1 , 0 )
[exception ] (asyncio/core.py __next__ 1 , 33 )
[call ] (neopixel.py __len__ 1 , 0 )
[line ] (neopixel.py __len__ 1 , 0 )
[return ] (neopixel.py __len__ 1 , 1 )
[line ] (<stdin> blink 39 , 48 )
[call ] (neopixel.py __setitem__ 1 , 0 )
[line ] (neopixel.py __setitem__ 1 , 0 )
[return ] (neopixel.py __setitem__ 1 , 22 )
[line ] (<stdin> blink 40 , 48 )
[call ] (neopixel.py write 1 , 0 )
[line ] (neopixel.py write 1 , 0 )
[return ] (neopixel.py write 1 , 12 )
[line ] (<stdin> blink 41 , 12 )
[call ] (asyncio/core.py sleep_ms 1 , 0 )
[line ] (asyncio/core.py sleep_ms 1 , 0 )
[return ] (asyncio/core.py sleep_ms 1 , 15 )
[call ] (asyncio/core.py __iter__ 1 , 0 )
[line ] (asyncio/core.py __iter__ 1 , 0 )
[return ] (asyncio/core.py __iter__ 1 , 0 )
[call ] (asyncio/core.py __next__ 1 , 0 )
[line ] (asyncio/core.py __next__ 1 , 0 )
[return ] (asyncio/core.py __next__ 1 , 22 )
[call ] (asyncio/core.py wait_io_event 1 , 0 )
[line ] (asyncio/core.py wait_io_event 1 , 0 )
[return ] (asyncio/core.py wait_io_event 1 , 9 )
[call ] (asyncio/core.py wait_io_event 1 , 0 )
[line ] (asyncio/core.py wait_io_event 1 , 0 )
[return ] (asyncio/core.py wait_io_event 1 , 9 )
[call ] (<stdin> blink 44 , 48 )
[line ] (<stdin> blink 44 , 48 )
[call ] (asyncio/core.py __next__ 1 , 0 )
[line ] (asyncio/core.py __next__ 1 , 0 )
[exception ] (asyncio/core.py __next__ 1 , 33 )
[call ] (neopixel.py __len__ 1 , 0 )
[line ] (neopixel.py __len__ 1 , 0 )
[return ] (neopixel.py __len__ 1 , 1 )
[line ] (<stdin> blink 39 , 48 )
[call ] (neopixel.py __setitem__ 1 , 0 )
[line ] (neopixel.py __setitem__ 1 , 0 )
[return ] (neopixel.py __setitem__ 1 , 22 )
[line ] (<stdin> blink 40 , 48 )
[call ] (neopixel.py write 1 , 0 )
[line ] (neopixel.py write 1 , 0 )
[return ] (neopixel.py write 1 , 12 )
[line ] (<stdin> blink 41 , 12 )
[call ] (asyncio/core.py sleep_ms 1 , 0 )
[line ] (asyncio/core.py sleep_ms 1 , 0 )
[return ] (asyncio/core.py sleep_ms 1 , 15 )
[call ] (asyncio/core.py __iter__ 1 , 0 )
[line ] (asyncio/core.py __iter__ 1 , 0 )
[return ] (asyncio/core.py __iter__ 1 , 0 )
[call ] (asyncio/core.py __next__ 1 , 0 )
[line ] (asyncio/core.py __next__ 1 , 0 )
[return ] (asyncio/core.py __next__ 1 , 22 )
[call ] (asyncio/core.py wait_io_event 1 , 0 )
[line ] (asyncio/core.py wait_io_event 1 , 0 )
[return ] (asyncio/core.py wait_io_event 1 , 9 )
[call ] (asyncio/core.py wait_io_event 1 , 0 )
[line ] (asyncio/core.py wait_io_event 1 , 0 )
[return ] (asyncio/core.py wait_io_event 1 , 9 )
[call ] (<stdin> blink 41 , 24 )
[line ] (<stdin> blink 41 , 24 )
[call ] (asyncio/core.py __next__ 1 , 0 )
[line ] (asyncio/core.py __next__ 1 , 0 )
[exception ] (asyncio/core.py __next__ 1 , 33 )
[line ] (<stdin> blink 42 , 24 )
[call ] (neopixel.py __setitem__ 1 , 0 )
[line ] (neopixel.py __setitem__ 1 , 0 )
[return ] (neopixel.py __setitem__ 1 , 22 )
[line ] (<stdin> blink 43 , 24 )
[call ] (neopixel.py write 1 , 0 )
[line ] (neopixel.py write 1 , 0 )
[return ] (neopixel.py write 1 , 12 )
[line ] (<stdin> blink 44 , 36 )
[call ] (asyncio/core.py sleep_ms 1 , 0 )
[line ] (asyncio/core.py sleep_ms 1 , 0 )
[return ] (asyncio/core.py sleep_ms 1 , 15 )
[call ] (asyncio/core.py __iter__ 1 , 0 )
[line ] (asyncio/core.py __iter__ 1 , 0 )
[return ] (asyncio/core.py __iter__ 1 , 0 )
[call ] (asyncio/core.py __next__ 1 , 0 )
[line ] (asyncio/core.py __next__ 1 , 0 )
[return ] (asyncio/core.py __next__ 1 , 22 )
[call ] (asyncio/core.py wait_io_event 1 , 0 )
[line ] (asyncio/core.py wait_io_event 1 , 0 )
[return ] (asyncio/core.py wait_io_event 1 , 9 )
[call ] (asyncio/core.py wait_io_event 1 , 0 )
[line ] (asyncio/core.py wait_io_event 1 , 0 )
[return ] (asyncio/core.py wait_io_event 1 , 9 )
[call ] (<stdin> blink 41 , 24 )
[line ] (<stdin> blink 41 , 24 )
[call ] (asyncio/core.py __next__ 1 , 0 )
[line ] (asyncio/core.py __next__ 1 , 0 )
[exception ] (asyncio/core.py __next__ 1 , 33 )
[line ] (<stdin> blink 42 , 24 )
[call ] (neopixel.py __setitem__ 1 , 0 )
[line ] (neopixel.py __setitem__ 1 , 0 )
[return ] (neopixel.py __setitem__ 1 , 22 )
[line ] (<stdin> blink 43 , 24 )
[call ] (neopixel.py write 1 , 0 )
[line ] (neopixel.py write 1 , 0 )
[return ] (neopixel.py write 1 , 12 )
[line ] (<stdin> blink 44 , 36 )
[call ] (asyncio/core.py sleep_ms 1 , 0 )
[line ] (asyncio/core.py sleep_ms 1 , 0 )
[return ] (asyncio/core.py sleep_ms 1 , 15 )
[call ] (asyncio/core.py __iter__ 1 , 0 )
[line ] (asyncio/core.py __iter__ 1 , 0 )
[return ] (asyncio/core.py __iter__ 1 , 0 )
[call ] (asyncio/core.py __next__ 1 , 0 )
[line ] (asyncio/core.py __next__ 1 , 0 )
[return ] (asyncio/core.py __next__ 1 , 22 )
[call ] (asyncio/core.py wait_io_event 1 , 0 )
[line ] (asyncio/core.py wait_io_event 1 , 0 )
[return ] (asyncio/core.py wait_io_event 1 , 9 )
[call ] (asyncio/core.py wait_io_event 1 , 0 )
[line ] (asyncio/core.py wait_io_event 1 , 0 )
[return ] (asyncio/core.py wait_io_event 1 , 9 )
[call ] (<stdin> blink 44 , 48 )
[line ] (<stdin> blink 44 , 48 )
[call ] (asyncio/core.py __next__ 1 , 0 )
[line ] (asyncio/core.py __next__ 1 , 0 )
[exception ] (asyncio/core.py __next__ 1 , 33 )
[call ] (neopixel.py __len__ 1 , 0 )
[line ] (neopixel.py __len__ 1 , 0 )
[return ] (neopixel.py __len__ 1 , 1 )
[line ] (<stdin> blink 39 , 48 )
[call ] (neopixel.py __setitem__ 1 , 0 )
[line ] (neopixel.py __setitem__ 1 , 0 )
[return ] (neopixel.py __setitem__ 1 , 22 )
[line ] (<stdin> blink 40 , 48 )
[call ] (neopixel.py write 1 , 0 )
[line ] (neopixel.py write 1 , 0 )
[return ] (neopixel.py write 1 , 12 )
[line ] (<stdin> blink 41 , 12 )
[call ] (asyncio/core.py sleep_ms 1 , 0 )
[line ] (asyncio/core.py sleep_ms 1 , 0 )
[return ] (asyncio/core.py sleep_ms 1 , 15 )
[call ] (asyncio/core.py __iter__ 1 , 0 )
[line ] (asyncio/core.py __iter__ 1 , 0 )
[return ] (asyncio/core.py __iter__ 1 , 0 )
[call ] (asyncio/core.py __next__ 1 , 0 )
[line ] (asyncio/core.py __next__ 1 , 0 )
[return ] (asyncio/core.py __next__ 1 , 22 )
[call ] (asyncio/core.py wait_io_event 1 , 0 )
[line ] (asyncio/core.py wait_io_event 1 , 0 )
[return ] (asyncio/core.py wait_io_event 1 , 9 )
[call ] (asyncio/core.py wait_io_event 1 , 0 )
[line ] (asyncio/core.py wait_io_event 1 , 0 )
[return ] (asyncio/core.py wait_io_event 1 , 9 )
[call ] (<stdin> a_main 49 , 42 )
[line ] (<stdin> a_main 49 , 42 )
[call ] (asyncio/core.py __next__ 1 , 0 )
[line ] (asyncio/core.py __next__ 1 , 0 )
[exception ] (asyncio/core.py __next__ 1 , 33 )
[return ] (<stdin> a_main 49 , 42 )
[exception ] (asyncio/core.py run_until_complete 1 , 111 )
[return ] (asyncio/core.py run_until_complete 1 , 324 )
[return ] (asyncio/core.py run 1 , 7 )
[return ] (<stdin> call_frozen 56 , 37 )
========================================
mpremote run src/check_settrace.py
========================================
Tracing normal function
========================================
[call ] (<stdin> call_frozen 52 , 0 )
OrderedDict({})
[line ] (<stdin> call_frozen 53 , 0 )
OrderedDict({})
[call ] (neopixel.py __len__ 1 , 0 )
OrderedDict({})
[line ] (neopixel.py __len__ 1 , 0 )
OrderedDict({})
[return ] (neopixel.py __len__ 1 , 1 )
OrderedDict({})
[line ] (<stdin> call_frozen 54 , 0 )
OrderedDict({})
[call ] (neopixel.py fill 1 , 0 )
OrderedDict({})
[line ] (neopixel.py fill 1 , 0 )
OrderedDict({})
[return ] (neopixel.py fill 1 , 27 )
OrderedDict({})
[line ] (<stdin> call_frozen 55 , 10 )
OrderedDict({})
[call ] (neopixel.py write 1 , 0 )
OrderedDict({})
[line ] (neopixel.py write 1 , 0 )
OrderedDict({})
[return ] (neopixel.py write 1 , 12 )
OrderedDict({})
[line ] (<stdin> call_frozen 56 , 17 )
OrderedDict({})
****************************************
[line ] (<stdin> call_frozen 57 , 26 )
OrderedDict({})
[call ] (asyncio/core.py run 1 , 0 )
OrderedDict({})
[line ] (asyncio/core.py run 1 , 0 )
OrderedDict({})
[call ] (asyncio/core.py create_task 1 , 0 )
OrderedDict({})
[line ] (asyncio/core.py create_task 1 , 0 )
OrderedDict({})
[return ] (asyncio/core.py create_task 1 , 31 )
OrderedDict({'__main__': <Task>})
[call ] (asyncio/core.py run_until_complete 1 , 0 )
OrderedDict({})
[line ] (asyncio/core.py run_until_complete 1 , 0 )
OrderedDict({})
[call ] (asyncio/core.py wait_io_event 1 , 0 )
OrderedDict({})
[line ] (asyncio/core.py wait_io_event 1 , 0 )
OrderedDict({})
[return ] (asyncio/core.py wait_io_event 1 , 9 )
OrderedDict({})
[call ] (<stdin> a_main 47 , 0 )
OrderedDict({})
[line ] (<stdin> a_main 48 , 0 )
OrderedDict({})
[call ] (asyncio/core.py create_task 1 , 0 )
OrderedDict({})
[line ] (asyncio/core.py create_task 1 , 0 )
OrderedDict({})
[return ] (asyncio/core.py create_task 1 , 31 )
OrderedDict({'__main__': <Task>})
[line ] (<stdin> a_main 49 , 12 )
OrderedDict({})
[call ] (asyncio/core.py create_task 1 , 0 )
OrderedDict({})
[line ] (asyncio/core.py create_task 1 , 0 )
OrderedDict({})
[return ] (asyncio/core.py create_task 1 , 31 )
OrderedDict({'__main__': <Task>})
[line ] (<stdin> a_main 50 , 27 )
OrderedDict({})
[call ] (asyncio/core.py sleep_ms 1 , 0 )
OrderedDict({})
[line ] (asyncio/core.py sleep_ms 1 , 0 )
OrderedDict({})
[return ] (asyncio/core.py sleep_ms 1 , 15 )
OrderedDict({
A fatal error occurred. The crash dump printed below may be used to help
determine what caused it. If you are not already running the most recent
version of MicroPython, consider upgrading. New versions often fix bugs.
To learn more about how to debug and/or report this crash visit the wiki
page at: https://github.com/micropython/micropython/wiki/ESP32-debugging
MPY version : v1.26.0-preview.272.ga7c7a75eef.dirty on 2025-06-18
IDF version : v5.2.2
Machine : Generic ESP32 module with ESP32
Guru Meditation Error: Core 1 panic'ed (LoadProhibited). Exception was unhandled.
Core 1 register dump:
PC : 0x400fe7c3 PS : 0x00060230 A0 : 0x800fc0ca A1 : 0x3ffcea90
A2 : 0xbd083bdc A3 : 0x3ffceab0 A4 : 0x00000000 A5 : 0x3ffceac0
A6 : 0x00000000 A7 : 0x00000001 A8 : 0x00000000 A9 : 0x3ffd04c0
A10 : 0x3ffd0550 A11 : 0x3ffbc988 A12 : 0x00000001 A13 : 0x3ffceac0
A14 : 0x00000000 A15 : 0x3ffbc984 SAR : 0x0000001a EXCCAUSE: 0x0000001c
EXCVADDR: 0xbd083bf4 LBEG : 0x400f6678 LEND : 0x400f6687 LCOUNT : 0x00000003
Backtrace: 0x400fe7c0:0x3ffcea90 0x400fc0c7:0x3ffceab0 0x400f4c5d:0x3ffceaf0 0x400f664b:0x3ffceb10 0x400f4c5d:0x3ffceb40 0x40128ddd:0x3ffceb60 0x400f7959:0x3ffceba0 0x400fef35:0x3ffcebd0 0x400856bd:0x3ffcebf0 0x400f7903:0x3ffcec90 0x400fef35:0x3ffcecc0 0x4012eac0:0x3ffcece0 0x4012f087:0x3ffced10 0x400840f1:0x3ffced40 0x400f7903:0x3ffcede0 0x400fef35:0x3ffcee50 0x400feff9:0x3ffcee70 0x4008584d:0x3ffcee90 0x400f7c6f:0x3ffcef30 0x400f7d61:0x3ffcef50 0x400f77fa:0x3ffcef80 0x400fef35:0x3ffcefa0 0x400feff9:0x3ffcefc0 0x4008584d:0x3ffcefe0 0x400f7903:0x3ffcf080 0x400fef35:0x3ffcf0b0 0x400856bd:0x3ffcf0d0 0x400f7903:0x3ffcf170 0x400fef35:0x3ffcf1d0 0x400feff9:0x3ffcf1f0 0x4008584d:0x3ffcf210 0x400f7903:0x3ffcf2b0 0x400fef35:0x3ffcf310 0x400856bd:0x3ffcf330 0x400f7903:0x3ffcf3d0 0x400fef35:0x3ffcf440 0x400fef4a:0x3ffcf460 0x4010d263:0x3ffcf480 0x4010d3a6:0x3ffcf510 0x400f048a:0x3ffcf560
ELF file SHA256: a3c1413ff