After making a whole bunch of changes some weeks ago, I got the dreaded crash on startup. But good news, I have discovered a way to diagnose crashes, I am happy now.
I discovered that the Arduino guys have made a java tool "ESP Exception Decoder". It was tricky to use, only because it makes assumption about running in the Arduino IDE. I opened a dummy Arduino project Blink.ino, copied my problematic "app.out" to "Blink.ino.elf" after first figuring out what folder Arduino uses, then copied in the exception data into the dialog box, and bingo, it gave me the constructor of one of my globals that was doing a bit more than it should at load time.
So this gibberish: Fatal exception (28): epc1=0x4024c3da epc2=0x00000000 epc3=0x40228e1a epcvaddr=0x00000014 depc=0x00000000
was converted into something a lot more meaningful.
Im a happy camper, this problem was a road block for a couple of weeks and is now gone.
Anyone good with java? - lets make that utility easy to use in the non-Arduino world!