Well, it's an interesting problem but I'm not sure it totally qualifies as a 
bug.
Your sample file leads to infinite recursion, thus exploding the stack and 
leading to the crash.  This makes GDB return 104806 stack frames (on my 
machine), which, well, is a lot.  The hang you see is the time the plugin takes 
to process all the frames and populate the *Call Stack* tab.

There is an easy optimization that makes a part of the process quite a lot 
faster (in *dbm_gdb.c:get_stack()*), but it's still a tiny part of the overall 
time it takes, which is almost entirely taken building the *Call Stack* tab.
Not quite sure what can be done here apart making the whole thing a lot faster 
(not sure how), or make the population incremental (probably tricky in the 
current state, and not very practical for the user as the frames will be 
missing).

---
Reply to this email directly or view it on GitHub:
https://github.com/geany/geany-plugins/issues/347#issuecomment-178932997

Reply via email to