This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 268815 - in debugger: frequent debugger errors make stepping painful
Summary: in debugger: frequent debugger errors make stepping painful
Status: NEW
Alias: None
Product: cnd
Classification: Unclassified
Component: Debugger (show other bugs)
Version: Dev
Hardware: PC Linux
: P3 normal (vote)
Assignee: Maria Tishkova
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-11-03 21:14 UTC by tbrunhoff
Modified: 2017-08-15 02:01 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments
annoying dialog popup (18.90 KB, image/jpeg)
2016-11-03 21:14 UTC, tbrunhoff
Details

Note You need to log in before you can comment on or make changes to this bug.
Description tbrunhoff 2016-11-03 21:14:37 UTC
Created attachment 162761 [details]
annoying dialog popup

This is probably associated with complex local variables. But frequently GDB gets upset about not being able to find a memory or method or whatever and pops up a dialog box. And if you are stepping, this turns into a series of
- step
- dialog pops up
- hit escape or click ok
- repeat

This should really be relegated to a pane where these messages show up so it can be visible but does not insert itself into the debugging process.


Product Version: NetBeans IDE Dev (Build 201609190002)
Updates: Updates available
Java: 1.8.0_45; Java HotSpot(TM) 64-Bit Server VM 25.45-b02
Runtime: Java(TM) SE Runtime Environment 1.8.0_45-b14
System: Linux version 4.1.13-100.fc21.x86_64 running on amd64; UTF-8; en_US (nb)
User directory: /home/toddb/.netbeans/dev
Cache directory: /home/toddb/.cache/netbeans/dev
Comment 1 tbrunhoff 2016-11-04 18:56:23 UTC
I should note that the dialog can be ignored and messages will collect there without requiring an escape or clicking on 'ok'. But for continuity sake, this really ought to pop up as one of the 'output' panes.

Also, the message is never useful, because it does not identify where it was looking for a method, function or member when the error occurred.
Comment 2 Maria Tishkova 2017-04-03 15:30:24 UTC
For detailed investigation I need GDB log attached. Without log I cannot understand what I should fix:(
Comment 3 soldatov 2017-08-11 13:44:11 UTC
I see other GDB error in such case:


#include <vector>

using namespace std;

struct A {

    A(float cost) :
    cost(cost) {
    }

    float cost;
};

struct B {

    B(float c) :
    c(c) {
    }

    float c;
};

void test(vector<B> *v0, vector<A> *v1) {
    for (vector<B>::iterator i = v0->begin(); i != v0->end(); i++) { // set line breakpoint
        i->c += 0.1f;
    }
    for (vector<A>::iterator i = v1->begin(); i != v1->end(); i++) {
        i->cost += 0.1f;
    }
}

int main() {
    vector<B> v0;
    v0.push_back(B(0.3f));

    vector<A> v1;
    v1.push_back(A(0.0f));
    v1.push_back(A(0.1f));
    test(&v0, &v1);
    return 0;
}

Scenario:
- Stop debugger in test()
- Add i->c and i->cost variables to Variables tab
- Press 3-4 times
==> I see such Debugger Error window:
Type A has no component named c.
Type A has no component named c.
Comment 4 soldatov 2017-08-11 13:47:30 UTC
missed:
- Press F8 key 3-4 times
Comment 5 soldatov 2017-08-11 15:03:35 UTC
Other scenario:
struct A {
    A(float _a) : a(_a) {}
    float a;
};
struct B {
    B(float _a) : b(_a) {}
    float b;
};
int main() {
    {
        A* a = new A(0.1f);
    }
    {
        B* a = new B(0.2f);
    }
    return 0;
}

Variables 'a->a' and 'a->b'
Comment 6 Quality Engineering 2017-08-15 02:01:23 UTC
Integrated into 'main-silver', will be available in build *201708150001* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)

Changeset: http://hg.netbeans.org/main-silver/rev/33c0585654f8
User: Maria Dalmatova <mromashova@netbeans.org>
Log: fixed bz#268815 - in debugger: frequent debugger errors make stepping painful
1) New Debugging options is added under Tools->Options->C/C++->Debugging Options named "Do not popup debugger errors", when it is turned on the debugger errors will be printed in Debugger Errors window. This window will be opened in output mode but will not request focus. This window can be opened using Window->Debugging->Debugger Errors menu
2) The error message printed in error dialog (or text pane of Debugger Errors window) now contains command the error is occurred for
3) New Debugger Log functionality is added. If debugger provides log file (as GDB does) it can be opened as a part of Output using Windows->Debugging->Debugger Log. This log has the same functionality IDE Log has.