Does anybody experience mixing -g (debugging symbols) and -O2 (best safe optimization) with gcc compiler?
I have to debug crashes of a release program distributed to final users that could send me back the core file.
I’ve always used to call:
gdb << myprogram >> << core file >>
and see where the trouble is. Now I can just see the call-trace but having no debugging symbols I’m quite in trouble.
Any idea?
We use both together in production environment, which makes debugging a lot easier if the customer have only seen a crash once. It gives you a pretty good idea where the problem is (not if it was a memory corruption).
In theory adding -g shouldn’t really affect the performance, although the executable gets large. In embedded environment it is a big trade-off.