文書の過去の版を表示しています。
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” とすると、問題がおきなくなった。なんで?