Heiko Jansen
2008-07-18 15:14:13 UTC
Hi Karel,
hi *.
A couple of questions and suggestions:
a) Regarding some of the recent mails on this list: I believe that
adding "#include <cstring>" to CORBA.h should be the better solution to
a missing "strcmp" than adding "#include <string.h>" directly to
"mico/throw.h".
But that is probably more of a matter of taste.
By the way: I ran into this problem when trying to compile mico on
openSUSE 11.0 (x86, 32Bit) with gcc 4.3.0.
b) I remember dimly that there once was an announcement on the mico
website that in order to provider better docs some parts of the book
"Distributed Systems Architecture. A Middleware Approach" (ISBN
1558606483) would be made available once the book was published.
Publishing happened a few years ago but the texts never appeared here?!
c) After adding the appropriate header for strcmp, mico (2.3.12 to be
exact) compiles fine. When I try to feed some test IDL files to the ird,
however, a core is dumped.
While, e.g.,
http://corba-mico.cvs.sourceforge.net/corba-mico/corba-mico/Tictactoe.idl?revision=1.1.1.1&view=markup
works fine, I see cores on feeding
http://corba-mico.cvs.sourceforge.net/corba-mico/corba-mico/Account.idl?revision=1.7&view=markup
or even with mico/ir_base.idl.
-- snip --
Core was generated by `idl --no-codegen-c++ --feed-ir -I. -I/usr/local/include/mico Account.idl'.
Program terminated with signal 11, Segmentation fault.
[New process 24947]
#0 0xb7734f5b in strlen () from /lib/libc.so.6
(gdb) bt
#0 0xb7734f5b in strlen () from /lib/libc.so.6
#1 0x080ac519 in IDLError (this=0xbff8f5f0, err_num=10, n=0xbff8f958) at /usr/include/c++/4.3/bits/char_traits.h:262
#2 0x080acd39 in Const::coercion_error (this=0xbff8f8bc, from=0x8160bc8, to=0x8160a60) at const.cc:252
#3 0x080ad104 in Const::do_coercion (this=0xbff8f8bc, target_type=0x8160a60, val=@0xbff8f65c) at const.cc:148
#4 0x080aefa1 in Const (this=0xbff8f8bc, target_type=0x8160a60, l=250, node=0x8171ef0) at const.cc:52
#5 0x08075718 in IDLParser::collectConst (this=0xbff8fe58, con=0x816db28, p=0x8171ef0) at idlparser.cc:2704
#6 0x0807df19 in IDLParser::collectConstDcl (this=0xbff8fe58, con=0x816db28, node=0x8171f30) at idlparser.cc:912
#7 0x0807f370 in IDLParser::scan (this=0xbff8fe58, con=0x816db28, node=0x81768d0) at idlparser.cc:272
#8 0x0807f3ee in IDLParser::collect (this=0xbff8fe58, cont=0x816db28, root=0x8176910) at idlparser.cc:89
#9 0x080612fc in main (argc=0, argv=Cannot access memory at address 0x5
) at main.cc:189
-- / snip --
-- snip --
Core was generated by `idl --no-codegen-c++ --feed-ir -I. -I/usr/local/include/mico /usr/local/include'.
Program terminated with signal 11, Segmentation fault.
[New process 26902]
#0 0xb7749f5b in strlen () from /lib/libc.so.6
(gdb) bt
#0 0xb7749f5b in strlen () from /lib/libc.so.6
#1 0x080ac519 in IDLError (this=0xbfaa4070, err_num=10, n=0x817e6a0) at /usr/include/c++/4.3/bits/char_traits.h:262
#2 0x080acd39 in Const::coercion_error (this=0xbfaa433c, from=0x8160bc8, to=0x8160a60) at const.cc:252
#3 0x080ad104 in Const::do_coercion (this=0xbfaa433c, target_type=0x8160a60, val=@0xbfaa40dc) at const.cc:148
#4 0x080aefa1 in Const (this=0xbfaa433c, target_type=0x8160a60, l=0, node=0x8175830) at const.cc:52
#5 0x08075718 in IDLParser::collectConst (this=0xbfaa4948, con=0x8177870, p=0x8175830) at idlparser.cc:2704
#6 0x0807df19 in IDLParser::collectConstDcl (this=0xbfaa4948, con=0x8177870, node=0x8175870) at idlparser.cc:912
#7 0x0807f370 in IDLParser::scan (this=0xbfaa4948, con=0x8177870, node=0x8176ff8) at idlparser.cc:272
#8 0x0808502f in IDLParser::collectModule (this=0xbfaa4948, con=0x816db60, node=0x8177338) at idlparser.cc:807
#9 0x0807f370 in IDLParser::scan (this=0xbfaa4948, con=0x816db60, node=0x81773e0) at idlparser.cc:272
#10 0x0807f3ee in IDLParser::collect (this=0xbfaa4948, cont=0x816db60, root=0x8177460) at idlparser.cc:89
#11 0x080612fc in main (argc=135747536, argv=Cannot access memory at address 0x7
) at main.cc:189
-- / snip --
The cores always look similar.
I've compiled mico 2.3.12 on a number of different systems before
(Solaris 9, Solaris 10/SPARC/64Bit, SLED 10.1 x86_64, openSUSE 10.3, Red
Hat EL 5.1 x86_64) but never saw something like this.
I have a debugging build of mico but not much experience with gdb, so if
you'd like to see some variables from the core stack please let me know
which commands to use.
Hope you can help me!
Heiko
hi *.
A couple of questions and suggestions:
a) Regarding some of the recent mails on this list: I believe that
adding "#include <cstring>" to CORBA.h should be the better solution to
a missing "strcmp" than adding "#include <string.h>" directly to
"mico/throw.h".
But that is probably more of a matter of taste.
By the way: I ran into this problem when trying to compile mico on
openSUSE 11.0 (x86, 32Bit) with gcc 4.3.0.
b) I remember dimly that there once was an announcement on the mico
website that in order to provider better docs some parts of the book
"Distributed Systems Architecture. A Middleware Approach" (ISBN
1558606483) would be made available once the book was published.
Publishing happened a few years ago but the texts never appeared here?!
c) After adding the appropriate header for strcmp, mico (2.3.12 to be
exact) compiles fine. When I try to feed some test IDL files to the ird,
however, a core is dumped.
While, e.g.,
http://corba-mico.cvs.sourceforge.net/corba-mico/corba-mico/Tictactoe.idl?revision=1.1.1.1&view=markup
works fine, I see cores on feeding
http://corba-mico.cvs.sourceforge.net/corba-mico/corba-mico/Account.idl?revision=1.7&view=markup
or even with mico/ir_base.idl.
-- snip --
Core was generated by `idl --no-codegen-c++ --feed-ir -I. -I/usr/local/include/mico Account.idl'.
Program terminated with signal 11, Segmentation fault.
[New process 24947]
#0 0xb7734f5b in strlen () from /lib/libc.so.6
(gdb) bt
#0 0xb7734f5b in strlen () from /lib/libc.so.6
#1 0x080ac519 in IDLError (this=0xbff8f5f0, err_num=10, n=0xbff8f958) at /usr/include/c++/4.3/bits/char_traits.h:262
#2 0x080acd39 in Const::coercion_error (this=0xbff8f8bc, from=0x8160bc8, to=0x8160a60) at const.cc:252
#3 0x080ad104 in Const::do_coercion (this=0xbff8f8bc, target_type=0x8160a60, val=@0xbff8f65c) at const.cc:148
#4 0x080aefa1 in Const (this=0xbff8f8bc, target_type=0x8160a60, l=250, node=0x8171ef0) at const.cc:52
#5 0x08075718 in IDLParser::collectConst (this=0xbff8fe58, con=0x816db28, p=0x8171ef0) at idlparser.cc:2704
#6 0x0807df19 in IDLParser::collectConstDcl (this=0xbff8fe58, con=0x816db28, node=0x8171f30) at idlparser.cc:912
#7 0x0807f370 in IDLParser::scan (this=0xbff8fe58, con=0x816db28, node=0x81768d0) at idlparser.cc:272
#8 0x0807f3ee in IDLParser::collect (this=0xbff8fe58, cont=0x816db28, root=0x8176910) at idlparser.cc:89
#9 0x080612fc in main (argc=0, argv=Cannot access memory at address 0x5
) at main.cc:189
-- / snip --
-- snip --
Core was generated by `idl --no-codegen-c++ --feed-ir -I. -I/usr/local/include/mico /usr/local/include'.
Program terminated with signal 11, Segmentation fault.
[New process 26902]
#0 0xb7749f5b in strlen () from /lib/libc.so.6
(gdb) bt
#0 0xb7749f5b in strlen () from /lib/libc.so.6
#1 0x080ac519 in IDLError (this=0xbfaa4070, err_num=10, n=0x817e6a0) at /usr/include/c++/4.3/bits/char_traits.h:262
#2 0x080acd39 in Const::coercion_error (this=0xbfaa433c, from=0x8160bc8, to=0x8160a60) at const.cc:252
#3 0x080ad104 in Const::do_coercion (this=0xbfaa433c, target_type=0x8160a60, val=@0xbfaa40dc) at const.cc:148
#4 0x080aefa1 in Const (this=0xbfaa433c, target_type=0x8160a60, l=0, node=0x8175830) at const.cc:52
#5 0x08075718 in IDLParser::collectConst (this=0xbfaa4948, con=0x8177870, p=0x8175830) at idlparser.cc:2704
#6 0x0807df19 in IDLParser::collectConstDcl (this=0xbfaa4948, con=0x8177870, node=0x8175870) at idlparser.cc:912
#7 0x0807f370 in IDLParser::scan (this=0xbfaa4948, con=0x8177870, node=0x8176ff8) at idlparser.cc:272
#8 0x0808502f in IDLParser::collectModule (this=0xbfaa4948, con=0x816db60, node=0x8177338) at idlparser.cc:807
#9 0x0807f370 in IDLParser::scan (this=0xbfaa4948, con=0x816db60, node=0x81773e0) at idlparser.cc:272
#10 0x0807f3ee in IDLParser::collect (this=0xbfaa4948, cont=0x816db60, root=0x8177460) at idlparser.cc:89
#11 0x080612fc in main (argc=135747536, argv=Cannot access memory at address 0x7
) at main.cc:189
-- / snip --
The cores always look similar.
I've compiled mico 2.3.12 on a number of different systems before
(Solaris 9, Solaris 10/SPARC/64Bit, SLED 10.1 x86_64, openSUSE 10.3, Red
Hat EL 5.1 x86_64) but never saw something like this.
I have a debugging build of mico but not much experience with gdb, so if
you'd like to see some variables from the core stack please let me know
which commands to use.
Hope you can help me!
Heiko