CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): bindung ()
날 짜 (Date): 2003년 10월  9일 목요일 오후 05시 47분 13초
제 목(Title): Re: try catch..


 
 sigabort를 잡겠다는 것이 아니라

 exception을 throw하던 중 sigabort를 먹고 죽는 다는 얘기지요.

 backtrace해보면 

 #0  0xfe7d9740 in __sigprocmask () from /lib/libthread.so.1
#1  0xfe7ce970 in _resetsig () from /lib/libthread.so.1
#2  0xfe7ce110 in _sigon () from /lib/libthread.so.1
#3  0xfe7d1150 in _thrp_kill () from /lib/libthread.so.1
#4  0xff14b458 in raise () from /lib/libc.so.1
#5  0xff135a84 in abort () from /lib/libc.so.1
#6  0xa0d28 in _ZN10__cxxabiv111__terminateEPFvvE (handler=0xbe014 
<abort>)
    at ../../../../libstdc++-v3/libsupc++/eh_terminate.cc:47
#7  0xa0d64 in _ZSt9terminatev ()
    at ../../../../libstdc++-v3/libsupc++/eh_terminate.cc:57
#8  0xa0ed4 in __cxa_throw (obj=0x1182a0, tinfo=0xff3818ac, 
    dest=0x641cc <_ZN6OCICPP8OraErrorD1Ev>)
    at ../../../../libstdc++-v3/libsupc++/eh_throw.cc:80
#9  0xff3665dc in _ZN6OCICPP8CHECKERREP8OCIErrori ()
   from /home1/bindung/src/ocicpplib/lib/libocicpp.so.0
#10 0xff35b750 in _ZN6OCICPP6Cursor7prepareERKSs ()
   from /home1/bindung/src/ocicpplib/lib/libocicpp.so.0
#11 0xff35a458 in _ZN6OCICPP10Connection7prepareERKSsRNS_6CursorEi ()


 제가 호출한 함수가 Connection에 prepare함수.

 거기서 에러체크 함수인 CHECKERR을 탔지만 거기서 exception을 throw합니다.

 원래대로라면 try catch구문에서 이 exception을 잡아서 처리해야 하지만

 그냥 거기서 sigabort먹고 죽어버리는 군요..

 웹에서 찾아보니 gcc 2.95.1 version에서는

 try {
 }
 catch(...) {
 } 
 같은 구문에서 bug가 있다는 얘기를 봐서 compiler를 의심해 봤지만

 gcc 3.3 version으로 다시 해봐도 역시 마찬가지군요..

 
 @흠.. 분명히 linux에서는 잘 돌아가던 거구요. 저기서 사용하는 libocicpp가

  공개라이브러리긴 하지만 그다지 system dependent하게 만들어졌을것 같지 
않고

  제 코드 역시 system dependent하지 않은 것 같습니다만.. 흠.. 왜 그러는지

 모르겠군요.. 쩝..


[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.