Dbx dumps

Hi,
I have just installed Sun Studio11 for Solaris 10 x86(version 3/5).
It works fine.
BUT :
After loading simple program (squares for example) using debug option in main menu,
three debug windows show up and then error message " dbx terminated (connection with dbx failed with wait(2) errors). So it is not "hanging" of dbx reported elsewhere.
If I start dbx simply in terminal it dumps immediately and produces core.
Nothing has changed after updating the system using UpdateManager(I did not install 2 compiler patches , because it demanded that I remove compiler product, otherwise I updated all) .
Andrzej

core 'core' of 2611:     /opt/SUNWspro/bin/dbx -g sync,stdio -c dbxenv suppress_startup_message
d2d23ce6 cpc_close (0) + 14
080f4466 ???????? (0, 1, 186a0, 14, 0, 846d0b8)
080f4600 ???????? (0, 0, d2d90468, 8046d18, 80f199e, 80f1900)
080f467b hwcfuncs_open (80f1900, 837689c, 8428a94, 8428a98, 8428a9c) + 23
080f199e ???????? (6, 846d0b8, 8047184, 8047184, 8202fd6, 8047350)
080f326c hwc_get_cpc_cpuver (8047350, 804724c, 83884c0, 0, 804717c, 6e6b6e75) + 14
08202fd6 __1cJColl_Ctrl2t5B6Mi_v_ (846d0b8, 1) + 11e
08200333 __1cMsp_new_state6FpnGTarget__pnLDbxCollCtrl__ (83884c0) + 27
080f9b42 main (5, 804724c, 8047264) + 13e
080f0e0a _start   (5, 80473b8, 80473ce, 80473d1, 80473dc, 80473df) + 7a
Another observation :
In the meantime I have made reinstall of the system using upgrade option.
Reinstall was broken, not all was installed. BUT dbx worked fine !!!!(It was preserved)
After reinstalling with "INITIAL" option system is OK but dbx dumps as before(I have installed sunstudio of course once again).
It could suggest some problems with shared libraries.
Andrzej

Similar Messages

  • Studio 10 dbx dumps core with access checking on

    I have an application that causes Studio 10 dbx to dump core on start with access checking turned on. It will run OK under Studio 9 dbx, but tends to kill dbx if I attempt to follow the stack when a violation is found.
    For some odd reason, 'suppress rui' does not work with it as well.
    What information can I provide to help identify this bug? I expect the application and its build environment are too big to send in.
    Cheers,
    Ian

    x86/AMD64 doesn't do access checking, or does it now?
    Anyway, here is the pstack:
    Cheers, Ian.
    core '/tmp/core' of 12721: /opt/studio10/SUNWspro/bin/../prod/bin/sparcv9/dbx sm70/icp/test/sparc
    ffffffff7e6a39c0 _kill (ffffffff7e7b0f88, 31b1, 2002, 100532d9d, 100532000, 100532) + 8
    00000001000bbaa4 ???????? (10062e, 100400, b, 100400, 100633000, 10053f5e0)
    ffffffff7e6a2dfc sigacthandler (b, ffffffff7fff8850, ffffffff7fff8570, b, 3d, 3d000000) + 2c
    --- called from signal handler with signal 11 (SIGSEGV) ---
    000000010025881c __1cHTypetabHGetType6Mii_pnEType__ (ffffffff7fffe738, 100999670, 100999680, 0, 0, ffffffff7
    fffb892) + c
    000000010029a01c __1cFStabsQmake_tactarglist6MpcrnHSymlist_pnHObjfile_ibb_2_ (ffffffff7fffe738, 7c, 1, 10099
    9670, 0, 0) + 104
    000000010029ae90 __1cFStabsZcafe_parse_templ_fun_inst6MpnHObjfile_pnDFun_pc5b_4_ (ffffffff7fffe738, 10099967
    0, 1009ba7d0, 1, ffffffff7d340fc2, ffffffff7fffb884) + 24c
    0000000100286c60 __1cFStabsIFuncDecl6MpnHObjfile_pnDFun_pcb_4_ (ffffffff7fffe738, 100999670, 1009ba990, 5f,
    4c, 1009ba990) + ec
    0000000100282828 __1cFStabsSNPatchProcessDebug6MpnHObjfile_pnEstab_pcIIbb_I_ (ffffffff7fffe738, 100999670, f
    fffffff7d349e14, ffffffff7d31df38, ffffffff7d34f364, ffffffff7fffe66c) + 1d8
    000000010024b478 ???????? (10076b050, 49e14, 0, de6, 0, 1)
    000000010024b8d8 ???????? (100999670, ffffffffffffffff, 103955440, 102eb6730, 1, 1)
    000000010024b6a8 __1cNReadLazyStabs6FpnHObjfile_bb_v_ (100999670, 10053f000, 1, 1, 10053f5e0, 100400) + e4
    00000001001dbae8 __1cGRtcFunTlocate_npatch_sites6M_v_ (103933330, 7, e, 80, 84, 103933330) + 80
    00000001001db888 __1cGRtcFunSlocate_patch_sites6ML_i_ (103933330, 51eb8400, ed11ad88, 100999a60, 81c7e008, 1
    ) + 784
    00000001001d6544 __1cKRtcLoadObjRrtc_process_check6Mb_v_ (103933330, 100400, 100983860, 1009c4e70, 100983870
    , ffffffffffffffff) + 6fc
    00000001001c714c __1cGRtcMgrPrtc_new_process6M_v_ (102c1ae30, 10065a400, 0, 0, 1, 10056fe74) + 80c
    00000001001c590c __1cGRtcMgrTtry_rtc_new_process6M_b_ (10065a400, 1005d4d05, 0, 10056f000, 10056f, 10076ac30
    ) + c
    00000001001c5544 ???????? (1, 1029df5a9, 10053f5e0, 10065a400, 5, 1002452c8)
    00000001000c7984 __1cSActionList_execute6FpnEList4nGAction___pnEProc_pnHHandler_pnJEventInst_nHLevel_e__v_ (
    102d13780, 102cb0340, 102d1e1c0, 102ab71d0, 1, 10053b) + 64
    0000000100166a4c __1cHHandlerSdecision_procedure6MpnEProc__v_ (102d1e1c0, 102cb0340, 100558, 100400, 1005585
    bc, 102ab71d0) + 158
    00000001001bfccc __1cKRecognizerHtrigger6MpnEProc__v_ (102d1e1c0, 102cb0340, 100400, 100581000, 100581ea8, 1
    0056c18d) + e8
    00000001001c0240 __1cKRecognizerIdispatch6FpnGTarget_pnEProc__v_ (10053f5e0, 102cb0340, 100400, 1, 0, 10064e
    370) + 58
    00000001001b0c44 __1cEProcNvcpu_dispatch6MpnEVCpu__b_ (102cb0340, 100766070, 1005468d0, 1002182a0, 100769888
    , 100645d30) + 384
    00000001001b0de8 __1cEProcQpervcpu_dispatch6MpnEVCpu__v_ (102cb0340, 10057c3d0, 102d3bc60, 10057c450, 10057c
    3d0, 100569599) + 14c
    00000001001b15d4 __1cEProcQgeneric_dispatch6MpnEVCpu__b_ (102cb0340, 10057c458, 100569, 100581000, 10056972b
    , 100581) + 1a8
    00000001001b1d4c __1cEProcCgo6MpnEVCpu_nGProcGo_b_v_ (102cb0340, 100569, 102be9050, cc4, 100581fe8, 1) + 52c
    000000010017ca14 __1cGdo_run6FpnGInterp_bnHLevel_e__i_ (100400, 100568000, 100400, 10053f5e0, 100400, 100400
    ) + 328
    00000001002bbba0 ???????? (1005983f7, 102ab8230, 10065b8d8, 0, 10066f510, 102b487e0)
    00000001002ba890 __1cNpdksh_execute6FpnGInterp_pnCop_i_i_ (10065b890, 102c81dc0, 0, 10065b890, 102bcf5a0, 10
    3539140) + 1c0
    00000001002a710c __1cLpdksh_shell6FpnGInterp_pnGSource__i_ (10065b890, 102cf6280, 100400, 100596d79, 100596d
    80, 1000bb4b0) + 4c0
    00000001000bfa5c __1cNmain_cmd_loop6FpnGInterp__v_ (10065b890, 100400, 100533d18, 100614178, 100581f10, 1005
    33) + a8
    00000001000c0a8c main (100400, 100532, 100533d18, 10065b890, 10053f5e0, 1) + b8c
    00000001000b409c _start (0, 0, 0, 0, 0, 0) + 17c                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Is there an way to get the value of a local string variable from core dump?

    Hi All,
    Please help me on this, How to extract the string variable content from the core file.
    During core file analysis using dbx, it puts value as CLASS against string local variables.
    But I need to know the exact value during the core dump.
    I'm able to print other than string variables.
    Is this possbile using dbx or is there any other tool can help me on this.
    Thanks in advance, please find the code details below:
    here is my core details:
    (dbx) where -h
    current thread: t@74
    [1] __lwp_kill(0x0, 0x6, 0x217b8, 0x7f950b94, 0x2, 0x7f0fb944), at 0x7f99fb84
    [2] raise(0x6, 0x0, 0x7f0fb958, 0x7f6a5434, 0x1, 0x7f0fb9a4), at 0x7f950b9c
    [3] abort(0x7f6bf0f8, 0x4, 0x7f6bf0b8, 0x15360, 0x1, 0x7f6bf0f8), at 0x7f936d10
    [4] exregister(0x7f6bf0fc, 0x4, 0x7f6bf0b8, 0x15360, 0x1, 0x7f6a5048), at 0x7f6a504c
    [5] exregister(0x7f6bf0f8, 0x7f6a505c, 0x7f6bf0f8, 0x7f6bb080, 0x0, 0x1), at 0x7f6a5060
    [6] exregister(0x7f0fbb28, 0x66bd8, 0xe4fd0, 0x7f6bb080, 0x7f6ba780, 0x1), at 0x7f6a4fd8
    [7] 0x7f6a5edc(0x7f6bae64, 0x0, 0x66bd8, 0x14cb8, 0x14928, 0x0), at 0x7f6a5edc
    =>[8] AreaManager::commitCombine(this = 0xe5234, parsedSetName = CLASS), line 369 in "AreaManager.cc"
    [9] TaskDispatcher::combineParsedSet(parsedSetName = CLASS), line 113 in "TaskDispatcher.cc"
    [10] CombineExecutor::run(this = 0x1312d8), line 159 in "CombineExecutor.cc"
    [11] thread_body(threadObj = 0x1312d8), line 35 in "ThreadUtils.cc"
    (dbx)
    (dbx) dump
    parsedSetName = CLASS
    parsedSetCombinedName = CLASS
    parserSetBuiltName = CLASS
    this = 0xe5234
    (dbx)
    (dbx) print parsedSetName
    dbx: cannot access address 0x7f6690f4
    (dbx)
    BR//Sahoo

    When I was running in a higher version, it gives follwing error:
    A loadobject was found with an unexpected checksum value.
    When using the same core dump binary, the result are different than the locally build binary
    This is the error it pointing now:
    if ((ptr = (CHAR *) malloc((unsigned int) size)) == NULL)
    (dbx) proc -map
    Loadobject mappings for current core file:
    0x00010000 /usr/omc/1.8.0.0.56/bin/PmLoader
    0x7fb80000 /usr/lib/libaio.so.1
    0x7fb30000 /usr/lib/libm.so.1
    0x7fbfa000 /usr/lib/libdl.so.1
    is being filtered by: /usr/lib/ld.so.1
    Warning: checksum in file(a5bd) doesn't match image(a5bf)
    0x7faf0000 /usr/lib/libelf.so.1
    Warning: checksum in file(38a7) doesn't match image(38a9)
    0x7fad0000 /usr/lib/libsocket.so.1
    0x7fa00000 /usr/lib/libnsl.so.1
    0x7f900000 /usr/lib/libc.so.1
    is being filtered by: /usr/platform/SUNW,Ultra-80/lib/libc_psr.so.1
    Warning: checksum in file(3b8c) doesn't match image(3ec6)
    0x7f890000 /usr/informix/lib/esql/libthsql.so
    0x7f830000 /usr/informix/lib/libthasf.so
    0x7f7b0000 /usr/informix/lib/esql/libthgen.so
    0x7f770000 /usr/informix/lib/esql/libthos.so
    0x7f700000 /usr/informix/lib/esql/libifgls.so
    0x7f9e0000 /usr/informix/lib/esql/libifglx.so
    0x7f6d0000 /usr/lib/libthread.so.1
    0x7f500000 /usr/lib/libCstd.so.1
    Warning: checksum in file(1fc4) doesn't match image(3f67)
    0x7f6a0000 /usr/lib/libCrun.so.1
    Warning: checksum in file(1a8d) doesn't match image(b1ea)
    0x7fba0000 /usr/lib/libw.so.1
    is being filtered by: libc.so.1
    0x7f4e0000 /usr/lib/libmp.so.2
    0x7f4a0000 /usr/lib/cpu/sparcv8plus/libCstd_isa.so.1
    Warning: checksum in file(0fc3) doesn't match image(27d6)
    0x7f9d0000 /usr/platform/sun4u-us3/lib/libc_psr.so.1
    0x7f410000 /usr/lib/nss_files.so.1
    0x7fbb0000 /usr/lib/ld.so.1 [LM_ID_LDSO]
    Warning: checksum in file(f2f2) doesn't match image(2a40)
    dbx ./PmLoader ./core
    For information about new features see `help changes'
    To remove this message, put `dbxenv suppress_startup_message 7.5' in your .dbxrc
    Reading PmLoader
    core file header read successfully
    Reading ld.so.1
    Reading libaio.so.1
    Reading libm.so.1
    Reading libdl.so.1
    Reading libelf.so.1
    Reading libsocket.so.1
    Reading libnsl.so.1
    Reading libc.so.1
    Reading libthsql.so
    Reading libthasf.so
    Reading libthgen.so
    Reading libthos.so
    Reading libifgls.so
    Reading libifglx.so
    Reading libthread.so.1
    Reading libCstd.so.1
    Reading libCrun.so.1
    Reading libw.so.1
    Reading libmp.so.2
    Reading libCstd_isa.so.1
    Reading libc_psr.so.1
    Reading nss_files.so.1
    WARNING!!
    A loadobject was found with an unexpected checksum value.
    See `help core mismatch' for details, and run `proc -map'
    to see what checksum values were expected and found.
    dbx: warning: Some symbolic information might be incorrect.
    t@1 (l@1) terminated by signal BUS (invalid address alignment)
    0x7f947974: t_delete+0x0068: clr [%o1 + 8]
    Current function is Malloc
    40 if ((ptr = (CHAR *) malloc((unsigned int) size)) == NULL)
    (dbx)
    (dbx) where -h
    current thread: t@1
    [1] t_delete(0x17c980, 0x470, 0x1ef778, 0x7f9bc000, 0x0, 0x0), at 0x7f947974
    [2] mallocunlocked(0x414, 0x0, 0x0, 0x7f9bc000, 0x0, 0x0), at 0x7f947004
    [3] malloc(0x414, 0xebae0, 0x8, 0xffbfc9a8, 0xffbfc9a0, 0x1a3791), at 0x7f946e38
    =>[4] Malloc(size = 1044U), line 40 in "Malloc.c"
    [5] Drain_Socket(sc = 0x1ab100, fd = 10, block = 0xffbfce44), line 1648 in "ipc_sockio.c"
    [6] Sockio_Refresh(instance = 0x1ab100, fd = 10U, readable = 1, writeable = 0, block = 0xffbfce44), line 3465 in "ipc_sockio.c"
    [7] do_Refresh(cid = 10U, readable = 1, writeable = 0, block = 0xffbfce44), line 1238 in "ipc_IO.c"
    [8] IO_Refresh(block = 0, file_descriptor = -1), line 685 in "ipc_IO.c"
    [9] ipc_receive_message(gid = 0xffbfcf88, reply = 0xffbfd080, buffer = 0x11ae08 "", len = 0xffbfcf34, block = 0), line 313 in "ipc_services.c"
    [10] IPCProcessor::receiveMessage(this = 0x1172d0, channelID = 2U, pReplyChannelID = 0xffbfd080), line 312 in "IPCProcessor.cc"
    [11] IPCProcessor::mainLoop(this = 0x1172d0, pHandler = 0xf9c28), line 203 in "IPCProcessor.cc"
    [12] IPCService::mainLoop(pMediator = 0x1172d0, pHandler = 0xf9c28), line 51 in "IPCService.cc"
    [13] main(argc = 3, argv = 0xffbfe1f4), line 91 in "PmLoader.cc"
    I got another instance of core dump in same m/c
    Edited by: chittusun on Nov 5, 2008 5:19 AM

  • Critical CoreDumps in our Application Servers with Coherence

    Dear Support team,
    We are facing few issues with our C++ AppServer binary which are Coherence enabled. We are using the libcoherence.so provided by Oracle. We find the dumps are occuring only when Coherence is enabled and our binary looks good when Coherence is disabled. The below coredump occurred somewhere internally within Coherence, please shed some lights on the below dump and advise.
    ====================
    t@9 (l@9) terminated by signal SEGV (no mapping at the fault address)
    Current function is coherence::lang::Object::_attach
    641 LifeCycle nState(m_atomicLifeCycle.peek());
    (dbx) where
    current thread: t@9
    =>[1] coherence::lang::Object::_attach(this = 0xf71fb328, fEscaped = true), line 641 in "Object.hpp"
    [2] coherence::lang::Object::wait(0x29bfe48, 0xfa63d350, 0xfe275244, 0x1a81, 0x29c27d0, 0xfdf88a80), at 0xfab906d4
    [3] coherence::component::util::Daemon::onWait(0x29bbc30, 0xf71fb510, 0x29bfe48, 0xf71fb510, 0xfdf88a80, 0xf71fb500), at 0xfa757470
    [4] coherence::component::util::Daemon::run(0x29bbc30, 0xfe6ea03c, 0xfe6ea03c, 0xf71fb5a0, 0x1, 0xf71fb5c0), at 0xfa75800c
    [5] coherence::lang::Thread::run(0xf71fbed0, 0x29bbf40, 0xfdf88a80, 0x29c0b20, 0xf71fbf28, 0xfe4eab9c), at 0xfa9d9918
    [6] coh_startPosix(0x17dfd38, 0xf71fc000, 0x0, 0x0, 0xfa629ee8, 0xfe275df0), at 0xfa614f74
    (dbx) dump
    fEscaped = true
    nState = UNION
    this = 0xf71fb328
    cHandle = 4096U
    (dbx)
    ====================

    Can you please provide the following information:
    - Coherence version
    - OS version
    - Compiler version
    I would also suggest that you validate that you are on the minimum supported compiler version paying particular attention the patch level, see http://docs.oracle.com/cd/E24290_01/coh.371/e22839/gs_install.htm#BABDCDFG.
    thanks,
    Mark
    Oracle Coherence

  • BufferUnderflowException using DbDump

    Mark,
    We are also seeing sequence skipping in production, perhaps a function of the cleaner not catching up (although we have two cleaner threads configured).
    Yesterday, in an attempt to perform maintenance that would bring our growing log files back down to a reasonable number, I was running a sequence of DbDump/DbLoads through a tool I wrote that simply iterates through the database names in each log file set, dumps those to a temp dir, and rebuilds a new log file set from the dump files (resulting in many fewer log files) by importing each database back into the new environment.
    While doing this, I got a BufferUnderflowException on a logfile set that had perfect sequence numbers, which surprised me. Thus, I'm not able to do a DbDump and DbLoad on that data set. The exception stack trace I get is:
    ERROR 2009-01-26 07:01:03,157 | Maintenance:dumpAndReload | error dumping persist#FlightPlanStore#com.foreflight.plan.FlightPlanning from /workspace/mymetar_com/exploded/webapp/data/flightplan
    com.sleepycat.je.DatabaseException: (JE 3.3.75) fetchTarget of 0x3/0x68ef71 parent IN=17457 IN class=com.sleepycat.je.tree.IN lastFullVersion=0x8/0x8c47f8 parent.getDirty()=false state=0 com.sleepycat.je.DatabaseException: java.nio.BufferUnderflowException
    at com.sleepycat.je.tree.IN.fetchTarget(IN.java:1244)
    at com.sleepycat.je.tree.Tree.getNextBinInternal(Tree.java:1403)
    at com.sleepycat.je.tree.Tree.getNextBin(Tree.java:1266)
    at com.sleepycat.je.dbi.CursorImpl.getNextWithKeyChangeStatus(CursorImpl.java:1629)
    at com.sleepycat.je.dbi.CursorImpl.getNext(CursorImpl.java:1499)
    at com.sleepycat.je.Cursor.retrieveNextAllowPhantoms(Cursor.java:2181)
    at com.sleepycat.je.Cursor.retrieveNext(Cursor.java:1991)
    at com.sleepycat.je.Cursor.getNext(Cursor.java:777)
    at com.sleepycat.je.util.DbDump.dump(DbDump.java:350)
    at com.foreflight.backup.Maintenance.dumpAndReload(Maintenance.java:104)
    at com.foreflight.backup.MaintenanceTest.testMaintenFlightplan(MaintenanceTest.java:71)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at junit.framework.TestCase.runTest(TestCase.java:154)
    at junit.framework.TestCase.runBare(TestCase.java:127)
    at junit.framework.TestResult$1.protect(TestResult.java:106)
    at junit.framework.TestResult.runProtected(TestResult.java:124)
    at junit.framework.TestResult.run(TestResult.java:109)
    at junit.framework.TestCase.run(TestCase.java:118)
    at junit.textui.TestRunner.doRun(TestRunner.java:116)
    at com.intellij.rt.execution.junit.IdeaTestRunner.doRun(IdeaTestRunner.java:65)
    at junit.textui.TestRunner.doRun(TestRunner.java:109)
    at com.intellij.rt.execution.junit.IdeaTestRunner.startRunnerWithArgs(IdeaTestRunner.java:24)
    at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:118)
    at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:40)
    Caused by: com.sleepycat.je.DatabaseException: java.nio.BufferUnderflowException
    at com.sleepycat.je.log.LogManager.getLogEntryFromLogSource(LogManager.java:785)
    at com.sleepycat.je.log.LogManager.getLogEntry(LogManager.java:661)
    at com.sleepycat.je.tree.IN.fetchTarget(IN.java:1215)
    ... 26 more
    Caused by: java.nio.BufferUnderflowException
    at java.nio.Buffer.nextGetIndex(Buffer.java:398)
    at java.nio.HeapByteBuffer.get(HeapByteBuffer.java:117)
    at com.sleepycat.je.log.LogUtils.readUnsignedInt(LogUtils.java:54)
    at com.sleepycat.je.log.LogEntryHeader.<init>(LogEntryHeader.java:91)
    at com.sleepycat.je.log.LogManager.getLogEntryFromLogSource(LogManager.java:696)
    ... 28 more
    With this, I figured there is some corruption and I need to recover. I abandoned the dump/load java util I wrote and reverted to the command line DbScavenger and DbLoad utils. I can run a DbScavenger and dump something to a target directory, but the result doesn't seem to have what I might expect. There are a bunch of "dbX.dump" files and one "<index>.dump" file instead of a set of "<index name>.dump" files. Maybe this is a result of the tools not being able to recover all the data? I'm wondering if I have a time bomb with this set of logfiles in production, where some keys/records can be accessed, but others not, and just we haven't had users that have corrupted data access their records yet. Happy to upload the logfiles somewhere if having these would be helpful. It's time we buy that maintenance This is a mission critical db for us.
    -tyson

    Tyson,
    Thanks for posting a new thread.
    The BufferUnderflowException you're getting is not related to log cleaning / file deletion, so whether there are any deleted files is unrelated.
    This exception is the equivalent of a checksum failure, but it is detected earlier than the checksum verification can take place, while attempting to parse the log entry header. It has the same meaning as a checksum: The log is corrupt, possibly as the result of a hardware, file system or OS failure.
    In this particular case I believe the log file is incomplete, although I'm not sure that tells us anything about why the corruption occurred. JE was attempting to fetch this LSN: 0x3/0x68ef71. The file is 00000003.jdb and the entry is at offset 0x68ef71. You may want to take a look at the length of that file and see whether it ends just past this offset.
    The three approaches for dealing with a file corruption are to 1) revert to a backup, 2) recreate the data from some other source, or 3) try to scavenge the file and reconstruct the data. You are attempting (3) so I assume you don't have a useful backup or another source for the data. Is that correct?
    DbScavenger outputs a dump file per database. The name of the file has the name of the database in it, but if the name cannot be determined then it uses the internal database ID instead. In the latter case, you'll have to figure out what database it belongs to by examining the contents. Assuming that you can determine which database a file belongs to, you can use DbLoad to re-create that database in fresh environment.
    DbScavenger attempts to skip over corrupt portions of the log files and it writes out only the records it can read successfully -- the records that are fully intact and have valid checksums. How useful this is depends on how much is corrupted and whether you have the ability to piece together what is left. You'll need to examine the output and try to determine for yourself whether it is worthwhile to try to reconstruct the data from that information, or use approach (1) or (2) instead.
    --mark                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Dbx core dumping

    dbx core dumping when I debug my application with RTC enable (I'm truying to dectect some memory leaks in my code). and I'm getting the following
    RTC: Enabling Error Checking...
    RTC: Running program...
    (/opt/SUNWspro/bin/../WS6U2/bin/sparcv9/dbx) suppress rui
    (/opt/SUNWspro/bin/../WS6U2/bin/sparcv9/dbx) cont
    t@10 (l@10) signal SEGV (no mapping at the fault address) in __rtc_trap_handler at 0xff2e1148
    0xff2e1148: __rtc_trap_handler+0x0058: ld [%l5], %l0
    dbx: warning: undefined type number (0,158) at /export/home/husam/release/lib/libstorage_s.so.1:backend.c stab #207 sqlca:(0,158),
    assuming type `int {assumed}'
    dbx: warning: undefined type number (0,211) at /export/home/husam/release/lib/libstorage_s.so.1:backend.c stab #530 host:(0,211),
    assuming type `int {assumed}'
    dbx: warning: undefined type number (0,212) at /export/home/husam/release/lib/libstorage_s.so.1:backend.c stab #531 pwd:(0,212),
    assuming type `int {assumed}'
    dbx: warning: undefined type number (0,213) at /export/home/husam/release/lib/libstorage_s.so.1:backend.c stab #532 usrid:(0,213),
    assuming type `int {assumed}'
    dbx: warning: undefined type number (0,214) at /export/home/husam/release/lib/libstorage_s.so.1:backend.c stab #533 address:(0,214),
    assuming type `int {assumed}'
    dbx: warning: undefined type number (0,228) at /export/home/husam/release/lib/libstorage_s.so.1:backend.c stab #577 module:(0,228),
    assuming type `int {assumed}'
    dbx: warning: undefined type number (0,237) at /export/home/husam/release/lib/libstorage_s.so.1:backend.c stab #638 data:(0,237),
    assuming type `int {assumed}'
    dbx: warning: undefined type number (0,238) at /export/home/husam/release/lib/libstorage_s.so.1:backend.c stab #639 dest:(0,238),
    assuming type `int {assumed}'
    dbx: warning: undefined type number (0,846) at /export/home/husam/release/lib/libstorage_s.so.1:backend.c stab #1136 username:G(0,846),
    assuming type `int {assumed}'
    Current function is queue_message
    751 EXEC SQL CALL p_message.queue(:seq,:dest, :data, :notempty, :ret);
    (/opt/SUNWspro/bin/../WS6U2/bin/sparcv9/dbx) where
    current thread: t@10
    [1] sqlscht(0x48708, 0x47914, 0xa, 0x1, 0x3, 0xa), at 0xfe8cd0f8
    [2] sqldbid(0x48708, 0xfacf8aa8, 0x4dbf8, 0xff0d180c, 0x4, 0x390), at 0xfe8b0fec
    [3] sqlexp(0x48708, 0x1, 0x7a, 0x7a, 0xfacf8aa8, 0xfedecb18), at 0xfe8b4208
    [4] sqlcmex(0x0, 0x4dbf8, 0xfacf8aa8, 0xff0d18a6, 0xfedecafc, 0xfee1689c), at 0xfe8ab770
    [5] sqlcxt(0xfacf9cac, 0xff0e3d84, 0xfacf8aa8, 0xff0d18a6, 0xfacf9d48, 0xa), at 0xfe8abdbc
    Segmentation Fault (core dumped)
    Some iformation you might need:
    Compiler : code compiled with cc version 6.2
    Debugger : 6.2 patch 111683-03
    OS : Solaris 8 patch 108528-12
    Machine : E250
    Thanks

    /export/home/husam/release/lib/libstorage_s.so.1:backend.c stab #530 host:(0,211),The key to your problem is probably the stabs reading error.
    How was backend.c compiled?
    Normally dbx will load stabs information on demand as needed.
    You can start dbx and use the "module" command to load
    the stabs information right away without running the program or using RTC.
    Try this:
    (dbx) module backend.o
    Does that cause the stabs warnings?
    If you can "repair" or "normalize" the stabs information in that module,
    the crash will probably go away.

  • Core dump: dbx - analysing C++ object

    Hi,
    Is there a way to analyse the content of a C++ object from a core dump? I'm looking at crash that occurred in a member method and I need to see the values of some member attributes of this object. First of where is the "this" pointer stored? Is there a documentation that describes what the object layout is in memory?
    Thanks in advance.

    I am facing a somewhat similar symptom. dbx6.0 (SunOS5.6/purify4.5.1) will core dump when I say "run <arg1> <arg2>" at the prompt while tracing a purified-executable; dbx will NOT dump core if that executable is not purify'd. The message I get is:
    dbx: internal error: signal SIGSEGV (no mapping at fault address)
    dbx's core dump will appear in </vol03/kiran/tmp>
    Abort(coredump)

  • Help: dbx core dump, solaris 10, amd64

    Hi,
    Recently I run into the following when I debug a core dump,
    (dbx) where
    dbx: internal error: signal SIGSEGV (no mapping at the fault address)
    dbx's coredump will appear in /tmp
    Abort (core dumped)
    -bash-3.00$ dbx -V
    Sun Ceres DBX Debugger 7.7 SunOS_i386 2008/10/22
    For information about new features see `help changes'
    To remove this message, put `dbxenv suppress_startup_message 7.7' in your .dbxrc
    (dbx)
    I wonder if anyone has some idea of this bug, is it known? Is it fixed in sunstudio 12 u1?
    If needed, I can supply /tmp/core dumped by dbx.
    Thanks,

    -bash-3.00$ cat /etc/release
    Solaris 10 5/08 s10x_u5wos_10 X86
    Copyright 2008 Sun Microsystems, Inc. All Rights Reserved.
    Use is subject to license terms.
    Assembled 24 March 2008
    -bash-3.00$ pstack /tmp/core
    core '/tmp/core' of 11962: /z/tools/SUNWspro/bin/../prod/bin/amd64/dbx ./gp3310/bin/postgres core
    fffffd7fff1bc99a lwpkill () + a
    fffffd7fff161c89 raise () + 19
    fffffd7fff141210 abort () + 90
    0000000000565bb4 ???????? ()
    fffffd7fff1b7176 __sighndlr () + 6
    fffffd7fff1aba72 call_user_handler () + 252
    fffffd7fff1abc8e sigacthandler (b, fffffd7fffdfeef0, fffffd7fffdfeb90) + de
    --- called from signal handler with signal 11 (SIGSEGV) ---
    00000000007854a8 SUNWXUnw_Decode_FDE () + 324
    000000000078393b ???????? ()
    0000000000783a74 ???????? ()
    000000000060345d __1cLUnwindStackIdown_one6M_i_ () + 1d
    00000000005e7185 __1cFFramePunwind_down_one6MpnGPstack__b_ () + e1
    00000000005e77c8 __1cFFrameLcreate_next6FpnGPstack_i_p0_ () + 2e0
    0000000000677471 __1cGPstackRcreate_next_frame6M_pnFFrame__ () + 59
    0000000000677d00 __1cGPstackJwalkstack6MipnFFrame_bpF2pv_b3_2_ () + 78
    0000000000678bc1 __1cGPstackIwherecmd6Miibpv_v_ () + 221
    000000000060c9a5 __1cVDbxWhereCmdProcessingHprocess6Mippc_i_ () + 151
    000000000060ca5a __1cJksh_where6FpnGInterp_ippcpv_i_ () + 32
    000000000072f3ea ???????? ()
    000000000072ecfe __1cNpdksh_execute6FpnGInterp_pnCop_i_i_ () + 946
    000000000071d3ac __1cLpdksh_shell6FpnGInterp_pnGSource__i_ () + 468
    0000000000569254 __1cNmain_cmd_loop6FpnGInterp__v_ () + 9c
    0000000000569ba5 main () + 705
    000000000055defc ???????? ()
    Thanks,

  • Why dbx core dumps on input core file?

    Hi,
    We have a Solaris 10 machine, on which dbx always core dumps when input any core files to it. What would possibly wrong with this machine? Or where should we look to find some clues?
    Thanks a lot,
    pam

    Please create a perl script using the text below:
    #!/usr/bin/perl
    use File::Find;
    sub wanted {
      return unless -x && -f;
      return unless /.*\.so\.[0-9]$/;
      return unless `/bin/file $_ | grep 64-bit`;
      $out = `elfdump -e $_ | grep e_shoff`;
      $out =~ m/e_shoff:\s+(0x[0-9a-f]+)\s/;
      if ($1 =~ m/[4c]$/) {
         print "bad alignment in file: $File::Find::name\n";
    print "Looking for bad ELF section header table alignment in 64-bit files\n";
    find(\&wanted, ( "/lib", "/usr/lib" ));Then, make it executable and run it (does not need root permissions):
    any_user$  chmod +x check_library_alignment.pl
    any_user$  ./check_library_alignment.pl
    If the perl script reports mis-aligned libraries (elfsign modifies the alignment), this looks to be bug 6283299. If you are current on patches for Solaris as well as your SunStudio installation, you'll need to raise an SR requesting the fix. If you are not current on patches, you could start with SunStudio patches which was subsequently patched to address elfsign alignments.
    Source: http://technopark02.blogspot.com/2006/01/64-bit-dbx-internal-error-signal.html

  • Debugging crash dump in dbx-host

    I was debugging a core generated from the live box and faced following error.
    The dbx is not able to map the address and giving following errors
    core file header read successfully
    Reading ld.so.1
    dbx: core file read error: address 0xffffffff7f725d48 not available
    dbx: core file read error: address 0xffffffff7f72e000 not available
    dbx: warning: Dbx could not initialize rtld_db
    Make sure this is the same version of Solaris where the core dump originated.
    Use `help core mismatch' for more info.
    program terminated by signal SEGV (no mapping at the fault address)
    0x000000010001e668: a32m60+0x0188: cmp %l5, %g5
    dbx: core file read error: address 0xffffffff7fffc630 not in data space
    dbx: core file read error: address 0xffffffff7fffc6e0 not in data space
    dbx: attempt to read frame failed -- cannot derive frame pointer
    The host where is the core had generated and dbx host are on same version of solaris.

    Did you look at `help core mismatch' topic? It explains the problem you're facing in good detail. Although there's a chance that what you're seeing is the dbx bug.

  • Core dump: dbx stack trace

    Can anyone point to a good doco on how to interpret stack trace from Solaris core file?
    For example,
    strcasecmp(0xfedf7cd8, 0x47534b53, 0x4b3ee0, 0x619c50, 0xff327234, 0xff33c000), at 0xff2cf390
    what do those 6 addresses in brackets represent?
    Thanks

    Please take a look at http://forum.sun.com/thread.jspa?forumID=10&threadID=9801
    or search this forum for 'pstack output format'
    Regards,
    Sergey.

  • Segment fault (Core dump)

    Hi
    when i run the following Pro*c file in Unix Environment im getting the SEGMENTATION FAULT(CORE DUMP) error. I used DBX to debug the code. I couldnt find out the proper reason for this error form the dbx output.
    This is the output i got from DBX.
    *signal SEGV (no mapping at the fault address) in _doprnt at 0xfb98736c*
    *0xfb98736c: _doprnt+0x2798:     stb     %o0, [%o1]*
    I did the showmemuse and show leaks, the output for this commands :
    (dbx) showmemuse
    Checking for memory use...
    Blocks in use report (blocks in use: 575 total size: 328086 bytes)
    Total % of Num of Avg Allocation call stack
    Size All Blocks Size
    ======= ==== ====== ====== =======================================
    134876 41% 30 4495 kpummapg < kghgex
    18098 5% 1 18098 lxldlbb < lxlinit < kpummpin < kpupin < sqgctx < sqgrct < sqlcmex < sqlcxt
    16552 5% 4 4138 kogmapg < kghgex
    16516 5% 4 4129 kogmapg < kogmasg
    12288 3% 6 2048 nlhtnsl < nlhthnew
    10350 3% 5 2070 calloc < nsbGetBFS
    9688 2% 1 9688 kouogini < kouoini < kpuinit0 < kpuinit < sqgctx < sqgrct < sqlcmex < sqlcxt
    8200 2% 1 8200 findbuf < doprnt < _fprintf < main
    8120 2% 4 2030 sqlrlc < sqlcopydfn
    8080 2% 1 8080 kpuinit0 < kpuinit < sqgctx < sqgrct < sqlcmex < sqlcxt < main
    7168 2% 1 7168 calloc < nsgbliuc < nsgblini < niotns < nigcall < osncon < kpuadef < upiini
    7168 2% 3 2389 lxldlod < lxdlobj
    5976 1% 4 1494 sqlrlc < sqlcopydfn
    4640 1% 1 4640 sqlrlc < sqldrl < sqlexp < sqlcmex < sqlcxt < get_pub_dates < main
    4640 1% 1 4640 sqlrlc < sqlbrl < sqlexp < sqlcmex < sqlcxt < get_pub_dates < main
    4128 1% 1 4128 calloc < nsgbliuc < nsgblini < niotns < nigcall < osncon < kpuadef < upiini
    4024 1% 1 4024 sqlrlc < sqlbrl < sqlexp < sqlcmex < sqlcxt < get_pub_dates < main
    3408 1% 1 3408 sqlrlc < sqldrl < sqlexp < sqlcmex < sqlcxt < get_pub_dates < main
    2452 <1% 8 306 calloc < nsmal
    2156 <1% 7 308 calloc < nlemfins
    (dbx) showleaks
    Checking for memory leaks...
    Actual leaks report (actual leaks: 1 total size: 30 bytes)
    Total Num of Leaked Allocation call stack
    Size Blocks Block
    Address
    ====== ====== ========== =======================================
    30 1 0x9c9c8 getOutFileName < main
    Possible leaks report (possible leaks: 0 total size: 0 bytes)
    i know its because of Pad pointer and something related to Pointer or array overflow. But i couldnt find out where exactly happening....
    Following is my Code, please help me to find out the error and what i need to change in my code:
    #ifndef ORA_PROC
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <time.h>
    #include <ctype.h>
    #include <math.h>
    #else
    typedef struct FILE FILE;
    #endif
    /*** Added by TCS Begins ***/
    char getOutFileName(char );
    char getEnvVar(char );
    void prepare_declare_oracle_cursors();
    void get_calendar_dates();
    void get_issues();
    void get_master_cusip_no();
    void get_run_date_finish();
    void get_payments();
    int get_pub_dates();
    void get_rights();
    void get_s_h_meetings();
    void get_special_codes();
    void get_agents();
    void get_currency();
    void get_payment_codes();
    void get_issue_codes();
    void get_standard_footnotes();
    void get_index_codes();
    void get_exchanges();
    void get_tax_codes();
    void get_tenders();
    int check_if_holiday(int );
    void sql_error(int , int , char *);
    void login_error();
    void no_pub_dates();
    void no_cal_dates();
    void no_finish_date();
    void save_payment_footnote(char , char [3],int , char );
    void save_issue_footnote(char );
    int print_footnotes();
    int print_foreign_tax();
    int get_partial_run_time();
    void save_rght_footnotes();
    int print_supplimental();
    int convert_tender_price(char *);
    void pad_s_h_meetings();
    int strip_out_codes(char *);
    char *getSqlLogonString();
    /**** TCS ADD Ends ****/
    EXEC SQL INCLUDE sqlca;
    EXEC SQL INCLUDE ddr_create_all_tapes.h;
    #define TRUE 1
    #define ORA_NOT_FOUND     ( sqlca.sqlcode == 1403 )
    /* The Definitions of SUCCESS and FAILURE were switched to test the
    idea that SUCCESS should be Zero and FAILURE should be Non-Zero
    #define SUCCESS 1
    #define FAILURE 0
    #define SUCCESS 0
    #define FAILURE -1
    #define SYSOK          0
    #define SYSERR          1
    #define DEBUGGING     0
    #define DEBUG_LEVEL     0
    /*     #define DEBUGGING     1
         #define DEBUG_LEVEL     2
    int          first_cal_date;
    int          footnote_count;
    int          foreign_count;
    int          last_cal_date;
    int          total_records;
    int          which_tape = 0;
    char          cusip_table_name[30];
    char          field_type_code;
    char          final_cusip_number[10];
    /**** char          footnote_text[300][300];
    char          foreign_text[60][100]; **** Commented by TCS as per the change request ****/
    /*** Added by TCS as per the change request ***/
    char          footnote_text[200][300];
    char          foreign_text[200][300];
    /*** TCS Add Ends ***/
    char          freq_type_code;
    char          init_cusip_number[10];
    char          rec_type_code;
    char          payment_where_clause[600];
    char          rights_where_clause[600];
    char          tenders_where_clause[600];
    char          s_h_meet_where_clause[600];
    char          last_run_time[18];
    char          supp_info_buffer[321];
    int          call_flag;
    int          tenders_flag;
    int          rights_flag;
    int          s_h_meet_flag;
    int          rght_foot_pos;
    double          hold_double;
    int          hold_int;
    char          hold_char[100];
    int i=0;
    FILE      *fp;
    FILE     pfp;          / this is used for a report file to correspond to
    the partial tape file */
    int main(int argc, char argv[]) / Modified by TCS */
         char          ddr_tape_name[100];
         char          ddr_partial_rpt[100];
         char          copyright_notice[100];
         long           file_position;
         char           *logname;
         /* READ IN PARAMETERS AND SET UP VARIABLES */
         memset (oracle_uid.arr, 0, sizeof(oracle_uid.arr));
    memset (oracle_pwd.arr, 0, sizeof(oracle_pwd.arr));
    strcpy (oracle_uid.arr, argv[1]);
    oracle_uid.len = strlen(oracle_uid.arr);
    strcpy (oracle_pwd.arr, argv[2]);
    oracle_pwd.len = strlen(oracle_pwd.arr);
    printf("Calling getSqlLogonString");
    logname = getSqlLogonString();
         which_tape = atoi(argv[1]);
         memset (last_run_time, 0, sizeof(last_run_time));
         if ( ( DEBUGGING ) && ( DEBUG_LEVEL > 1 ) )
         printf ("Oracle username: %s\n", oracle_uid.arr);
         printf ("Oracle password: %s\n", oracle_pwd.arr);
         printf ("Oracle username/password@database: %s\n", logname); /** Added by TCS **/
         printf ("Which Tape: %d\n", which_tape);
         hold_double = 0.0;
         hold_int = 0;
         memset (hold_char, ' ', sizeof(hold_char));
         EXEC SQL WHENEVER SQLERROR DO login_error();
    /*      EXEC SQL CONNECT :oracle_uid IDENTIFIED BY :oracle_pwd; */
         EXEC SQL CONNECT :logname ;
         printf ("Connected to ORACLE... \n");
         EXEC SQL WHENEVER SQLERROR continue;
         get_pub_dates();
         memset (ddr_tape_name, 0, sizeof(ddr_tape_name));
         memset (ddr_partial_rpt, 0, sizeof(ddr_partial_rpt));
         memset (cusip_table_name, 0, sizeof(cusip_table_name));
         memset (payment_where_clause, 0, sizeof(payment_where_clause));
         memset (rights_where_clause, 0, sizeof(rights_where_clause));
         memset (tenders_where_clause, 0, sizeof(tenders_where_clause));
         memset (s_h_meet_where_clause, 0, sizeof(s_h_meet_where_clause));
         /* SET UP VARIABLES BASED ON THE DIFFERENT FREQUENCY OF TAPE */
         switch (which_tape)
              case 0:
                   get_partial_run_time();
                   /*sprintf (ddr_tape_name,
                        "idb_tape$out:ddr_partial%1d.asc", p_count); ** Comented by TCS **/
                   sprintf (ddr_tape_name,"%s%1d.%s",getOutFileName("DDR_PARTIAL"),p_count,getEnvVar("DDR_PARTIAL_EXT_ASC")); /* Added by TCS */
                   strcpy (cusip_table_name,
                        "IDB.DDR_PARTIAL_TAPE_TABLE");
                   /*sprintf (ddr_partial_rpt,
                        "idb_tape$out:ddr_partial%1d.rpt", p_count); ** Commented by TCS **/
                   sprintf (ddr_partial_rpt,"%s%1d.%s",getOutFileName("DDR_PARTIAL"),p_count,getEnvVar("DDR_PARTIAL_EXT_RPT")); /* Added by TCS */
                   get_calendar_dates();
                   freq_type_code = '0';
                   sprintf (payment_where_clause,
    "AND PYMT_PUB_DATE IS NULL \
    AND ((PYMT_ADD_DATE_TIME >= TO_DATE('%15.15s', 'DD-MON-RR HH24:MI') \
    AND PYMT_ADD_DATE_TIME < TO_DATE('%15.15s', 'DD-MON-RR HH24:MI')) \
    OR (PYMT_UPD_DATE_TIME >= TO_DATE('%15.15s', 'DD-MON-RR HH24:MI') \
    AND PYMT_UPD_DATE_TIME < TO_DATE('%15.15s', 'DD-MON-RR HH24:MI')))",
    p_from.arr, p_to.arr, p_from.arr, p_to.arr);
                   sprintf (rights_where_clause,
    "AND RGHT_PUB_DATE IS NULL \
    AND ((RGHT_ADD_DATE_TIME >= TO_DATE('%15.15s', 'DD-MON-RR HH24:MI') \
    AND RGHT_ADD_DATE_TIME < TO_DATE('%15.15s', 'DD-MON-RR HH24:MI')) \
    OR (RGHT_UPD_DATE_TIME >= TO_DATE('%15.15s', 'DD-MON-RR HH24:MI') \
    AND RGHT_UPD_DATE_TIME < TO_DATE('%15.15s', 'DD-MON-RR HH24:MI')))",
    p_from.arr, p_to.arr, p_from.arr, p_to.arr);
                   sprintf (tenders_where_clause,
    "AND TNDR_PUB_DATE IS NULL \
    AND ((TNDR_ADD_DATE_TIME >= TO_DATE('%15.15s', 'DD-MON-RR HH24:MI') \
    AND TNDR_ADD_DATE_TIME < TO_DATE('%15.15s', 'DD-MON-RR HH24:MI')) \
    OR (TNDR_UPD_DATE_TIME >= TO_DATE('%15.15s', 'DD-MON-RR HH24:MI') \
    AND TNDR_UPD_DATE_TIME < TO_DATE('%15.15s', 'DD-MON-RR HH24:MI')))",
    p_from.arr, p_to.arr, p_from.arr, p_to.arr);
                   sprintf (s_h_meet_where_clause,
    "AND SMTG_PUB_DATE IS NULL \
    AND ((SMTG_ADD_DATE_TIME >= TO_DATE('%15.15s', 'DD-MON-RR HH24:MI') \
    AND SMTG_ADD_DATE_TIME < TO_DATE('%15.15s', 'DD-MON-RR HH24:MI')) \
    OR (SMTG_UPD_DATE_TIME >= TO_DATE('%15.15s', 'DD-MON-RR HH24:MI') \
    AND SMTG_UPD_DATE_TIME < TO_DATE('%15.15s', 'DD-MON-RR HH24:MI')))",
    p_from.arr, p_to.arr, p_from.arr, p_to.arr);
                   break;
              case 3:
    /*     PARTIAL 5     */
                   get_partial_run_time();
                   p_count = 5;
                   /**sprintf (ddr_tape_name,
                        "idb_tape$out:ddr_partial%1d.asc", p_count); ** Comented by TCS **/
                   sprintf (ddr_tape_name,"%s%1d.%s",getOutFileName("DDR_PARTIAL"),p_count,getEnvVar("DDR_PARTIAL_EXT_ASC")); /* Added by TCS */
    /* for testing only I am using seperate TABLE     */
                   /**strcpy (cusip_table_name,
                        "IDB.DDR_PARTIAL5_TAPE_TABLE"); ** Commented by TCS **/
                   strcpy (cusip_table_name,
                        "IDB.DDR_PARTIAL_TAPE_TABLE");
                   /*sprintf (ddr_partial_rpt,
                        "idb_tape$out:ddr_partial%1d.rpt", p_count); ** Commented by TCS **/
                   sprintf (ddr_tape_name,"%s%1d.%s",getOutFileName("DDR_PARTIAL"),p_count,getEnvVar("DDR_PARTIAL_EXT_RPT")); /* Added by TCS */
                   get_calendar_dates();
                   freq_type_code = '3';
                   sprintf (payment_where_clause,
    "AND ( (PYMT_ADD_DATE_TIME >= TO_DATE('%15.15s', 'DD-MON-RR HH24:MI')) \
    OR (PYMT_UPD_DATE_TIME >= TO_DATE('%15.15s', 'DD-MON-RR HH24:MI')))",
    p_to.arr, p_to.arr);
                   sprintf (rights_where_clause,
    "AND ((RGHT_ADD_DATE_TIME >= TO_DATE('%15.15s', 'DD-MON-RR HH24:MI')) \
    OR (RGHT_UPD_DATE_TIME >= TO_DATE('%15.15s', 'DD-MON-RR HH24:MI')))",
    p_to.arr, p_to.arr);
                   sprintf (tenders_where_clause,
    "AND ((TNDR_ADD_DATE_TIME >= TO_DATE('%15.15s', 'DD-MON-RR HH24:MI')) \
    OR (TNDR_UPD_DATE_TIME >= TO_DATE('%15.15s', 'DD-MON-RR HH24:MI')))",
    p_to.arr, p_to.arr);
                   sprintf (s_h_meet_where_clause,
    "AND ((SMTG_ADD_DATE_TIME >= TO_DATE('%15.15s', 'DD-MON-RR HH24:MI')) \
    OR (SMTG_UPD_DATE_TIME >= TO_DATE('%15.15s', 'DD-MON-RR HH24:MI')))",
    p_to.arr, p_to.arr);
                   break;
              case 1:
                   /**strcpy (ddr_tape_name,
                        "idb_tape$out:ddr_daily_tape.asc"); ** Commented by TCS **/
                   sprintf (ddr_tape_name,"%s",getOutFileName("DDR_DAILY_TAPE_ASC")); /* Added by TCS */
                   strcpy (cusip_table_name,
                        "IDB.DDR_DAILY_TAPE_TABLE");
                   get_calendar_dates();
                   freq_type_code = '1';
                   sprintf (payment_where_clause, "AND (PYMT_PUB_DATE \
    = TO_DATE('%s','DD-MON-RR') OR PYMT_PUB_DATE IS NULL)", pub_to_date.arr);
                   sprintf (rights_where_clause, "AND (RGHT_PUB_DATE \
    = TO_DATE('%s','DD-MON-RR') OR RGHT_PUB_DATE IS NULL)", pub_to_date.arr);
                   sprintf (tenders_where_clause, "AND (TNDR_PUB_DATE \
    = TO_DATE('%s','DD-MON-RR') OR TNDR_PUB_DATE IS NULL)", pub_to_date.arr);
                   sprintf (s_h_meet_where_clause, "AND (SMTG_PUB_DATE \
    = TO_DATE('%s','DD-MON-RR') OR SMTG_PUB_DATE IS NULL)", pub_to_date.arr);
                   break;
              case 5:
                   /*strcpy (ddr_tape_name,
                        "idb_tape$out:ddr_weekly_tape.asc"); ** Commented by TCS **/
                   sprintf (ddr_tape_name, "%s",getOutFileName("DDR_WEEKLY_TAPE_ASC")); /* Added by TCS */
                   strcpy (cusip_table_name,
                        "IDB.DDR_WEEKLY_TAPE_TABLE");
                   get_calendar_dates();
                   freq_type_code = '2';
                   sprintf (payment_where_clause, "AND (PYMT_PUB_DATE \
    BETWEEN to_date('%s','DD-MON-RR') AND to_date('%s','DD-MON-RR') OR PYMT_PUB_DATE IS NULL)",
    pub_from_date.arr, pub_to_date.arr);
                   sprintf (rights_where_clause, "AND (RGHT_PUB_DATE \
    BETWEEN to_date('%s','DD-MON-RR') AND to_date('%s','DD-MON-RR') OR RGHT_PUB_DATE IS NULL)",
    pub_from_date.arr, pub_to_date.arr);
                   sprintf (tenders_where_clause, "AND (TNDR_PUB_DATE \
    BETWEEN to_date('%s','DD-MON-RR') AND to_date('%s','DD-MON-RR') OR TNDR_PUB_DATE IS NULL)",
    pub_from_date.arr, pub_to_date.arr);
                   /* ram - 6/28/95 - reverted back to original criteria: */
                   /* include on weekly tape based on pub-date, regardless of */
                   /* whether in calendar or not */
                   sprintf (s_h_meet_where_clause, "AND (SMTG_PUB_DATE \
    BETWEEN to_date('%s','DD-MON-RR') AND to_date('%s','DD-MON-RR') OR SMTG_PUB_DATE IS NULL)",
    pub_from_date.arr, pub_to_date.arr);
                   break;
              case 12:
                   /* ram - 7/13/95          */
                   /* changed monthly "6" to "12" */
                   /*strcpy (ddr_tape_name,
                        "idb_tape$out:ddr_monthly_tape.asc"); ** Commented by TCS **/
                   sprintf (ddr_tape_name, "%s", getOutFileName("DDR_MONTHLY_TAPE_ASC")); /* Added by TCS */
                   strcpy (cusip_table_name,
                        "IDB.DDR_MONTHLY_TAPE_TABLE");
                   freq_type_code = '3';
                   sprintf (payment_where_clause, "AND (PYMT_PUB_DATE \
    BETWEEN to_date('%s','DD-MON-RR') AND to_date('%s','DD-MON-RR') OR PYMT_PUB_DATE IS NULL)",
    pub_from_date.arr, pub_to_date.arr);
                   sprintf (rights_where_clause, "AND (RGHT_PUB_DATE \
    BETWEEN to_date('%s','DD-MON-RR') AND to_date('%s','DD-MON-RR') OR RGHT_PUB_DATE IS NULL)",
    pub_from_date.arr, pub_to_date.arr);
                   sprintf (tenders_where_clause, "AND (TNDR_PUB_DATE \
    BETWEEN to_date('%s','DD-MON-RR') AND to_date('%s','DD-MON-RR') OR TNDR_PUB_DATE IS NULL)",
    pub_from_date.arr, pub_to_date.arr);
                   break;
              case 8:
                   /*strcpy (ddr_tape_name,
                        "idb_tape$out:ddr_quarterly_tape.asc");** Commented by TCS **/
                   sprintf (ddr_tape_name,"%s",getOutFileName("DDR_QUARTERLY_TAPE_ASC")); /* Added by TCS */
                   strcpy (cusip_table_name,
                        "IDB.DDR_QUARTERLY_TAPE_TABLE");
                   freq_type_code = '3';
                   sprintf (payment_where_clause, "AND (PYMT_PUB_DATE \
    BETWEEN to_date('%s','DD-MON-RR') AND to_date('%s','DD-MON-RR') OR PYMT_PUB_DATE IS NULL)",
    pub_from_date.arr, pub_to_date.arr);
                   sprintf (rights_where_clause, "AND (RGHT_PUB_DATE \
    BETWEEN to_date('%s','DD-MON-RR') AND to_date('%s','DD-MON-RR') OR RGHT_PUB_DATE IS NULL)",
    pub_from_date.arr, pub_to_date.arr);
                   sprintf (tenders_where_clause, "AND (A.TNDR_TENDER_DATE \
    = TO_DATE('%s','DD-MON-RR'))", pub_to_date.arr);               break;
              case 9:
                   /*strcpy (ddr_tape_name,
                        "idb_tape$out:ddr_annual_tape.asc"); ** Comented by TCS **/
                   sprintf (ddr_tape_name,"%s", getOutFileName("DDR_ANNUAL_TAPE_ASC")); /* Added by TCS */
                   strcpy (cusip_table_name,
                        "IDB.DDR_ANNUAL_TAPE_TABLE");
                   freq_type_code = '4';
                   sprintf (payment_where_clause, "AND (PYMT_PUB_DATE \
    BETWEEN to_date('%s','DD-MON-RR') AND to_date('%s','DD-MON-RR') \
    OR PYMT_PUB_DATE = TO_DATE('29-OCT-1929','DD-MON-YYYY'))",
    pub_from_date.arr, pub_to_date.arr);
                   sprintf (rights_where_clause, "AND (RGHT_PUB_DATE \
    BETWEEN to_date('%s','DD-MON-RR') AND to_date('%s','DD-MON-RR') OR RGHT_PUB_DATE IS NULL)",
    pub_from_date.arr, pub_to_date.arr);
                   sprintf (tenders_where_clause, "AND (A.TNDR_TENDER_DATE \
    = TO_DATE('%s','DD-MON-RR'))", pub_to_date.arr);               break;
              case 15:
                   /*strcpy (ddr_tape_name,
                        "idb_tape$out:ddr_general_tape.asc"); ** Commented by TCS **/
                   sprintf (ddr_tape_name,"%s", getOutFileName("DDR_GENERAL_TAPE_ASC")); /* Added by TCS */
                   strcpy (cusip_table_name,
                        "IDB.DDR_GENERAL_TAPE_TABLE");
                   freq_type_code = '3';
                   sprintf (payment_where_clause, "AND (PYMT_PUB_DATE \
    BETWEEN to_date('%s','DD-MON-RR') AND to_date('%s','DD-MON-RR') OR PYMT_PUB_DATE IS NULL)",
    pub_from_date.arr, pub_to_date.arr);
                   sprintf (rights_where_clause, "AND (RGHT_PUB_DATE \
    BETWEEN to_date('%s','DD-MON-RR') AND to_date('%s','DD-MON-RR') OR RGHT_PUB_DATE IS NULL)",
    pub_from_date.arr, pub_to_date.arr);
                   sprintf (tenders_where_clause, "AND (A.TNDR_TENDER_DATE \
    = TO_DATE('%s','DD-MON-RR'))", pub_to_date.arr);               break;
              default:
                   exit (printf ("Invalid tape option: %d\n", which_tape)); /*** %s changed by TCS to %d ***/
                   break;
         if ((fp = fopen(ddr_tape_name, "w+")) == NULL)
              exit (printf ("Unable to open asc <%s> file for write access\n",
                   ddr_tape_name));
    /*     GR. Partial 5
         if (which_tape == 0 || which_tape == 3 )
              if ((pfp = fopen(ddr_partial_rpt, "w+")) == NULL)
                   exit (printf ("Unable to open asc <%s> file \
    for write access\n", ddr_partial_rpt));
         /* WRITE THE HEADER RECORD ON THE TAPE */
         memset (copyright_notice, 0, sizeof(copyright_notice));
         sprintf (copyright_notice, "COPYRIGHT (c) %.4s STANDARD & POOR'S \
    CORPORATION. ALL RIGHTS RESERVED", year.arr);
         fprintf (fp, "%-80.80sDIVIDEND%8d%17.17s ",
    copyright_notice, control_date, run_date_start.arr);
         file_position = ftell(fp);
         fprintf (fp, "\n");
         total_records = 0;
         /* GET THE SPECIAL CATEGORY RECORDS */
         get_special_codes();
         /* SELECT FROM THE DRIVER TABLE TO GET ALL THE OTHER RECORDS */
         get_master_cusip_no();
         printf("After get_master_cusip_no()");
         get_run_date_finish();
         printf("After get_run_date_finish()");
         if ( DEBUGGING )
              printf ("initial cusip = %s\n", init_cusip_number);
              printf ("final cusip = %s\n", final_cusip_number);
              printf ("record type is %c\n", rec_type_code);
         /* WRITE THE TRAILER RECORD */
         fprintf (fp, "%8d%-17.17s%07d%-9.9s1%-9.9s%c\n", control_date,
    run_date_finish.arr, total_records, init_cusip_number , final_cusip_number,
    rec_type_code);
         /* re-wind and add to the header record ... */
         rewind(fp);
         fseek(fp, file_position - 33, 0);
         fprintf (fp, "%07d%-9.9s1%-9.9s%c", total_records, init_cusip_number,
    final_cusip_number, rec_type_code);
         fclose(fp);
    /*     GR Partial 5
         if (which_tape == 0 || which_tape == 3 )
              fclose(pfp);
         printf ("\nDONE: %07d%-9.9s1%-9.9s%c\n", total_records, init_cusip_number,
    final_cusip_number, rec_type_code);
    return (0); /*** Added by TCS ***/
    void prepare_declare_oracle_cursors() /* Modified by TCS */
         /* We'll us dynamic sql to get the appropriate where clause but use */
         /* a bind variable for the master cusip number. So we prepare and */
         /* declare get_issues, get_payments, get_tenders, get rights, and */
         /* get_s_h_meetings cursors only once, outside the driving loop. */
         EXEC SQL BEGIN DECLARE SECTION;
              /**** TCS Comment begins as per the change request ****
              VARCHAR          sql_stmt1[1500];*/     /* issues */
              /*VARCHAR          sql_stmt2[3000];     *//* payments */
              /*VARCHAR          sql_stmt3[500];          *//* tenders */
              /*VARCHAR          sql_stmt4[500];          *//* rights */
              /*VARCHAR          sql_stmt5[500];          *//* s_h_meetings */
              /**** TCS Add begins as per the change request ****/
              VARCHAR          sql_stmt1[2000];     /* issues */
              VARCHAR          sql_stmt2[4000];     /* payments */
              VARCHAR          sql_stmt3[1000];     /* tenders */
              VARCHAR          sql_stmt4[1000];     /* rights */
              VARCHAR          sql_stmt5[1000];     /* s_h_meetings */
              /**** TCS Add ends ****/
         EXEC SQL END DECLARE SECTION;
         /* prepare and declare the get_issues cursor */
         memset (sql_stmt1.arr, 0, sizeof(sql_stmt1.arr));
         sprintf (sql_stmt1.arr, "SELECT \
    A.ISSU_PAR_VALUE, \
    DECODE (A.ISSU_MARKET_SYMBOL||A.ISSU_NASDAQ,'OTCY','NASD', A.ISSU_MARKET_SYMBOL), \
    A.ISSU_C_RATE, A.ISSU_C_FREQ, A.ISSU_C_NEW_AMOUNT, A.ISSU_C_NEW_Q1, \
    A.ISSU_C_NEW_Q2, A.ISSU_C_NEW_Q3, A.ISSU_C_OLD_AMOUNT, A.ISSU_C_OLD_Q1, \
    A.ISSU_C_OLD_Q2, A.ISSU_C_OLD_Q3, A.ISSU_CURRENCY, \
    A.ISSU_UPD_HIS, A.ISSU_COMMENT, A.TAX_EXEMPT_FLAG,\
    B.SEC_TYPE_CODE, B.ACQ_BY_IND, B.ACQ_ISSUER_NO, \
    rtrim(substr(B.ACQ_ISSUER_DESCR,1,30)), \
    B.INDEX_CODE, B.TRFR_AGT_CODE, B.NY_AGT_CODE, B.TICKER_SYMBOL, \
    B.TICKER_SYMBOL2, \
    rtrim(substr(C.ISSR_DDR_ISSUER_DESCR,1,60)), \
    rtrim(substr(E.ISSUE_DESCR,1,30)), \
    rtrim(substr(D.ISSUER_DESCR1,1,30)), \
    F.TRFR_DAYS \
    FROM IDB.DDR_ISSUES A, IDB.DDR_ISSUES_2 B, IDB.DDR_ISSUERS C, \
    BLIS.CUSIP_ISSUERS D, BLIS.CUSIP_ISSUES E, IDB.DDR_TRANSFER F \
    WHERE A.ISSU_CUSIP_NO = :master_cusip_no \
    AND A.ISSU_CUSIP_NO = B.ISSU_CUSIP_NO(+) \
    AND SUBSTR(A.ISSU_CUSIP_NO, 1, 6) = C.ISSR_ISSUER_NO(+) \
    AND SUBSTR(A.ISSU_CUSIP_NO, 1, 6) = D.ISSUER_NO \
    AND A.ISSU_CUSIP_NO = E.CUSIP_NO \
    AND A.ISSU_TRANSFER_CODE = F.TRFR_TR_CD(+) ");
         sql_stmt1.len = strlen(sql_stmt1.arr);
         EXEC SQL PREPARE ISSUES FROM :sql_stmt1;
         if (sqlca.sqlcode)
              sql_error (SYSERR, sqlca.sqlcode,
                   "Error in preparing ISSUES");
         EXEC SQL DECLARE ISSUES_C CURSOR FOR ISSUES;
         if (sqlca.sqlcode)
              sql_error (SYSERR, sqlca.sqlcode,
                   "Error in declaring ISSUES");
         /* now the get_payments cursor */
         memset (sql_stmt2.arr, 0, sizeof(sql_stmt2.arr));
         sprintf (sql_stmt2.arr, "SELECT \
    a.PYMT_RP_DIV, \
    a.PYMT_RP_DEC, \
    a.PYMT_RP_EXD, \
    a.PYMT_RP_REC, \
    a.PYMT_RP_PAY, \
    a.PYMT_RP_DUE, \
    a.PYMT_RP_TAX, \
    a.PYMT_RP_ANN, \
    a.PYMT_PRP_DIV, \
    a.PYMT_PRP_DEC, \
    a.PYMT_PRP_EXD, \
    a.PYMT_PRP_REC, \
    a.PYMT_PRP_PAY, \
    a.PYMT_PRP_DUE, \
    a.PYMT_PRP_TAX, \
    a.PYMT_PRP_ANN, \
    NVL(a.PYMT_SEQ_NO,0), \
    TO_CHAR(a.PYMT_DECLARED, 'YYMMDD'), \
    TO_CHAR(a.PYMT_EX_DATE, 'YYMMDD'), \
    TO_CHAR(a.PYMT_STK_REC, 'YYMMDD'), \
    TO_CHAR(a.PYMT_TRANSFER_DATE, 'YYMMDD'), \
    TO_CHAR(a.PYMT_PAYABLE, 'YYMMDD'), \
    a.PYMT_CODES, \
    NVL(a.PYMT_CASH_DIVD,0.0), \
    NVL(b.ORDINARY_INCOME,0.0), \
    NVL(b.CAP_GAINS,0.0), \
    NVL(b.SHORT_TM_CAP_GAINS,0.0), \
    NVL(b.LONG_TM_CAP_GAINS,0.0), \
    NVL(b.RETURN_OF_CAPITAL,0.0), \
    b.STK_DIVD_IND, \
    NVL(a.PYMT_STK_DIVD,0), \
    b.FRAC_IN_CASH_STK_IND, \
    NVL(b.FRAC_IN_CASH_PRICE,0.0), \
    NVL(a.PYMT_SPLIT_NEW,0), \
    NVL(a.PYMT_SPLIT_OLD,0), \
    TO_CHAR(a.PYMT_DB_DATE, 'YYMMDD'), \
    NVL(b.ARREARS_PAID,0.0), \
    NVL(b.ARREARS_DUE,0.0), \
    b.SPINOFF_IND, \
    b.SPINOFF_ISSUE_NO, \
    b.SPINOFF_ISSUER_DESCR, \
    b.SPINOFF_ISSUE_DESCR, \
    NVL(b.TAX_CODE,0), \
    NVL(b.TAX_CODE_2,0), \
    NVL(b.OLD_SEQ_NO,0), \
    b.ORDINARY_INCOME_CODE, \
    b.CAP_GAINS_CODE, \
    b.SHORT_TM_CAP_GAINS_CODE, \
    b.LONG_TM_CAP_GAINS_CODE, \
    b.RETURN_OF_CAPITAL_CODE, \
    TO_CHAR(b.CALL_DATE, 'YYMMDD'), \
    NVL(b.CALL_PRICE,0.0), \
    b.CALL_PRICE_CURRENCY, \
    b.CALL_AGT_NO, \
    b.ACCRUED_DIVD_IND, \
    TO_CHAR(a.PYMT_DB_DATE, 'YYMMDD'), \
    a.PYMT_DB_TEXT, \
    a.PYMT_DVD_TEXT, \
    a.PYMT_YEAR, \
    TO_CHAR(a.PYMT_STK_REC, 'fmMon dd'), \
    TO_CHAR(a.PYMT_DB_DATE, 'fmMon dd'), \
    b.NY_CALL_AGT_NO, \
    NVL(b.FOREIGN_TAX_RATE, 0.0), \
    NVL(b.NET_RATE, 0.0), \
    NVL(b.FEE, 0.0), \
    NVL(b.COMMISSION, 0.0), \
    a.PYMT_CASH_DIVD_FNS, \
    a.PYMT_STK_DIVD_FNS, \
    a.PYMT_DECLARED_FNS, \
    a.PYMT_EX_DATE_FNS, \
    a.PYMT_STK_REC_FNS, \
    a.PYMT_PAYABLE_FNS, \
    a.PYMT_SPLIT_FNS, \
    NVL (TO_NUMBER (TO_CHAR(a.PYMT_PUB_DATE, 'YYYYMMDD')), 0), \
    NVL (TO_NUMBER (TO_CHAR(a.PYMT_TRANSFER_DATE, 'YYYYMMDD')), 0), \
    NVL (TO_NUMBER (TO_CHAR(a.PYMT_STK_REC, 'YYYYMMDD')), 0), \
    NVL (TO_NUMBER (TO_CHAR(a.PYMT_DB_DATE, 'YYYYMMDD')), 0) \
    FROM IDB.DDR_PAYMENTS A, IDB.DDR_PAYMENTS_2 B \
    WHERE A.PYMT_CUSIP_NO = :master_cusip_no \
    AND A.PYMT_CUSIP_NO = B.PYMT_CUSIP_NO (+) \
    AND A.PYMT_SEQ_NO = B.PYMT_SEQ_NO (+) \
    AND NVL(INSTR(A.PYMT_CODES,'CO'),0) NOT IN (1,3,5,7,9,11) ");
         strcat (sql_stmt2.arr, payment_where_clause);
         sql_stmt2.len = strlen(sql_stmt2.arr);
         EXEC SQL PREPARE PAYMENTS FROM :sql_stmt2;
         if (sqlca.sqlcode)
              sql_error (SYSERR, sqlca.sqlcode,
                   "Error in preparing PAYMENTS");
         EXEC SQL DECLARE PAYMENTS_C CURSOR FOR PAYMENTS;
         if (sqlca.sqlcode)
              sql_error (SYSERR, sqlca.sqlcode,
                   "Error in declaring PAYMENTS");
         /* now the get_tenders cursor */
         memset (sql_stmt3.arr, 0, sizeof(sql_stmt3.arr));
    /* FXL ADD SUBSTR to tndr_price_qual: substr(A.TNDR_PRICE_QUAL,1,14), 3/23/99,
    to to_number 3/29/99 */
         sprintf (sql_stmt3.arr, "SELECT \
    B.TNDR_AGT_NO, \
    B.NY_AGT_NO, \
    TO_CHAR(A.TNDR_TENDER_DATE, 'YYMMDD'), \
    A.TNDR_PRICE, \
    to_number(A.TNDR_PRICE_QUAL), \
    A.TNDR_TE_SIZE, \
    TNDR_TE_TEXT_1 \
    FROM IDB.DDR_TENDERS A, IDB.DDR_TENDERS_2 B \
    WHERE TNDR_CUSIP_NO = :master_cusip_no \
    AND TNDR_CUSIP_NO = TNDR_ISSUE_NO(+) \
    AND A.TNDR_TENDER_DATE = B.TNDR_TENDER_DATE(+) ");
         strcat (sql_stmt3.arr, tenders_where_clause);
         sql_stmt3.len = strlen(sql_stmt3.arr);
         EXEC SQL PREPARE TENDERS FROM :sql_stmt3;
         if (sqlca.sqlcode)
              sql_error (SYSERR, sqlca.sqlcode,
                   "Error in preparing TENDERS");
         EXEC SQL DECLARE TENDERS_C CURSOR FOR TENDERS;
         if (sqlca.sqlcode)
              sql_error (SYSERR, sqlca.sqlcode,
                   "Error in declaring TENDERS");
         /* now the get_rights cursor */
         memset (sql_stmt4.arr, 0, sizeof(sql_stmt4.arr));
    /* ADD TO_CHAR(A.RGHT_DB_DATE, 'YYMMDD') */
         sprintf (sql_stmt4.arr, "SELECT \
    B.NO_RIGHTS_ISSUED, \
    B.SHS_REQ_FOR_PURCH, \
    B.RGHTS_REQUIRED, \
    B.QTY_SHS_PURCHASED, \
    B.TYPE_SHS_ELIGIBLE, \
    B.NEW_SHS_CUSIP_NO, \
    B.NEW_CO_ISSUER_DESCR, \
    TO_CHAR(A.RGHT_RECORD, 'YYMMDD'), \
    TO_CHAR(A.RGHT_EX_DATE, 'YYMMDD'), \
    TO_CHAR(B.NYC_RECORD_DATE, 'YYMMDD'), \
    TO_CHAR(A.RGHT_EXPIRE, 'YYMMDD'), \
    TO_CHAR(A.RGHT_DB_DATE, 'YYMMDD'), \
    A.RGHT_PRICE, \
    NVL(A.RGHT_RECORD_FNS,' '), \
    NVL(A.RGHT_EXPIRE_FNS,' '), \
    NVL(A.RGHT_EX_DATE_FNS,' '), \
    NVL(A.RGHT_PRICE_FNS,' '), \
    NVL(A.RGHT_BASIS_FNS,' '), \
    A.RGHT_FOOTNOTE, \
    B.US_INELIGIBILITY_IND, \
    B.RGHT_TRFR_IND \
    FROM IDB.DDR_RIGHTS A, IDB.DDR_RIGHTS_2 B \
    WHERE RGHT_CUSIP_NO = :master_cusip_no \
    AND RGHT_CUSIP_NO = RGHT_ISSUE_NO(+) \
    AND A.RGHT_RECORD = B.RGHT_RECORD_DATE(+) ");
         strcat (sql_stmt4.arr, rights_where_clause);
         sql_stmt4.len = strlen(sql_stmt4.arr);
         EXEC SQL PREPARE RIGHTS FROM :sql_stmt4;
         if (sqlca.sqlcode)
              sql_error (SYSERR, sqlca.sqlcode,
                   "Error in preparing RIGHTS");
         EXEC SQL DECLARE RIGHTS_C CURSOR FOR RIGHTS;
         if (sqlca.sqlcode)
              sql_error (SYSERR, sqlca.sqlcode,
                   "Error in declaring RIGHTS");
         /* ram - added logic on 7/18/95 */
         /* for the standard footnotes cursor */
         EXEC SQL DECLARE STANDARD_FOOTNOTES_C CURSOR
         FOR
         SELECT SFTN_S_F_TEXT, SFTN_S_F_TYPE
         FROM IDB.DDR_STANDARD_FOOTNOTES
         WHERE SFTN_S_F_TYPE = :standard_footnote_type;
         if (sqlca.sqlcode)
              sql_error (SYSERR, sqlca.sqlcode,
                   "Error in declaring STANDARD_FOOTNOTES");
         /* now the issue footnotes cursor */
         EXEC SQL DECLARE ISSUE_FOOTNOTES_C CURSOR
         FOR
         SELECT FTNT_F_TEXT, FTNT_F_TYPE
         FROM IDB.DDR_FOOTNOTES
         WHERE FTNT_CUSIP_NO = :master_cusip_no
         AND FTNT_SYMBOL = :footnote_symbol
         AND FTNT_YEAR IS NULL;
         if (sqlca.sqlcode)
              sql_error (SYSERR, sqlca.sqlcode,
                   "Error in declaring ISSUE_FOOTNOTES");
         /* now the payment footnotes cursor */
         EXEC SQL DECLARE PAYMENT_FOOTNOTES_C CURSOR
         FOR
         SELECT FTNT_F_TEXT, FTNT_F_TYPE
         FROM IDB.DDR_FOOTNOTES
         WHERE FTNT_CUSIP_NO = :master_cusip_no
         AND FTNT_SYMBOL = :footnote_symbol
         AND FTNT_YEAR = :footnote_year;
         if (sqlca.sqlcode)
              sql_error (SYSERR, sqlca.sqlcode,
                   "Error in declaring PAYMENT_FOOTNOTES");
         /* now the get_s_h_meetings cursor */
         /* ONLY for certain tape types. */
    /*     GR PARTial 5
         if (which_tape == 0 || which_tape == 3 || which_tape == 1 || which_tape == 5)
              memset (sql_stmt5.arr, 0, sizeof(sql_stmt5.arr));
              /* ram - 6/15/95 - changed ORigunal to smtg */
              /* TO_CHAR(ORIGINAL_REC_DATE, 'YYMMDD'), \ */
              sprintf (sql_stmt5.arr, "SELECT \
    TO_CHAR(SMTG_MTG_DATE, 'YYMMDD'), \
    TO_CHAR(SMTG_REC_DATE, 'YYMMDD'), \
    SMTG_FOOTNOTE \
    FROM IDB.DDR_S_H_MEETINGS \
    WHERE SMTG_CUSIP_NO = :master_cusip_no ");
              strcat (sql_stmt5.arr, s_h_meet_where_clause);
              sql_stmt5.len = strlen(sql_stmt5.arr);
              EXEC SQL PREPARE S_H_MEET FROM :sql_stmt5;
              if (sqlca.sqlcode)
                   sql_error (SYSERR, sqlca.sqlcode,
                        "Error in preparing S_H_MEET");
              EXEC SQL DECLARE S_H_MEET_C CURSOR FOR S_H_MEET;
              if (sqlca.sqlcode)
                   sql_error (SYSERR, sqlca.sqlcode,
                        "Error in declaring S_H_MEET");
         } /* end of if (which_tape == 0 || which_tape == 1 || which_tape == 5) */
    /* replaced get_calendar_dates function with use of PLSQL - ram - 5/24/95 */
    void get_calendar_dates() /* Modified by TCS */
         /* put first and last calendar dates into global ints */
         /* first_cal_date and last_cal_date (YYYYMMDD) using */
         /* ddr package function get_business_days. */
         /* The package object ddr is owned by idb, so I'll */
         /* specify this, just in case accounts other than idb */
         /* run this code. (EXECUTE priviledge is granted to */
         /* "idb_user" role.) */
    EXEC SQL BEGIN DECLARE SECTION;
              int          cal_start;
              int          cal_end;
              int          return_val;
    EXEC SQL END DECLARE SECTION;
         /* initialize destination globals */

    You actually need to run it with "check -access"; memuse and leaks won't help with the crash, which happens because of illegal memory access. Hopefully, "check -access" will help you to locate the bad guy, but that's not panacea either.
    To be precise:
    - start dbx
    $ dbx <your app>
    - issue
    (dbx) check -access
    (dbx) run
    and wait for dbx to stop and report suspicious memory access.

  • Getting core dump when using EXEC SQL CLOSE

    In my pro*c program , i have used a cursor to fetch the set of accounts.Once cursor is opened , code will perform set
    of operation using fetched data and then cursor is closed. Between open and closing of cursor , i have used 23 EXEC
    SQL CLOSE. For example i am copying the value of a to b using strlcpy between fetch and close cursor statement.If
    returned value from strlcpy is greater than size of destination variable, then flow should not proceed , in that case I will
    close the cursor using EXEC SQL CLOSE and return the flow to calling program. Similarly i have closed the cursor at
    another 22 locations.
    When i compile the code and run binary the core dump occurs. On analyzing the core it shows
    t@null (l@8) terminated by signal SEGV (no mapping at the fault address)
    0xffffffffffffffff: <bad address 0xffffffffffffffff>
    dbx: core file read error: address 0xfc4ffe48 not in data space
    Current function is dbMtBaseClass::Pswd_Change
    7860 sqlcxt(&_dbMtCtx, &sqlctx, &sqlstm, &sqlfpn);
    if I remove any of the three EXEC SQL CLOSE commands , core dump does not occurs.
    It looks strange.Please help me to resolve the issue.

    In my pro*c program , i have used a cursor to fetch the set of accounts.Once cursor is opened , code will perform set
    of operation using fetched data and then cursor is closed. Between open and closing of cursor , i have used 23 EXEC
    SQL CLOSE. For example i am copying the value of a to b using strlcpy between fetch and close cursor statement.If
    returned value from strlcpy is greater than size of destination variable, then flow should not proceed , in that case I will
    close the cursor using EXEC SQL CLOSE and return the flow to calling program. Similarly i have closed the cursor at
    another 22 locations.
    When i compile the code and run binary the core dump occurs. On analyzing the core it shows
    t@null (l@8) terminated by signal SEGV (no mapping at the fault address)
    0xffffffffffffffff: <bad address 0xffffffffffffffff>
    dbx: core file read error: address 0xfc4ffe48 not in data space
    Current function is dbMtBaseClass::Pswd_Change
    7860 sqlcxt(&_dbMtCtx, &sqlctx, &sqlstm, &sqlfpn);
    if I remove any of the three EXEC SQL CLOSE commands , core dump does not occurs.
    It looks strange.Please help me to resolve the issue.

  • Studio 12 DBX  internal error while memcheck is on.

    bash-3.00$ dbx -xexec32
    For information about new features see `help changes'
    To remove this message, put `dbxenv suppress_startup_message 7.6' in your .dbxrc
    (dbx) -rwxr-xr-x 1 orbit osgrp1 1.2M Dec 26 17:18 <my_processnmae>
    -rwxr-xr-x: not found
    (dbx) dbxenv mt_sync_tracking off
    (dbx) attach 6792 <this is pid>
    Reading <my_processname>
    Reading ld.so.1
    Reading librtc.so
    Reading libmapmalloc.so.1
    Reading libcurses.so.1
    Reading libnsl.so.1
    Reading libsocket.so.1
    Reading libelf.so.1
    Reading libcrypt_i.so.1
    Reading libpthread.so.1
    Reading libdl.so.1
    Reading librt.so.1
    Reading libc.so.1
    Reading libgen.so.1
    Reading libaio.so.1
    Reading libmd5.so.1
    Reading libc_psr.so.1
    Reading library_name**
    Reading library_name**
    Attached to process 6792 with 3 LWPs
    t@1 (l@1) stopped in soaccept at 0xff040314
    0xff040314: soaccept+0x0004: ta %icc,0x00000008
    Current function is Tcp_receive
    284 if ((th_data->sockfd = accept (sockfd, (struct sockaddr *)&clientaddr,&length)) == -1)
    (dbx) check -access
    access checking - ON
    RTC: Enabling Error Checking...
    RTC: Running program...
    (dbx) cont
    RTC: internal RTC error -- disabling Error Checking file: rtc_heap_map.c line: 697
    ^Ct@2 (l@2) signal INT (Interrupt) in ___sigtimedwait at 0xff040220
    0xff040220: ___sigtimedwait+0x0004: ta %icc,0x00000008
    Current function is sig_thr
    1256 sigwait (&glb_sigact, &signal_alr);
    (dbx) version
    Machine hardware: sun4u
    OS version: 5.10
    Processor type: sparc
    Hardware: SUNW,Sun-Fire-280R
    The following components are installed on your system:
    Sun Studio 12
    Sun Studio 12 C Compiler
    Sun Studio 12 C++ Compiler
    Sun Studio 12 Tools.h++ 7.1
    Sun Studio 12 C++ Standard 64-bit Class Library
    Sun Studio 12 Garbage Collector
    Sun Studio 12 Fortran 95
    Sun Studio 12 Debugging Tools (including dbx)
    Sun Studio 12 IDE
    Sun Studio 12 Debugger GUI
    Sun Studio 12 Performance Analyzer (including collect, ...)
    Sun Studio 12 X-Designer
    Sun Studio 12 VIM editor
    Sun Studio 12 XEmacs editor
    Sun Studio 12 Performance Library
    Sun Studio 12 LockLint
    Sun Studio 12 Building Software (including dmake)
    Sun Studio 12 Documentation Set
    Sun Studio 12 /usr symbolic links and GNOME menu item
    version of "/opt/SunStudio12/SUNWspro/bin/../prod/bin/../../bin/cc": Sun C 5.9 SunOS_sparc 2007/05/03
    version of "/opt/SunStudio12/SUNWspro/bin/../prod/bin/../../bin/CC": Sun C++ 5.9 SunOS_sparc 2007/05/03
    version of "/opt/SunStudio12/SUNWspro/bin/../prod/bin/../../bin/f90": Sun Fortran 95 8.3 SunOS_sparc 2007/05/03
    version of "/opt/SunStudio12/SUNWspro/bin/../prod/bin/../../bin/dbx": Sun Dbx Debugger 7.6 SunOS_sparc 2007/05/03
    version of "/opt/SunStudio12/SUNWspro/bin/../prod/bin/../../bin/analyzer": Sun Analyzer 7.6 SunOS_sparc 2007/05/03
    version of "/opt/SunStudio12/SUNWspro/bin/../prod/bin/../../bin/dmake": Sun Distributed Make 7.8 SunOS_sparc 2007/05/03
    any Idea ?
    am i doing something wrong here. ? I want to check memory leak. ?
    -Raxit

    With hope if its bug, below may helpful.
    (dbx) (dbx) (dbx) quit
    detaching from process 6792
    dbx: internal warning: function (__rtc_release_heap_region) called too early (preloading)
    t@3 (l@3) signal SEGV (no mapping at the fault address) in _sleep at 0xff0330f0
    0xff0330f0: _sleep+0x0078:      ldsb     [%o3 - 3005], %o2
    Current function is scansessionisam_thr
    1362 sleep (cfg_sec_shm_scantime); /*SCF no 10750 */
    execution completed, exit code is 4982056
    dbx: internal warning: rtc: _syscall: failed
    dbx: warning: librtc.so and dbx version mismatch; Error checking disabled
    Check your installation of librtc.so.
    dbx: internal warning: rtc: munmap of patch area of segment '/usr/lib/libmapmalloc.so.1' failed
    dbx: internal error: signal SIGSEGV (no mapping at the fault address)
    dbx's coredump will appear in /tmp
    ls -lrAbort (core dumped)
    bash-3.00$ pstack /tmp/core
    core '/tmp/core' of 6794: dbx -xexec32
    ff1c0f90 lwpkill (6, 0, ff1a4a98, ffffffff, ff1e8284, 6) + 8
    ff13ff98 abort (0, 1, 377d74, a83f0, ff1eb298, 0) + 110
    000b5bf8 ???????? (b, 3c4400, 4575a1, 38b1f4, 37eabe, 1)
    ff1bfec8 __sighndlr (b, ffbff408, ffbff150, b59ec, 0, 1) + c
    ff1b4ff4 call_user_handler (b, 0, 8, 0, ff252000, ffbff150) + 3b8
    001aef98 __1cGRtcMgrShandle_proc_detach6M_v_ (47d670, 5dd2a8, 38, 396000, 4c0498, 38) + d8
    0018f850 __1cEProcGdetach6Mbbbb_v_ (4c0468, 467400, 466400, 0, 3ae2ac, 0) + 19c
    000b8c68 ???????? (47e6f8, 0, 0, 0, 0, 1)
    00289d94 __1cMpdksh_c_exit6FpnGInterp_ippcpv_i_ (47e6f8, 0, 876890, 0, 0, 466000) + a8
    0015fbf4 ???????? (47e6f8, 1, 876890, 0, 877b78, 0)
    002857a0 ???????? (47e6f8, 877b78, 877b58, 876890, 0, 467708)
    0028468c __1cNpdksh_execute6FpnGInterp_pnCop_i_i_ (47e6f8, 49bab8, 0, 277c50, 47e6f8, 38b1f4) + 194
    002735e0 __1cLpdksh_shell6FpnGInterp_pnGSource__i_ (47e6f8, 49e098, 465628, 446f54, 3d9625, 3d962c) + 46c
    000b90d4 __1cNmain_cmd_loop6FpnGInterp__v_ (47e6f8, 37f400, 3ca2a4, 446f70, 3ca000, 3ca000) + 88
    000b9e60 main (37e400, 0, 40, 47e6f8, 37f7c8, 1) + 750
    000af268 _start   (0, 0, 0, 0, 0, 0) + 108
    bash-3.00$
    bash-3.00$ dbx /opt/SunStudio12/
    SUNWspro/ uninstall_Sun_Studio_12.class
    bash-3.00$ dbx /opt/SunStudio12/SUNWspro/bin/dbx /tmp/core
    For information about new features see `help changes'
    To remove this message, put `dbxenv suppress_startup_message 7.6' in your .dbxrc
    Reading dbx
    core file header read successfully
    Reading ld.so.1
    Reading libintl.so.1
    Reading libnsl.so.1
    Reading libsocket.so.1
    Reading libdl.so.1
    Reading libgen.so.1
    Reading libw.so.1
    Reading libm.so.1
    Reading libc.so.1
    Reading libc_psr.so.1
    Reading libcpc.so.1
    Reading libpctx.so.1
    Reading libnvpair.so.1
    Reading libdevinfo.so.1
    Reading libproc.so.1
    Reading librtld_db.so.1
    Reading libelf.so.1
    Reading libctf.so.1
    program terminated by signal ABRT (Abort)
    0xff1c0f90: __lwp_kill+0x0008: bcc,a,pt %icc,__lwp_kill+0x18 ! 0xff1c0fa0
    (dbx) threads
    dbx: thread related commands not available
    (dbx) where
    =>[1] __lwp_kill(0x0, 0x6, 0x0, 0x6, 0xfc00, 0x0), at 0xff1c0f90
    [2] raise(0x6, 0x0, 0xff1a4a98, 0xffffffff, 0xff1e8284, 0x6), at 0xff15fd78
    [3] abort(0x0, 0x1, 0x377d74, 0xa83f0, 0xff1eb298, 0x0), at 0xff13ff98
    [4] 0xb5bf8(0xb, 0x3c4400, 0x4575a1, 0x38b1f4, 0x37eabe, 0x1), at 0xb5bf8
    [5] __sighndlr(0xb, 0xffbff408, 0xffbff150, 0xb59ec, 0x0, 0x1), at 0xff1bfec8
    ---- called from signal handler with signal 11 (SIGSEGV) ------
    [6] RtcMgr::handle_proc_detach(0x47d670, 0x5dd2a8, 0x38, 0x396000, 0x4c0498, 0x38), at 0x1aef98
    [7] Proc::detach(0x4c0468, 0x467400, 0x466400, 0x0, 0x3ae2ac, 0x0), at 0x18f850
    [8] 0xb8c68(0x47e6f8, 0x0, 0x0, 0x0, 0x0, 0x1), at 0xb8c68
    [9] pdksh_c_exit(0x47e6f8, 0x0, 0x876890, 0x0, 0x0, 0x466000), at 0x289d94
    [10] 0x15fbf4(0x47e6f8, 0x1, 0x876890, 0x0, 0x877b78, 0x0), at 0x15fbf4
    [11] 0x2857a0(0x47e6f8, 0x877b78, 0x877b58, 0x876890, 0x0, 0x467708), at 0x2857a0
    [12] pdksh_execute(0x47e6f8, 0x49bab8, 0x0, 0x277c50, 0x47e6f8, 0x38b1f4), at 0x28468c
    [13] pdksh_shell(0x47e6f8, 0x49e098, 0x465628, 0x446f54, 0x3d9625, 0x3d962c), at 0x2735e0
    [14] main_cmd_loop(0x47e6f8, 0x37f400, 0x3ca2a4, 0x446f70, 0x3ca000, 0x3ca000), at 0xb90d4
    [15] main(0x37e400, 0x0, 0x40, 0x47e6f8, 0x37f7c8, 0x1), at 0xb9e60
    (dbx)
    -Raxit

  • Reg Core Dump

    We are getting bad address core dump while using Coherence lib .
    Please find the dbx stack trace below in .
    @null (l@9) terminated by signal SEGV (no mapping at the fault address)
    0xffffffffffffffff: <bad address 0xffffffffffffffff>
    (dbx) where
    [1] 0xfa666f08(0xf71f8940, 0x28ec9c8, 0xf71f8930, 0x18, 0x8, 0xf71f8880), at 0xfa666f08
    [2] 0xfa662da8(0xf71f8ab0, 0x28ec9c8, 0xf71f89b0, 0xf71f8940, 0x154396e8, 0xfdf88a80), at 0xfa662da8
    [3] 0xfa414a6c(0xf71f8ab0, 0x28ec9d0, 0xf71f8aa0, 0xf71f91e0, 0x0, 0xf71f89b0), at 0xfa414a6c
    [4] 0xfaba8c78(0x28ec9c8, 0xf71f8c20, 0x0, 0xf71f8b80, 0xf71f8ab0, 0x1), at 0xfaba8c78
    [5] 0xfb1f6b8c(0xf71f9190, 0xf71f91e0, 0xf71f8c20, 0xf71f91a0, 0xf71f8c30, 0x28af100), at 0xfb1f6b8c
    [6] 0xfb1f2af0(0x28aaeb0, 0xf71f91a0, 0x0, 0x1, 0xf71f9190, 0xfb1df870), at 0xfb1f2af0
    [7] 0xfb1f5c48(0x28aaeb0, 0x569fb10, 0xf71f9270, 0xf71f9280, 0xf71f9280, 0xf71f9360), at 0xfb1f5c48
    [8] 0xfad25bd0(0x289f3b8, 0xf71f9360, 0xf71f9360, 0xf71f92f0, 0x1, 0xf71f9360), at 0xfad25bd0
    [9] 0xfabf44c0(0x569fb10, 0xfb1fefd4, 0xfeb88ae0, 0xf71f9360, 0xfabf309c, 0xfeaae700), at 0xfabf44c0
    [10] 0xfa8a3d70(0x289f228, 0xf71f9460, 0xf71f9420, 0xf71f9430, 0xfdf88a80, 0xf71f9460), at 0xfa8a3d70
    [11] 0xfa8a338c(0x289f228, 0xf71f9540, 0xf71f9540, 0xf71f94d0, 0x1, 0xf71f95c0), at 0xfa8a338c
    [12] 0xfa7c1dd8(0x25b6ef8, 0x7f13700, 0xf71f9540, 0xf71f95c0, 0xf71f9550, 0x289f2a0), at 0xfa7c1dd8
    [13] 0xfabf44c0(0x7f13700, 0xfa7c3a60, 0xfe37b854, 0xf71f95c0, 0xfabf309c, 0xfe37ac90), at 0xfabf44c0
    [14] 0xfb2c9184(0xf71f9be0, 0xfdd965d4, 0x0, 0xffffffff, 0x1, 0x0), at 0xfb2c9184
    [15] 0xfa8866b4(0x28df150, 0xf71f9d14, 0xf71fa390, 0xfdf88a80, 0x0, 0xf71fa134), at 0xfa8866b4
    [16] 0xfa90c320(0x41f30d0, 0xfe476544, 0x28aae50, 0xf71fa380, 0x3, 0xf71fa458), at 0xfa90c320
    [17] 0xfad8f044(0x867800, 0x41f3198, 0xf71fb500, 0xf71fa670, 0xf71fb500, 0xf71fa5b0), at 0xfad8f044
    [18] 0xfad838dc(0x28aad08, 0xf71fb234, 0xfe7f165c, 0xfdf88a80, 0xf71fad6c, 0xf71fae44), at 0xfad838dc
    [19] 0xfb293ed0(0x28dba98, 0x28aad08, 0xc54400, 0xf71fb500, 0xf71fb4d0, 0xfdf88a80), at 0xfb293ed0
    [20] 0xfa758038(0x28dbab0, 0xfe6ea03c, 0xfe6ea03c, 0xf71fb5a0, 0x1, 0xf71fb5c0), at 0xfa758038
    [21] 0xfa9d9918(0xf71fbed0, 0x28dbdc0, 0xfdf88a80, 0x28e05b8, 0xf71fbf28, 0xfe4eab9c), at 0xfa9d9918
    [22] 0xfa614f74(0x17be110, 0xf71fc000, 0x0, 0x0, 0xfa629ee8, 0xfe275df0), at 0xfa614f74
    Without Coherence lib we don't see these kind of bad address core dumps

    Some time we do see below stack trace caused by coherence ,
    Current function is coherence::native::NativeAtomic64::peek
    79 return m_lAtomic;
    (dbx) where
    =>[1] coherence::native::NativeAtomic64::peek(this = 0x3844119f), line 79 in "NativeAtomic64.hpp"
    [2] coherence::lang::Object::_detach(this = 0x38441197, fEscaped = false), line 761 in "Object.hpp"
    [3] 0xfa2a7fc0(0x3192d5b0, 0x0, 0xc0000000, 0xfdf88a80, 0x0, 0x4f5ca40), at 0xfa2a7fc0
    [4] 0xfa7c5570(0x3192d528, 0x1, 0x1000, 0x3f1728, 0x3f1400, 0xfdf88a80), at 0xfa7c5570
    [5] 0xfab9537c(0x3192d5c8, 0x1ffffe0, 0xfdf88a80, 0x80000000, 0xc0, 0x80), at 0xfab9537c
    [6] coherence::lang::Object::_detach(this = 0x3192d5c8, fEscaped = false), line 774 in "Object.hpp"
    [7] 0xfa7ccd34(0xf71fa288, 0x2, 0x18, 0xfdf88a80, 0x1, 0x1), at 0xfa7ccd34
    [8] 0xfa886744(0x2c0d4e0, 0xf71f9d14, 0xf71f9d14, 0xfdf88a80, 0x0, 0xf71fa134), at 0xfa886744
    [9] 0xfa90c320(0x655adb0, 0xfe476544, 0x2bc2a40, 0xf71fa380, 0x2, 0xf71fa458), at 0xfa90c320
    [10] 0xfad8f044(0x867800, 0x655ae78, 0xf71fb500, 0xf71fa670, 0xf71fb500, 0xf71fa5b0), at 0xfad8f044
    [11] 0xfad838dc(0x2bc28f8, 0xf71fb234, 0xfe7f165c, 0xfdf88a80, 0xf71fad6c, 0xf71fae44), at 0xfad838dc
    [12] 0xfb293ed0(0x2c09620, 0x2bc28f8, 0xc54400, 0xf71fb500, 0xf71fb4d0, 0xfdf88a80), at 0xfb293ed0
    [13] 0xfa758038(0x2c09638, 0xfe6ea03c, 0xfe6ea03c, 0xf71fb5a0, 0x1, 0xf71fb5c0), at 0xfa758038
    [14] 0xfa9d9918(0xf71fbed0, 0x2c09948, 0xfdf88a80, 0x2c0e9c8, 0xf71fbf28, 0xfe4eab9c), at 0xfa9d9918
    [15] 0xfa614f74(0x256e910, 0xf71fc000, 0x0, 0x0, 0xfa629ee8, 0xfe275df0), at 0xfa614f74
    (dbx)
    Please advice.

Maybe you are looking for