The symptoms are that it either reaches a line of code that I don't expect it to (and crashes due to an unexpected type error), or it crashes the entire watch (with ERR_LOG.TXT).
Neither of these things happen in the simulator; also, the peak memory (14.9k) stays below the 16k limit and peak objects is 36. (In a typical configuration.)
In fact this only happened after I made some drastic changes to save several 100 bytes of memory.
Any ideas? Would really appreciate it.
Here's the relevant logs from the latter scenario.
CIQ_LOG.TXT
WARNING: Failed in data field compute
STORE_ID: <snip>
WARNING: Unfreed memory on exit
STORE_ID: <snip>
ERR_LOG.TXT
2050 (fenix 3) SW ver: 830
Build Type: RELEASE
ESN: <snip>
Battery Voltage: 4.023000V
07/15/17 16:24:52
RTL
errnum: 0x002
r0: 0x200231a0
r1: 0x00200119
r2: 0x00021713
r3: 0x00000000
Return Address (LR): 0x0000471b:Call Stack - PSP at 0x20022a80:
0x0000471b
0x00021713
0x0003d481
0x00021713
0x00021713
0x0003d70d
0x00006b03
0x0004b389
0x0000b015
0x00019cff
0x00006605
0x00006a03
0x00006b03
0x00006703
0x00004cbd
0x00019b69
0x0004b389
0x0010094d
0x0000445d
0x0000445d
HWM_usb_connected = 0x00. HWM_usb_mode = 0x01.
page addr = 0x0010a2f1
page addr = 0x000ef385
page addr = 0x00109d31
page addr = 0x00109fb1
page addr = 0x0015d765
Uptime: 57152948