GDB performance issues on 64 bit Linux machines

I see on the roadmap of CLion 2016.2

Debugger

  • Issues with GDB (timeouts, performance, other issues)
  • Remote debug

 

I was wondering what does that mean. I feel the debugger is really slow in updating the watches. It takes about 1 second to update all the Local variables and watches. Hangs a bit on "Collecting data...", then the variable value is just ..., then they get updated, then they change color. All this flickering is really distracting for interactive debugging. I was wondering if this is a known issue and if anyone is working on this.

As far as I understand this problem is Linux-specific and the Mac users do not have it, but I might be wrong.

 

9 comments
Comment actions Permalink

Andrei, we are rewriting debugger backend to speedup and fix the hangs on 'collecting data'. We already have very promising results and hope to publish it soon in 2016.2 EAP. We can't promise, though, that all possible hangs will be fixed, and will really appreciate your further help in pinpointing and fixing them.

0
Comment actions Permalink

Hey Anton,

Thank you for your quick response. The big problem is not that it hangs, it is more the refreshing behavior (too much flashing going on, so I cannot visually see how the numbers in the variables change). If the numbers would just stay the same (instead of disappearing) and then change only when the new data is available, that would be so much better from a UX perspective. You could use different color scheme to signal that the numbers are old and refreshing, but just don't make the disappear. I'd be happy to help, is there any open source codebase I could look into?

Andrei

 

0
Comment actions Permalink

Could you please show this flashing on a screenshot?

0
Comment actions Permalink

Anton, do you have an idea for when you think the this EAP will come out? I'm eager to try it out.

0
Comment actions Permalink

Dear Anton,

I made a screencast for your convenience. The quality is not great, but you can see at the bottom that the variables go through 3 stages.

  • First they are shown,
  • then they all disappear and get replaced by the text "Collecting data".
  • Then they reappear and all their values are replaced by "collecting data"
  • Then they get refreshed

At least I would like steps 2 and 3 to not exist, this way I could visually follow the numbers in the variables. Ideally they should update way faster.

Screencast

https://www.youtube.com/watch?v=J5YxpwJJIq8

 

0
Comment actions Permalink

Thanks, Andrei, I see what you mean now, here is a ticket:

CPP-6658 When stepping variables list refreshes too much (cleared, filled, updated, cleared again)

But let's first see if optimization will make this problem less critical.

 

0
Comment actions Permalink

@Olof Can't give you ETA now, hopefully in early EAPs of 2016.2

0
Comment actions Permalink

@Anton is there any way I can contribute? I can probably implement the perf improvement myself and then push the feature upstream.

0
Comment actions Permalink

Nope, please wait for a 2016.2 EAP build with announced debugger improvements

0

Please sign in to leave a comment.