1. Yes I can test the last version, I'm just not sure about which one you are talking about (should I install FPC and Lazarus both on 'trunk' version from FPCUpDeluxe?)
You can use the existing FPC.
You only need the "trunk" version of lazarus. It should run fine with the existing fpc.
Then you can do the same "resolve" => And that will at least tell, if the bug in the IDE has been fixed.
(as you likely will have changed/recompiled your work, test in your current Lazarus, that you have a case that crashes)
2. While waiting your answer to the first point, I'm gonna try to launch Lazarus in lldb, great idea
That would be the next step, after the above. If the IDE still crashes (which we really don't want), then a trace of that crash might be the first step to find out how to fix it.
3. I tried the lookup of the app in lldb after crash, as you suggested, and I got something for a couple of addresses. Here's the output
If lldb does not find the addresses, then "resolve" likely wont either. (But still good to test with "trunk", so we know if or if not it crashes)
That is for "resolve" or lldb "image lookup" to work:
* You must have used the exact same compiled exe in which you got the trace. If you later recompiled the exe, the addresses could have changed.
* You must *not* have compiled as "relocatable". Afaik the is default. "relocatable" is usually used as a security feature, so exploits can not predict addresses.
If you use packages, then make sure they all have debug info.
=> Project Options > Additions and Overrides > Add custom option (Target: *): -gw
(or -gw3 if you use Dwarf 3 / but for line numbers it makes no diff)
If you do use FpcUpDeluxe: You may want to get your self an FPC 3.2.3 (fixes branch).
It has many very valuable bugfixes (including issues where the compiler breaks your app).
You may even want to compile it with -gw (you can mix this with optimizations, if you want an optimized build / it is just for the line info).
FPC/RTL with -gw may slow down linking / so you may want to have 2 installs: with/without.
If you do build an fpc with -gw and the crash is (even if triggered by your code) somewhere in the RTL, then you will get better traces. (assuming any of the lookup techniques start to work, or you can get in the debugger).
If you can build and test your app on Linux...
There is a tool called valgrind.
valgrind --tool=memcheck yourapp
is a really great tool to find access violations.
Valgrind very often can report the fault even if it does not cause a crash. (e.g. dangling pointers / double free / ...)
But it is Linux only...
If you are not on Linux => Try heaptrc (again). But set the environment HEAPTRC="keepreleased"
(and then mix that with -gt variants).