public inbox for gdb-prs@sourceware.org
help / color / mirror / Atom feed
* [Bug mi/14030] New: No children returned for unitialized pointer to class
@ 2012-04-28  7:36 jens.elmenthaler at me dot com
  2012-04-28  7:38 ` [Bug mi/14030] " jens.elmenthaler at me dot com
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: jens.elmenthaler at me dot com @ 2012-04-28  7:36 UTC (permalink / raw)
  To: gdb-prs

http://sourceware.org/bugzilla/show_bug.cgi?id=14030

             Bug #: 14030
           Summary: No children returned for unitialized pointer to class
           Product: gdb
           Version: HEAD
            Status: NEW
          Severity: normal
          Priority: P2
         Component: mi
        AssignedTo: unassigned@sourceware.org
        ReportedBy: jens.elmenthaler@me.com
    Classification: Unclassified


I have the following set of source/header files:

// ClassUnderTest.hpp
class ClassUnderTest  {

public:
    ClassUnderTest();
    virtual ~ClassUnderTest();

    bool mTrue;
    int mFifteen;
};

// ClassUnderTest.cpp
#include "ClassUnderTest.hpp"

ClassUnderTest::ClassUnderTest()
: mTrue(true),
  mFifteen(15)
{
}

ClassUnderTest::~ClassUnderTest()
{
}

// client.cpp
void client()
{
  ClassUnderTest *pCUT= new ClassUnderTest;  // breakpoint here -> 0 children,
stepping to next line does not help
  delete pCUT;                               // breakpoint here -> OK
  pCUT = 0;
}

If I set a breakpoint at the first line in client(), pCUT has no children, and
also stepping over this line will not yield the children.

If I set the breakpoint to the second line, i.e. pCUT is initialized already, I
get the expected children.

It seems to be relevant that client() and the implementation of
ClassUnderTest's methods are in separate source files. If I implement the
methods in ClassUnderTest.hpp, or move client() into ClassUnderTest.cpp,
everything works properly again.

I use a gcc 4.1.2.

This seems to be related to the changes for bug 376901, which now rely on the
type information of the value instead of target type information calculated on
the fly (get_target_type()).

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug mi/14030] No children returned for unitialized pointer to class
  2012-04-28  7:36 [Bug mi/14030] New: No children returned for unitialized pointer to class jens.elmenthaler at me dot com
@ 2012-04-28  7:38 ` jens.elmenthaler at me dot com
  2012-04-28  8:11 ` xgsa at yandex dot ru
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: jens.elmenthaler at me dot com @ 2012-04-28  7:38 UTC (permalink / raw)
  To: gdb-prs

http://sourceware.org/bugzilla/show_bug.cgi?id=14030

Jens Elmenthaler <jens.elmenthaler at me dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |xgsa at yandex dot ru

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug mi/14030] No children returned for unitialized pointer to class
  2012-04-28  7:36 [Bug mi/14030] New: No children returned for unitialized pointer to class jens.elmenthaler at me dot com
  2012-04-28  7:38 ` [Bug mi/14030] " jens.elmenthaler at me dot com
@ 2012-04-28  8:11 ` xgsa at yandex dot ru
  2012-04-28 10:15 ` jens.elmenthaler at me dot com
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 6+ messages in thread
From: xgsa at yandex dot ru @ 2012-04-28  8:11 UTC (permalink / raw)
  To: gdb-prs

http://sourceware.org/bugzilla/show_bug.cgi?id=14030

--- Comment #1 from Anton <xgsa at yandex dot ru> 2012-04-28 08:10:56 UTC ---
Probably you meant gdb bug 13393, cause the 376901 one is for Eclipse CDT.

And I have one more question: is the problem reproducible with "set print
object" on or off?

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug mi/14030] No children returned for unitialized pointer to class
  2012-04-28  7:36 [Bug mi/14030] New: No children returned for unitialized pointer to class jens.elmenthaler at me dot com
  2012-04-28  7:38 ` [Bug mi/14030] " jens.elmenthaler at me dot com
  2012-04-28  8:11 ` xgsa at yandex dot ru
@ 2012-04-28 10:15 ` jens.elmenthaler at me dot com
  2012-05-12 16:51 ` xgsa at yandex dot ru
  2023-08-31 17:18 ` [Bug varobj/14030] " tromey at sourceware dot org
  4 siblings, 0 replies; 6+ messages in thread
From: jens.elmenthaler at me dot com @ 2012-04-28 10:15 UTC (permalink / raw)
  To: gdb-prs

http://sourceware.org/bugzilla/show_bug.cgi?id=14030

--- Comment #2 from Jens Elmenthaler <jens.elmenthaler at me dot com> 2012-04-28 10:14:27 UTC ---
(In reply to comment #1)
> Probably you meant gdb bug 13393, cause the 376901 one is for Eclipse CDT.
> And I have one more question: is the problem reproducible with "set print
> object" on or off?
Oh, yes I meant 13393.

The problem occurs only with "set print object on". The call tree of interest
is:

mi_cmd_var_create
-> print_varobj
  -> varobj_get_num_children
    -> cplus_number_of_children
      -> adjust_value_for_child_access
         if on: it uses the target type in value, which has not set nfields yet
         if off: it uses get_target_type() from the type parameter, which then
also resolves the nfields parameter.

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug mi/14030] No children returned for unitialized pointer to class
  2012-04-28  7:36 [Bug mi/14030] New: No children returned for unitialized pointer to class jens.elmenthaler at me dot com
                   ` (2 preceding siblings ...)
  2012-04-28 10:15 ` jens.elmenthaler at me dot com
@ 2012-05-12 16:51 ` xgsa at yandex dot ru
  2023-08-31 17:18 ` [Bug varobj/14030] " tromey at sourceware dot org
  4 siblings, 0 replies; 6+ messages in thread
From: xgsa at yandex dot ru @ 2012-05-12 16:51 UTC (permalink / raw)
  To: gdb-prs

http://sourceware.org/bugzilla/show_bug.cgi?id=14030

--- Comment #3 from Anton <xgsa at yandex dot ru> 2012-05-12 16:50:59 UTC ---
Unfortunately I cannot reproduce the problem with gdb HEAD and gcc-4.6.3. I see
the children even if I set the breakpoint on pCUT declaration (certainly they
have random values before initialization).  I still have children after pCUT is
initialized and even after "0" assignment.

I am not sure, but it could be a gcc-specific behavior. Could you try a newer
gcc?

Otherwise we could try to reproduce the problem without relying on
uninitialized variable (which could give us random effect). E.g. is the problem
is reproducible in your environment if client() will looks like this:

void client()
{
  ClassUnderTest *pCUT = 0;   // Initialize variable to avoid random effect
  pCUT = new ClassUnderTest;  // breakpoint here -> 0 children,
stepping to next line does not help
  delete pCUT;                               // breakpoint here -> OK
  pCUT = 0;
}

-- 
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [Bug varobj/14030] No children returned for unitialized pointer to class
  2012-04-28  7:36 [Bug mi/14030] New: No children returned for unitialized pointer to class jens.elmenthaler at me dot com
                   ` (3 preceding siblings ...)
  2012-05-12 16:51 ` xgsa at yandex dot ru
@ 2023-08-31 17:18 ` tromey at sourceware dot org
  4 siblings, 0 replies; 6+ messages in thread
From: tromey at sourceware dot org @ 2023-08-31 17:18 UTC (permalink / raw)
  To: gdb-prs

https://sourceware.org/bugzilla/show_bug.cgi?id=14030

Tom Tromey <tromey at sourceware dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |tromey at sourceware dot org
          Component|mi                          |varobj

-- 
You are receiving this mail because:
You are on the CC list for the bug.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2023-08-31 17:18 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-04-28  7:36 [Bug mi/14030] New: No children returned for unitialized pointer to class jens.elmenthaler at me dot com
2012-04-28  7:38 ` [Bug mi/14030] " jens.elmenthaler at me dot com
2012-04-28  8:11 ` xgsa at yandex dot ru
2012-04-28 10:15 ` jens.elmenthaler at me dot com
2012-05-12 16:51 ` xgsa at yandex dot ru
2023-08-31 17:18 ` [Bug varobj/14030] " tromey at sourceware dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).