[M3devel] dtoa.h?

Tony Hosking hosking at cs.purdue.edu
Mon Mar 17 15:19:04 CET 2008


How was dtoa compiled?  That code is a fragile part of the run-time  
system that uses C that breaks with some C compilers.  (See why I hate  
non-portable C!).

Antony Hosking | Associate Professor | Computer Science | Purdue  
University
305 N. University Street | West Lafayette | IN 47907 | USA
Office +1 765 494 6001 | Mobile +1 765 427 5484



On Mar 17, 2008, at 6:11 AM, Jay wrote:

> any advise to for debuging..I think I'll just turn off  
> optimization..that fixed it...no patience to debug codegen bugs or  
> anything in dtoa..confusing stuff...
> This wasn't occuring..but now I can repro it consistently compiling  
> some of m3core/extended*, m3core/real*, m3core/longreal*. The rest  
> of m3core compiles ok..
>
> Program received signal SIGSEGV, Segmentation fault.
> mult (a=0x1426860, b=0x1426880) at ..//src//Csupport//Common/dtoa.h: 
> 535
> 535                     *x = 0;
> (gdb) bt
> #0  mult (a=0x1426860, b=0x1426880) at ..//src//Csupport//Common/ 
> dtoa.h:535
> #1  0x00626721 in pow5mult (b=0x1426880, k=1185)
>     at ..//src//Csupport//Common/dtoa.h:620
> #2  0x00628011 in m3_dtoa (d=4.9406564584124654e-324, mode=2,  
> ndigits=14,
>     decpt=0x22bc74, sign=0x22bc60, rve=0x22bc68)
>     at ..//src//Csupport//Common/dtoa.h:2224
> #3  0x0061534d in Convert__InternalFromLongFloat  
> (M3_CKMnXU_buf=0x22be58,
>     M3_CtKayy_v=4.9406564584124654e-324, M3_AcxOUs_p=13,
>     M3_BTpO8m_style=2 '\002', M3_Bkn9rd_exponentChar=88 'X')
>     at ..\src\convert\Convert.m3:367
> #4  0x00614c1f in Convert__FromExtended (M3_CKMnXU_buf=0x22be58,
>     M3_C4YHmT_v=4.9406564584124654e-324, M3_AcxOUs_p=13,
>     M3_BTpO8m_style=2 '\002') at ..\src\convert\Convert.m3:282
> #5  0x005bb6ca in M3Buf__PutFloat (M3_DmgyYA_t=0x7fe9d290,
>     M3_DYj8sa_f=0x7fed4b5c) at ..\src\M3Buf.m3:156
> #6  0x005760c9 in ReelExpr__GenFPLiteral (M3_DopDyP_p=0x7fed4b4c,
>     M3_DmgyYA_buf=0x7fe9d290) at ..\src\exprs\ReelExpr.m3:278
> #7  0x0054bf68 in Expr__GenFPLiteral (M3_ES44mX_t=0x7fed4b4c,
>     M3_DmgyYA_mbuf=0x7fe9d290) at ..\src\exprs\Expr.m3:224
> #8  0x005301b2 in Constant__AddFPTag (M3_AjdbKy_t=0x7fed4abc,
>     M3_BlO1Kl_x=0x22bf68) at ..\src\values\Constant.m3:225
> #9  0x004cb94c in Value__AddFPTag (M3_EjfEr4_t=0x7fed4abc,
>     M3_BlO1Kl_x=0x22bf68) at ..\src\values\Value.m3:143
> #10 0x004cb6e1 in Value__ToFP (M3_D9M1dT__result=0x22bff4,
>     M3_EjfEr4_t=0x7fed4abc) at ..\src\values\Value.m3:120
> #11 0x004cbec3 in Value__Declare (M3_EjfEr4_t=0x7fed4abc)
>     at ..\src\values\Value.m3:202
> #12 0x004bb7dd in Scope__Enter (M3_DurAC9_t=0x7fed48e0)
>     at ..\src\misc\Scope.m3:239
> #13 0x004b2d70 in Module__CompileInterface (M3_DZ1mTg_t=0x7fecf77c)
>     at ..\src\values\Module.m3:870
> #14 0x004b2985 in Module__Compile (M3_DZ1mTg_t=0x7fecf77c)
>     at ..\src\values\Module.m3:836
> #15 0x0049fd4d in M3Front__DoCompile () at ..\src\misc\M3Front.m3:196
> #16 0x0049f37a in M3Front__Compile (M3_AT7GN4_input=0x22c1ec,
>     M3_AUoUsm_env=0x7fec084c, M3_BySCJy_options=0x7ff6415c)
>     at ..\src\misc\M3Front.m3:64
> #17 0x0040aad8 in Builder__RunM3 (M3_Bd9FNt_s=0x7ff3de1c,
>     M3_AXLf8B_u=0x7fecc1dc, M3_Bd56fi_object=0x7ff640e8)
>     at ..\src\Builder.m3:1454
> #18 0x0040927b in Builder__PushOneM3 (M3_Bd9FNt_s=0x7ff3de1c,
>     M3_AXLf8B_u=0x7fecc1dc) at ..\src\Builder.m3:1125
> #19 0x00408e94 in Builder__CompileM3 (M3_Bd9FNt_s=0x7ff3de1c,
>     M3_AXLf8B_u=0x7fecc1dc) at ..\src\Builder.m3:1076
> #20 0x00407b15 in Builder__CompileOne (M3_Bd9FNt_s=0x7ff3de1c,
> ---Type <return> to continue, or q <return> to quit---q
> M3_AXLf8B_u=0x7fQuit
> ) at ..\src\Builder.m3:911
> #21 0x00409f46 in Builder__CheckImp (M3_Bd9FNt_s=0x7ff3de1c,
>     M3_A7mgsK_u=0x7ff79d54, M3_EIVwTa_z=0x7ff79d68, M3_A2QN6Z_kind=1  
> '\001')
>     at ..\src\Builder.m3:1292
> #22 0x00409e45 in Builder__CheckImports (M3_Bd9FNt_s=0x7ff3de1c,
>     M3_A7mgsK_u=0x7ff79d54) at ..\src\Builder.m3:1279
> #23 0x00409acf in Builder__M3isStale (M3_Bd9FNt_s=0x7ff3de1c,
>     M3_AXLf8B_u=0x7fe5c270) at ..\src\Builder.m3:1229
> #24 0x00408e4b in Builder__CompileM3 (M3_Bd9FNt_s=0x7ff3de1c,
>     M3_AXLf8B_u=0x7fe5c270) at ..\src\Builder.m3:1071
> #25 0x00407b15 in Builder__CompileOne (M3_Bd9FNt_s=0x7ff3de1c,
>     M3_AXLf8B_u=0x7fe5c270) at ..\src\Builder.m3:911
> #26 0x004077e7 in Builder__CompileEverything (M3_Bd9FNt_s=0x7ff3de1c,
>     M3_Cw4bpV_schedule=0x7ff247f0) at ..\src\Builder.m3:871
> #27 0x0040391d in Builder__CompileUnits (M3_Bd56fi_main=0x7ff67014,
>     M3_EEuw3X_units=0x7ff7e73c, M3_C1FTrk_sys_libs=0x7ff3dd60,
>     M3_A2QN6Z_info_kind=17 '\021', M3_An02H2_mach=0x7ff7e63c)
>     at ..\src\Builder.m3:239
> #28 0x0040250a in Builder__BuildLib (M3_Bd56fi_lib=0x7ff67014,
>     M3_EEuw3X_units=0x7ff7e73c, M3_C1FTrk_sys_libs=0x7ff3dd60,
>     M3_AicXUJ_shared=1 '\001', M3_An02H2_m=0x7ff7e63c) at ..\src 
> \Builder.m3:36
> #29 0x0041afd0 in M3Build__DoLibrary (M3_An02H2_m=0x7ff7e63c,
>     M3_AcxOUs_n_args=1) at ..\src\M3Build.m3:1365
> #30 0x00477f27 in QMachine__DoCall (M3_An02H2_t=0x7ff7e63c,
>     M3_AcxOUs_n_args=1, M3_AicXUJ_isFunc=0 '\0', M3_AicXUJ_outer=0  
> '\0')
>     at ..\src\QMachine.m3:529
> #31 0x00476f1d in QMachine__Eval (M3_An02H2_t=0x7ff7e63c)
>     at ..\src\QMachine.m3:405
> #32 0x0047f1f3 in QMachine (M3_An02H2_t=0x7ff7e63c,
>     M3_Bd56fi_path=0x7ff939b0, M3_AicXUJ_from_code=0 '\0')
>     at ..\src\QMachine.m3:1660
> #33 0x0047f038 in QMachine (M3_An02H2_t=0x7ff7e63c,  
> M3_Bd56fi_path=0x7ff939b0)
>     at ..\src\QMachine.m3:1631
> #34 0x00417959 in M3Build (M3_ABp1Zk_t=0x7ff7e63c,  
> M3_Bd56fi_file=0x7ff939b0)
>     at ..\src\M3Build.m3:579
> #35 0x0041935f in M3Build__DoIncludeDir (M3_An02H2_m=0x7ff7e63c,
>     M3_AcxOUs_n_args=1) at ..\src\M3Build.m3:954
> #36 0x00477f27 in QMachine__DoCall (M3_An02H2_t=0x7ff7e63c,
>     M3_AcxOUs_n_args=1, M3_AicXUJ_isFunc=0 '\0', M3_AicXUJ_outer=0  
> '\0')
>     at ..\src\QMachine.m3:529
> #37 0x00476f1d in QMachine__Eval (M3_An02H2_t=0x7ff7e63c)
>     at ..\src\QMachine.m3:405
> #38 0x004756ef in QMachine__Evaluate (M3_An02H2_t=0x7ff7e63c,
>     M3_CYwAos_s=0x7ff93568) at ..\src\QMachine.m3:154
> #39 0x00486ad2 in Quake__Run (M3_An02H2_m=0x7ff7e63c,
> ---Type <return> to continue, or q <return> to quit---q
> M3_Bd56fi_source_file=0x7Quit
> ) at ..\src\Quake.m3:19
> #40 0x00415ee7 in M3Build__Run (M3_ABp1Zk_t=0x7ff7e63c,
>     M3_Bd56fi_makefile=0x7ff9243c) at ..\src\M3Build.m3:183
> #41 0x0042c706 in Main__DoIt () at ..\src\Main.m3:81
> #42 0x0042c9dc in Main_M3 (M3_AcxOUs_mode=1) at ..\src\Main.m3:195
> #43 0x005fa1ee in RTLinker__RunMainBody (M3_DjPxE3_m=0x63c020)
>     at ..\src\runtime\common\RTLinker.m3:399
> #44 0x005f9719 in RTLinker__AddUnitI (M3_DjPxE3_m=0x63c020)
>     at ..\src\runtime\common\RTLinker.m3:113
> #45 0x005f97a0 in RTLinker__AddUnit (M3_DjPxE5_b=0x42c9c7)
>     at ..\src\runtime\common\RTLinker.m3:122
> #46 0x00401085 in main (argc=1, argv=0x14218e8, envp=0x1420090)
>     at _m3main.mc:4
>
>
>
>
>
> Helping your favorite cause is as easy as instant messaging. You IM,  
> we give. Learn more.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://m3lists.elegosoft.com/pipermail/m3devel/attachments/20080317/44061f5c/attachment-0002.html>


More information about the M3devel mailing list