On Thu, 20 May 2010, Tamas TEVESZ wrote: Hi,
> as $subject says. i have bisected the problem to have been introduced > in r12466 (r12465 is fine). > r12466 only says segmentation fault, leaving an empty hb_out.log; > r14542 is a bit more verbose with: > Application Internal Error - > /home/ice/w/xhb/hbci/harbour-bisect/harbour/inst/linux/sunpro/c/bin/hbrun > Terminated at: 2010.05.20 22:26:52 > Unrecoverable error 6005: Exception SIGSEGV at address 0x1b800ad5268 > Called from GET(73) > Called from GETNEW(1978) > Called from __GET(70) > Called from HB_DOTPROMPT(162) in ../../../hbrun.prg > Called from _APPMAIN(124) in ../../../hbrun.prg > ------------------------------------------------------------------------ > (backtraces for both cases are below). > this only happens if hbrun is requested to run interactively (eg. > using the dot console); if it is to run a program (at least a simple > one), it's ok. i also have not been able to find anything similar with > the other compilers i'm testing with. > build environment is ubuntu 10.04/x64 and ubuntu 6.06/i386, with the > following settings: Linux SUNPRO port has very serious bug. It does not correctly generate code for all constructors. We are exploiting this problem from time to time. It probably depends on total binary size which may interact with the contents of some uninitialized memory. I do not know exectly where inside SUNPRO the problem is but I've checked the final results in harbour application. Startup code for some PRG modules is not executed so they are not registered in HVM and their symbol tables are not initialized but other modules contains references to functions from unregistered modules and when they are executed application GPFs when trying to access PHB_DYNS pointers in symbol tables. In the past I reported few times that in my SunPRO builds hbtest GPFs due to this problem. Now I've tested current builds and it works OK. I can executed without any problems hbtest and hbrun. I'm using suse1...@x86_64. Anyhow I expect that it can stop to work in any moment when some modification change total memory alignment and the problem will be exploited again. Looks that in your system is still exploited. > Program received signal SIGSEGV, Segmentation fault. > 0x0000000000429ae1 in hb_vmPushStatic (uiStatic=1) at ../../../hvm.c:6960 > 6960 pStatic = ( ( PHB_ITEM ) hb_stackGetStaticsBase() > )->item.asArray.value->pItems + uiStatic - 1; The symbol table of executed module was not registered so static frame was not initialized and now executed code tries to access the array of static variables using NULL pointer and GPFs. I know what's the reason of problem but I'm afraid that I cannot resolve it well. It has to be fixed inside SunPRO compiler/linker code. It's probably only in Linux port. I've never exploited it in SunOS. best regards, Przemek _______________________________________________ Harbour mailing list (attachment size limit: 40KB) Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour