error in datatypes.cpp

Help
Michael
2014-01-14
2014-01-15
  • Michael
    Michael
    2014-01-14

    Hi, I'm running GDL on RHEL 5.1, and am trying to get my IDL scripts to work. Astrolib is initializing OK, and I can open a plot window. However, my code crashes with this error:

    % Compiled module: LOADCT.
    % Compiled module: FILEPATH.
    % Compiled module: PATH_SEP.
    gdl: datatypes.cpp:90: static void* Data_< <template-parameter-1-1> >::operator new(size_t) [with Sp = SpDByte]: Assertion `bytes == sizeof( Data_)' failed.
    Abort
    

    I'm not sure what's going on here - I can't even see where in my code GDL is failing... the LOADCT makes me suspect the plotting part, where I am loading a colour table, and then using OPLOT to overlay some contours. Are you able to say more?

    Many thanks,
    Michael

     
  • Alain C.
    Alain C.
    2014-01-14

    Without more informations, hard to help you:

    -- could you provide information on version, e.g.:

    GDL> print, !gdl
    { 0.9.4 CVS Nov 4 2013 1383519600}

    -- which code do you run ? Could you extract a sub set
    to go direct to crash ?

    We really need users feedbacks to strength any part of the code
    and to add test cases.

    Alain

     
    • Michael
      Michael
      2014-01-14

      Hi Alain,

      GDL> print, !gdl
      GDL
      

      I'm not sure exactly why there is no version information!

      As for the code... I suspect the crash occurs somewhere here:
      (I am determining which pixels are saturated and overplotting them in red)

          loadct, 11, /silent   ; blue-red
          if strmid(instru, 0, 4) eq 'GMOS' then begin
              if namps gt 1 then satim = where(sat_im eq 1) else satim = where(im ge satlevel)
          endif else if keyword_set(sub) then satim = where(origim ge satlevel) else satim = where(im ge satlevel)
          if satim[0] ne -1 then begin
              xsat = satim mod ximsize
              ysat = ceil(satim / ximsize)
              if instru eq 'michelle'  or instru eq 'TReCS' or keyword_set(nopad) then begin
                  usersym, [-0.5, -0.5, 0.5, 0.5], [-0.5, 0.5, 0.5, -0.5], /fill
                  pzym = 8
                  symz = 1.2
              endif else begin
                  pzym = 3
                  symz = 1
              endelse
              oplot, xsat, ysat, color=255, psym=pzym, symsize=symz
          endif
          satustr = 'saturation limit ='+ strcompress(satlevel)
          if strmid(instru, 0, 4) eq 'GMOS' then begin
              if namps gt 1 then satustr = ''
          endif
          xyouts, xfu+0.05, yfu+0.01, satustr, color=255, /normal
          loadct, 0, /silent   ; B-W
      

      Is this any help? Thanks for your response.

      Michael

       
  • Michael
    Michael
    2014-01-14

    Also,

    % Function not found: GET_KBRD
    

    I'm assuming GET_KBRD hasn't been implemented yet?

    Cheers, Michael

     
  • Hi,

    It seems you're using a version of GDL that is over 5-year old. get_kbrd() is in GDL since Dec 2008. Behaviour of "print, !GDL" seems to confirm it. Please update to the latest version.

    Sylwester

     
  • Michael
    Michael
    2014-01-15

    Yikes! Thank you for the heads up Sylwester. I'll install a newer version and report my findings back in a separate thread.

    Cheers, Michael