Debugger, set value only once

已回答

I have changed a local variable value through the watch window. It is used in a for loop, something similar to this:

 

int x;
for (int i=0; i<10; ++i)
modify(x);

 

However after setting the value through debugger the value doesn't change after being called by `modify()`. It is always stuck to whatever I set initially.

I don't think this is the intended behavior, are there any workarounds?

0

Hi, Baris.

Please check whether you pass "x" to modify() by value. In this case if some modifications are applied to "x" inside modify(), they are applied to a local "x", not to the one defined in the int x; line (for which you set a value using the Debug window). If you would like to modify that "x" inside modify(), you need to pass it by reference.

If I misunderstood you, please let me know.

0

It is passed by reference of course. The signature is something like:

void modify(int& x);

I am oversimplifying things to make it concise. The real code is working in production and messier than this.

0

Oh, sorry. I just wasn't able to reproduce the issue on my side when a variable is passed by reference and assumed that there might be some confusion. What CLion version and what debugger do you use?

1

I am using CLion 2018.1 on Ubuntu 16.04 with the bundled GDB 8.1.

 

0

Thanks a lot for the details! I was able to reproduce the problem with GDB and created the issue in our tracker: https://youtrack.jetbrains.com/issue/CPP-13295. Feel free to comment or upvote. Please follow it to get updates.

Note that I can't reproduce the problem with LLDB. So meanwhile in order to avoid the problem you can switch to LLDB if it's acceptable to you.

1

Perfect! I can do a workaround this is not a big blocker. Thank you for the immediate response and that issue in the tracker. Things went extremely fast, I am surprised :)

0

Thank you for your kind words! :)

Please don't hesitate to contact us here or via email (clion-support at jetbrains.com) if you face any other issues with CLion or report them directly in our tracker (https://youtrack.jetbrains.com/issues/CPP).

0

请先登录再写评论。