[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: About debugging constructors
From: |
Paul Pluzhnikov |
Subject: |
Re: About debugging constructors |
Date: |
Mon, 24 Sep 2007 22:05:45 -0700 |
User-agent: |
Gnus/5.1006 (Gnus v5.10.6) XEmacs/21.4 (Jumbo Shrimp, linux) |
"parag_paul@hotmail.com" <parag_paul@hotmail.com> writes:
> MY platform is Linux, RH3
There was a RedHat-3.0.3 release (dated May 1st, 1996).
I very much doubt that that's your platform.
More likely you are using 'Red Hat Enterprise Linux v3', which is
usually abbreviated RHEL-3.
> I forgot to mention that, the GDB is showing some other file too.
> Actually, I am working on a huge compiler that creates an exectuable.
Huh?
> I am running the executable, which is a pure object code and will some
> time call, the ctors. Now the solution to compile all the
> problem file doing the #include of the header file having the
> constructor will be a bit of work. it will take a lot of time for me
> to do so.
>
> No the ctor is not inlined
If the ctor is not inlined, then recompiling anything but the file
in which it is defined, is pointless.
Try newer version of gdb; or try setting the breakpoint on machine
address of the first instruction of the ctor. Since it appears that
you don't know how to do so, here is an example:
$ cat junk.cc
struct Foo {
Foo();
int x;
};
Foo::Foo() : x(42)
{
}
int main()
{
Foo f;
return f.x;
}
$ g++ -g junk.cc
$ gdb -q ./a.out
Using host libthread_db library "/lib/tls/libthread_db.so.1".
(gdb) p &'Foo::Foo()'
$1 = (<text variable, no debug info> *) 0x8048372 <Foo>
(gdb) b *0x8048372
Breakpoint 1 at 0x8048372: file junk.cc, line 6.
(gdb) r
Breakpoint 1, Foo (this=0x1) at junk.cc:6
6 Foo::Foo() : x(42)
(gdb) bt
#0 Foo (this=0x1) at junk.cc:6
#1 0x0804839c in main () at junk.cc:12
(gdb) c
Program exited with code 052.
(gdb) quit
Cheers,
--
In order to understand recursion you must first understand recursion.
Remove /-nsp/ for email.