文書の過去の版を表示しています。


Errors

CINT

  • CINT で #include <cstdio> が書かれた macro を複数回実行すると、プログラムを閉じる時に segmentation violation が起きる。なんで?macro 中で #include <cstdio> を使ってはいけないようだ。関数などのコメントアウトの仕方を変えると、エラーの内容が変わるのでデバッグ仕辛いので注意。複数回 macro を実行する場合は #include に注意。
  • TH1::Fit(fitfunc,“R+”) で使用する fitfunc の具体的定義は macro の一番初めに書かないと segmentation violation が起きたり、
    Error: Cint::G__CallFunc::SetArgArray() must be initialized with 'Cint::G__CallFunc::SetFunc(G__ClassInfo* cls,char* fname,char* args,long* poffset)' first

    となったり、

     *** Break *** segmentation violation
    ===========================================================
    There was a crash.
    This is the entire stack trace of all threads:
    ===========================================================
    #0  0x00007f1e1d6c727c in __libc_waitpid (pid=15528, stat_loc=stat_loc
    entry=0x7ffdde5e5be0, options=options
    entry=0) at ../sysdeps/unix/sysv/linux/waitpid.c:31
    ...
    ...
    ...

    となったりする。

  • CINT で #include “TH1D.h” と書かれた macro を複数回実行すると、ROOT のプログラムを閉じる際に以下のエラーがでる。
    !!!Fatal Error: Interpreter memory overwritten by illegal access.!!!
    !!!Terminate session!!!
    
     *** Break *** segmentation violation
    
    ===========================================================
    There was a crash.
    This is the entire stack trace of all threads:
    ===========================================================
    #0  0x00007f2a4dc9127c in __libc_waitpid (pid=13574, stat_loc=stat_loc
    entry=0x7ffd1e99d8a0, options=options
    entry=0) at ../sysdeps/unix/sysv/linux/waitpid.c:31
    #1  0x00007f2a4dc14c72 in do_system (line=<optimized out>) at ../sysdeps/posix/system.c:148
    #2  0x00007f2a4e945cb9 in TUnixSystem::StackTrace() () from /home/kobayash/cern/root_v5.34.36/lib/root/libCore.so
    #3  0x00007f2a4e9478dc in TUnixSystem::DispatchSignals(ESignals) () from /home/kobayash/cern/root_v5.34.36/lib/root/libCore.so
    #4  <signal handler called>
    #5  0x00007f2a4d32588d in G__destroy_upto () from /home/kobayash/cern/root_v5.34.36/lib/root/libCint.so
    ...
    #24 0x00007f2a4e4d2ba7 in TRint::Run(bool) () from /home/kobayash/cern/root_v5.34.36/lib/root/libRint.so
    #25 0x0000000000401028 in main ()
    ===========================================================
    
    The crash is most likely caused by a problem in your script.
    Try to compile it (.L myscript.C+g) and fix any errors.
    If that does not help then please submit a bug report at
    http://root.cern.ch/bugs. Please post the ENTIRE stack trace
    from above as an attachment in addition to anything else
    that might help us fixing this issue.
    
    Root > 

    具体的には fit_eg.C を4回以上CINTで実行すると起こった。TH1D.h のインクルードをやめ、#include “TH1.h” とすると、問題がおきなくなった。なんで?

  • CINT で上で 2 つのマクロを実行する場合、それらのマクロに同じ名前の関数が存在し、それらの引数にデフォルト値が与えられていると、以下のエラーがでる。
    Error: Redefinition of default argument xxx.C:15:
    *** Interpreter error recovered ***
softwares/root/errors.1537966887.txt.gz · 最終更新: 2018/09/26 22:01 by kobayash
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0