[Tinyos-help] IBM JDK segfaults on libtoscomm.so
Ákos Maróy
darkeye at tyrell.hu
Sat Jun 2 02:08:09 PDT 2007
Aurélien Francillon wrote:
> you may be interested in this report i made some time ago, with stack
> trace ...
> http://sourceforge.net/tracker/index.php?func=detail&aid=1606811&group_id=28656&atid=393934
> (the report is a bit confusing, there is actually 2 different problems
> exposed )
> IIRC (not sure), i tracked it back to some known regression of gcc 4.1.x ...
> it works fine with gcc-3.x
hm...
> there is also "kind of" patch there :
> https://naurel.org/svn/tinyos-2-overlay/dev-tinyos/tinyos-tools/files/TOSComm_wrap.cxx.racecondition.patch
> basically if you uncomment the "if(..) ; printf ... " stuff you will see
> that the pointer arg1 is null quite often
I tried this approach, and the results are very strange. basically if I
just add the following piece of code:
try {
if (arg1 == NULL) {
std::cerr << "---------- arg == NULL ------------" <<
std::endl;
}
result = (bool)(arg1)->didEventOccur(arg2);
} catch (comm_port_error &e) {
...
then the std::cerr << .. part _never_ gets executed, but it won't
segfault anymore (the whole thing still won't work though). if I just
comment out the std::cerr << .. part:
try {
if (arg1 == NULL) {
//std::cerr << "---------- arg == NULL ------------" <<
std::endl;
}
result = (bool)(arg1)->didEventOccur(arg2);
} catch (comm_port_error &e) {
...
it segfaults again....
I'll give it a try using gcc-3.x..
Akos
More information about the Tinyos-help
mailing list