Studio 12 C++ debugging symbols can't be read by gdb?
Studio 12 C++ debugging symbols can't be read by gdb?
The simple C++ test program:
/* vec.cpp */
#include <iostream>
#include <string>
#include <vector>
int main()
{
std::vector<int> v;
v.push_back(1);
std::cout << *v.begin() << std::endl;
return 0;
}
Compiling by Sun C++ with -g option:
$ sunCC -g -o vec vec.cpp
Then load vec by gdb:
1. Sun Studio 12 for Linux, on a Debian unstable box.
$ gdb -v
GNU gdb 6.6-debian
$ gdb --quiet ./vec
Using host libthread_db library "/lib/i686/cmov/libthread_db.so.1".
(gdb) list
Die: DW_TAG_<unknown> (abbrev = 8, offset = 6237)
has children: TRUE
attributes:
DW_AT_name (DW_FORM_string) string: "basic_ostream"
DW_AT_<unknown> (DW_FORM_string) string: "nNbasic_ostream3CTACTB_"
DW_AT_decl_file (DW_FORM_data1) constant: 5
DW_AT_decl_line (DW_FORM_data1) constant: 73
Dwarf Error: Cannot find type of die [in module /tmp/vec]
(gdb) b main
Die: DW_TAG_<unknown> (abbrev = 8, offset = 6237)
has children: TRUE
attributes:
DW_AT_name (DW_FORM_string) string: "basic_ostream"
DW_AT_<unknown> (DW_FORM_string) string: "nNbasic_ostream3CTACTB_"
DW_AT_decl_file (DW_FORM_data1) constant: 5
DW_AT_decl_line (DW_FORM_data1) constant: 73
Dwarf Error: Cannot find type of die [in module /tmp/vec]
(gdb) info functions
Die: DW_TAG_<unknown> (abbrev = 8, offset = 6237)
has children: TRUE
attributes:
DW_AT_name (DW_FORM_string) string: "basic_ostream"
DW_AT_<unknown> (DW_FORM_string) string: "nNbasic_ostream3CTACTB_"
DW_AT_decl_file (DW_FORM_data1) constant: 5
DW_AT_decl_line (DW_FORM_data1) constant: 73
Dwarf Error: Cannot find type of die [in module /tmp/vec]
(gdb)
2. Sun Studio 11 for Solaris x86, on a Solaris 8 box.
$ gdb -v
GNU gdb 5.0
$ gdb --quiet ./vec
(gdb) list
1/***************************************************************************
2*
3* vector.cc - Non-inline definitions for the Standard Library vector class
4*
5***************************************************************************
6*
7* Copyright (c) 1994
8* Hewlett-Packard Company
9*
10* Permission to use, copy, modify, distribute and sell this software
(gdb) list main
No line number known for main.
(gdb) b main
Breakpoint 1 at 0x8051c06
(gdb) info functions
All defined functions:
File vec.cpp:
void __1cDstdJbad_alloc2T5B6M_v_(struct <unknown> *);
void __1cDstdJbad_alloc2T6M_v_(struct <unknown> *);
void __1cDstdJbad_alloc2t6M_v_(struct <unknown> *);
void __1cDstdJexception2T5B6M_v_(struct <unknown> *);
void __1cDstdJexception2T6M_v_(struct <unknown> *);
void __1cDstdJexception2t6M_v_(struct <unknown> *);
int main(struct <unknown>, struct <unknown>, struct <unknown>,
struct <unknown>, struct <unknown>, struct <unknown>, struct <unknown>,
struct <unknown> *, struct <unknown> *, struct <unknown> *,
nJreference(0,23), struct <unknown> *, struct <unknown>,
struct <unknown> *, struct <unknown> *, struct <unknown> *, int *, int *,
struct <unknown> *, int *, nJreference(0,23), struct <unknown>,
struct <unknown>, struct <unknown>, struct <unknown>, struct <unknown>,
struct <unknown>, nJsize_type(0,28), struct <unknown>, struct <unknown>,
struct <unknown>, nJsize_type(0,28), struct <unknown>, struct <unknown>,
int *, nJreference(0,23), struct <unknown>, int *, nJsize_type(0,49),
struct <unknown>, struct <unknown>, struct <unknown>, struct <unknown>,
struct <unknown>, nJsize_type(0,49), int *);
static <unknown type> N(<unknown type>);
Type <return> to continue, or q <return> to quit
Non-debugging symbols:
00000000 __fsr_init_value
(gdb)
Is't a bug of Sun CC or gdb?

