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 _______________________________________________ Tinyos-help mailing list [email protected] https://mail.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
