help-gplusplus
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Makefile doubts


From: Vakayil Thobias
Subject: Re: Makefile doubts
Date: Wed, 05 Sep 2007 14:03:20 +0530
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6) Gecko/20040113

Yasothabalan Ramaswamy-TLS,Chennai wrote:
Hi, I am very new when it comes to this topic so please be forgiving.  I
am an intern and I could use some help.  I have followed another post
from this site since I have a similar problem but it didn't help.
Here's my problem: I have a function (FetchData(), shown below) and this
function works perfectly in a 32-bit HP-UX i64 environment.  I am trying
to compile and use this function in 64-bit and it CORE dumps on the line
notified below.  I ran my application in GDB and attempted to trace
through but I can't seem to make sense of it and I was hoping for some
expertise.  Here is the GDB outputs and at the bottom is the source
code.  Any help would be greatly appreciated.  Thanks in advance.

(gdb) run
Starting program:
/dofasco/devapps/eline3ops/src/extr/dse/ELINE3OPS_EXTR_DSE warning: Load module /oracle/product/10.2.0/lib/libclntsh.so.10.1 has been stripped. Debugging information is not available.

warning: Load module /oracle/product/10.2.0/lib/libnnz10.so has been
stripped. Debugging information is not available.


Program received signal SIGSEGV, Segmentation fault
  si_code: 1 - SEGV_MAPERR - Address not mapped to object.
0x9fffffffeeef65c0:0 in lxhmcnv+0x2e0 ()
   from /oracle/product/10.2.0/lib/libclntsh.so.10.1

(gdb) where
#0  0x9fffffffeeef65c0:0 in lxhmcnv+0x2e0 ()
   from /oracle/product/10.2.0/lib/libclntsh.so.10.1
#1  0x9fffffffeeebbd00:0 in lxgcnvc+0x2660 ()
   from /oracle/product/10.2.0/lib/libclntsh.so.10.1
#2  0x9fffffffee429620:0 in kpccc2u+0x760 ()
   from /oracle/product/10.2.0/lib/libclntsh.so.10.1
#3  0x9fffffffee427880:0 in kpccs2c+0x1a0 ()
   from /oracle/product/10.2.0/lib/libclntsh.so.10.1
#4  0x9fffffffee3c4cb0:0 in ttccfpg+0xa10 ()
   from /oracle/product/10.2.0/lib/libclntsh.so.10.1
#5  0x9fffffffee3c1e90:0 in ttcfour+0x1e40 ()
   from /oracle/product/10.2.0/lib/libclntsh.so.10.1
#6  0x9fffffffededcb10:0 in <unknown_procedure> + 0x1010 ()
   from /oracle/product/10.2.0/lib/libclntsh.so.10.1
#7  0x9fffffffef4b1b50 in <unknown_procedure> + 0xa00 ()
   from /oracle/product/10.2.0/lib/libclntsh.so.10.1
#8  0x9fffffffededfa80:0 in kpufch+0x380 ()
   from /oracle/product/10.2.0/lib/libclntsh.so.10.1
#9  0x9fffffffedcd44c0:0 in OCIStmtFetch2+0x40 ()
   from /oracle/product/10.2.0/lib/libclntsh.so.10.1
#10 0x9fffffffedb24240:0 in sqlcucFetch+0x80 ()
   from /oracle/product/10.2.0/lib/libclntsh.so.10.1
#11 0x9fffffffedb0ccd0:0 in sqlall+0x13e0 ()
---Type <return> to continue, or q <return> to quit---
   from /oracle/product/10.2.0/lib/libclntsh.so.10.1
#12 0x9fffffffedaf84f0:0 in sqlnst+0x4c50 ()
   from /oracle/product/10.2.0/lib/libclntsh.so.10.1
#13 0x9fffffffedad4150:0 in sqlcxt+0x7d0 ()
   from /oracle/product/10.2.0/lib/libclntsh.so.10.1
#14 0x4000000000040800:0 in FetchData+0xa30 ()
#15 0x400000000003fa30:0 in WritePceDefSurfRec+0xa10 ()
#16 0x400000000003d620:0 in ExtrDSEPCEDEF+0x450 ()
#17 0x4000000000041e00:0 in ProcessExtrRequest+0x740 ()
#18 0x400000000003c290:0 in main+0x8f0 ()

(gdb) info shared
Shared Object Libraries
        tstart              tend              dstart              dend

/usr/lib/hpux64/dld.so
 0x9fffffffef786000 0x9fffffffef7faec0 0x9fffffffef77f000
0x9fffffffef785d90
/oracle/product/10.2.0/lib/libclntsh.so.10.1
 0x9fffffffed567000 0x9fffffffef773a70 0x9fffffffed4b8000
0x9fffffffed563f50
/usr/lib/hpux64/libc.so.1
 0x9fffffffec000000 0x9fffffffec2495a0 0x9fffffffed480000
0x9fffffffed492cb8
/oracle/product/10.2.0/lib/libnnz10.so
 0x9fffffffecfc9000 0x9fffffffed47bd50 0x9fffffffecf7c000
0x9fffffffecfc5ee0
/usr/lib/hpux64/librt.so.1
 0x9fffffffecf69000 0x9fffffffecf6f3e0 0x9fffffffef77c000
0x9fffffffef77c0d8
/usr/lib/hpux64/libnss_dns.so.1
 0x9fffffffecf5a000 0x9fffffffecf68400 0x9fffffffef77b000
0x9fffffffef77b398
/usr/lib/hpux64/libdl.so.1
 0x9fffffffed564000 0x9fffffffed566b10 0x9fffffffef77a000
0x9fffffffef77a068
/usr/lib/hpux64/libm.so.1
 0x9fffffffecdef000 0x9fffffffecf59710 0x9fffffffecdeb000
0x9fffffffecdee818
/usr/lib/hpux64/libpthread.so.1
 0x9fffffffecd4e000 0x9fffffffecde3110 0x9fffffffecd48000
0x9fffffffecd4b380
/usr/lib/hpux64/libunwind.so.1
 0x9fffffffeccfb000 0x9fffffffecd47f80 0x9fffffffecfc7000
0x9fffffffecfc8460
/usr/lib/hpux64/libnsl.so.1
 0x9fffffffecbff000 0x9fffffffeccfa560 0x9fffffffecbf0000
0x9fffffffecbfe868
/usr/lib/hpux64/libuca.so.1
 0x9fffffffecbe4000 0x9fffffffecbebe00 0x9fffffffed493000
0x9fffffffed493150
/usr/lib/hpux64/libxti.so.1
 0x9fffffffecbb4000 0x9fffffffecbe30b0 0x9fffffffecbb1000
0x9fffffffecbb3920
Total of 13 shared libraries.

(gdb) info reg
pr0: 0x1 pr1: 0x1 pr2: 0x1 pr3: 0 pr4: 0 pr5: 0 pr6: 0 pr7: 0 pr8: 0 pr9: 0 pr10: 0 pr11: 0x1 pr12: 0 pr13: 0x1 pr14: 0 pr15: 0x1 pr16: 0 pr17: 0 pr18: 0x1 pr19: 0 pr20: 0 pr21: 0 pr22: 0x1 ---Type <return> to continue, or q <return> to quit--- pr23: 0x1 pr24: 0 pr25: 0 pr26: 0 pr27: 0 pr28: 0 pr29: 0 pr30: 0 pr31: 0 pr32: 0 pr33: 0 pr34: 0 pr35: 0 pr36: 0 pr37: 0 pr38: 0 pr39: 0 pr40: 0 pr41: 0 pr42: 0 pr43: 0 pr44: 0 pr45: 0 ---Type <return> to continue, or q <return> to quit--- pr46: 0 pr47: 0 pr48: 0 pr49: 0 pr50: 0 pr51: 0 pr52: 0 pr53: 0 pr54: 0 pr55: 0 pr56: 0 pr57: 0 pr58: 0 pr59: 0 pr60: 0 pr61: 0 pr62: 0 pr63: 0 gr0: 0 natr0: 0 gr1: 0x9fffffffed53d620 natr1: 0 gr2: 0xa natr2: 0 gr3: 0x34 natr3: 0 gr4: 0 natr4: 0 ---Type <return> to continue, or q <return> to quit--- gr5: 0xc000000000000408 natr5: 0 gr6: 0x9fffffffef7bd000 natr6: 0 gr7: 0x9fffffffef782860 natr7: 0 gr8: 0x60000000001b10ce natr8: 0 gr9: 0x30 natr9: 0 gr10: 0x60000000001b10c6 natr10: 0 gr11: 0x6000000000105f20 natr11: 0 gr12: 0x9fffffffffff5e70 natr12: 0 gr13: 0x9fffffffecfc6080 natr13: 0 gr14: 0x34 natr14: 0 gr15: 0x35 natr15: 0 gr16: 0x30 natr16: 0 gr17: 0x6000000000105ef0 natr17: 0 gr18: 0x900 natr18: 0 gr19: 0x900 natr19: 0 gr20: 0x900 natr20: 0 gr21: 0x60000000001055f0 natr21: 0 gr22: 0x60000000001055f0 natr22: 0 gr23: 0x60000000001055f0 natr23: 0 gr24: 0x34 natr24: 0 gr25: 0x35 natr25: 0 gr26: 0x30 natr26: 0 gr27: 0x60000000001b10c4 natr27: 0 ---Type <return> to continue, or q <return> to quit--- gr28: 0x600000000026449d natr28: 0 gr29: 0x60000000001b10c6 natr29: 0 gr30: 0x600000000026449c natr30: 0 gr31: 0x60000000001b10bc natr31: 0 gr32: 0x265948 natr32: 0 gr33: 0x6000000000264aa0 natr33: 0 gr34: 0x265940 natr34: 0 gr35: 0x35 natr35: 0 gr36: 0x60000000001b0bd0 natr36: 0 gr37: 0x30 natr37: 0 gr38: 0x30 natr38: 0 gr39: 0x6000000000105ef0 natr39: 0 gr40: 0x9fffffffeeebbd00 natr40: 0 gr41: 0xc4a841 natr41: 0 gr42: 0 natr42: 0 gr43: 0x265640 natr43: 0 gr44: 0x60000000001055f0 natr44: 0 gr45: 0x265640 natr45: 0 gr46: 0x3f natr46: 0 gr47: 0x3e8 natr47: 0 gr48: 0xffffffffffffff41 natr48: 0 gr49: 0xc0000000000057b7 natr49: 0 gr50: 0x600000000013b468 natr50: 0 ---Type <return> to continue, or q <return> to quit--- gr51: 0x3f natr51: 0 gr52: 0x2 natr52: 0 gr53: 0x60000000001b105c natr53: 0 gr54: 0x1 natr54: 0 gr55: 0xa natr55: 0 br0: 0x9fffffffeeebbd00 br1: 0x9fffffffec0a9200 br2: 0x9fffffffec1ee260 br3: 0 br4: 0 br5: 0 br6: 0x9fffffffeeef62e0 br7: 0x9fffffffeeebbcb0 ar16: 0x1f ar17: 0x9fffffffef800430 ar18: 0x9fffffffef8001e0 ar19: 0 ar32: 0 ar36: 0 ar40: 0x9804c8274433f ar64: 0xc0000000000057b7 (sor:1, sol:47, sof:55) ar65: 0x1 ---Type <return> to continue, or q <return> to quit--- ar66: 0x1 ip: 0x9fffffffeeef65c0:0 cfm: 0x4a98 (sor:1, sol:21, sof:24) psr: 0x1013086ae01a
(gdb) x/20i $pc-40
0x9fffffffeeef6590:8 <lxhmcnv+0x2b8>:         illegalOp
0x109a7010702
0x9fffffffeeef6590:9 <lxhmcnv+0x2b9>:         illegalOp
0x120460005
0x9fffffffeeef6590:10 <lxhmcnv+0x2ba>:        illegalOp
0x1016020002c
0x9fffffffeeef65a0:8 <lxhmcnv+0x2c8>:   (p2)  break.m          0x800
0x9fffffffeeef65a0:9 <lxhmcnv+0x2c9>: 0x9fffffffeeef65a0:10 <lxhmcnv+0x2ca>: (p40) break.x
0x6410000ccb10
0x9fffffffeeef65b0:8 <lxhmcnv+0x2d8>:   (p33) adds
r88=0x110c,r16
0x9fffffffeeef65b0:9 <lxhmcnv+0x2d9>:   (p5)  dep
r0=r48,r2,31,5
0x9fffffffeeef65b0:10 <lxhmcnv+0x2da>:  (p44) illegalOp
0xf4802b00ac
0x9fffffffeeef65c0:8 <lxhmcnv+0x2e8>:   (p4)  illegalOp
0x5746020004
0x9fffffffeeef65c0:9 <lxhmcnv+0x2e9>:   (p1)  fcvt.xf          f32=f28
0x9fffffffeeef65c0:10 <lxhmcnv+0x2ea>:        illegalOp
0x12020c02c
0x9fffffffeeef65d0:8 <lxhmcnv+0x2f8>:   (p4)  illegalOp
0x470a010604
0x9fffffffeeef65d0:9 <lxhmcnv+0x2f9>: (p2) addl r0=0xffffffffffec8070,r2 0x9fffffffeeef65d0:10 <lxhmcnv+0x2fa>: brp.exit.dc.nt kudmxcf+15064,lxhmcnv+1560
0x9fffffffeeef65e0:8 <lxhmcnv+0x308>:   (p6)  break.m          0x462
0x9fffffffeeef65e0:9 <lxhmcnv+0x309>:   (p16) fwb
0x9fffffffeeef65e0:10 <lxhmcnv+0x30a>:  (p40) illegalOp
0x1f4a020c028;;
0x9fffffffeeef65f0:8 <lxhmcnv+0x318>:         break.m          0x50
0x9fffffffeeef65f0:9 <lxhmcnv+0x319>:   (p16) illegalOp
0x5340240010

(gdb) x/20i (unsigned long) ($pc-40) & (~0xF)
0x9fffffffeeef6590:0 <lxhmcnv+0x2b0>:         add
r17=r20,r44;;
0x9fffffffeeef6590:1 <lxhmcnv+0x2b1>:         ld4.sa           r18=[r21]
0x9fffffffeeef6590:2 <lxhmcnv+0x2b2>:         add
r39=r19,r44
0x9fffffffeeef65a0:0 <lxhmcnv+0x2c0>:         ld1              r9=[r11]
0x9fffffffeeef65a0:1 <lxhmcnv+0x2c1>:         add
r11=r16,r17
0x9fffffffeeef65a0:2 <lxhmcnv+0x2c2>:         nop.b            0x0;;
0x9fffffffeeef65b0:0 <lxhmcnv+0x2d0>:   (p6)  lfetch.nt1       [r10]
0x9fffffffeeef65b0:1 <lxhmcnv+0x2d1>:   (p6)  lfetch.nt1       [r8]
0x9fffffffeeef65b0:2 <lxhmcnv+0x2d2>:         add
r17=r18,r44
0x9fffffffeeef65c0:0 <lxhmcnv+0x2e0>:         st1
[r43]=r9,1
0x9fffffffeeef65c0:1 <lxhmcnv+0x2e1>:         add
r36=r15,r39
0x9fffffffeeef65c0:2 <lxhmcnv+0x2e2>:         cmp4.eq.unc
p6=r46,r9;;
0x9fffffffeeef65d0:0 <lxhmcnv+0x2f0>:         ld1.sa           r39=[r11]
0x9fffffffeeef65d0:1 <lxhmcnv+0x2f1>:         ld1.sa           r9=[r36]
0x9fffffffeeef65d0:2 <lxhmcnv+0x2f2>:         add
r10=r14,r17
0x9fffffffeeef65e0:0 <lxhmcnv+0x300>:   (p6)  cmp4.ne.unc
p6=r51,r38;;
0x9fffffffeeef65e0:1 <lxhmcnv+0x301>:   (p6)  st2              [r50]=r47
0x9fffffffeeef65e0:2 <lxhmcnv+0x302>:         nop.i            0x0;;
0x9fffffffeeef65f0:0 <lxhmcnv+0x310>:         ld1.sa           r8=[r10]
0x9fffffffeeef65f0:1 <lxhmcnv+0x311>:         chk.a.clr
r37,lxhmcnv+1280


SOURCE CODE of the FetchData() function where the app is dying:
int FetchData(char *sqlstmt, int array_size, FILE *lfp)
{
    static char *moduleName = "FetchData";
        SQLDA *    select_dp;
        char    myLocationText[80];
        int     i;
        int     j;
        int     null_ok;
        int     precision;
        int     scale;
        int     size = 60;
        char    strLine[1024];
        char    tmpStr[100];
        int     last_fetch_count;
        int     row_count = 0;
        short   ind_value;
        char    * char_ptr;


    EXEC SQL WHENEVER SQLERROR GO TO sqlerror;
        EXEC SQL WHENEVER NOTFOUND CONTINUE;

    EXEC SQL PREPARE S FROM :sqlstmt;
    EXEC SQL DECLARE fetchPceDef_cursor CURSOR FOR S;

        /* Allocate cursor descriptor to select_dp using sqlald */
        if ((select_dp = sqlald(size, MAX_VNAME_LEN, MAX_INAME_LEN)) ==
NULL ) {
                sprintf(message, "Unable to allocate cursor descriptor
for %s", pce_track_ident_no.arr);
                AlarmLog('I', moduleName, message, __FILE__,
itochar(__LINE__), VERROR, LOGERROR);
                return ABADDATA;
    }

        /* N specifies the maximum number of select-list items or
placeholders that can be DESCRIBEd. Thus, N determines the number of elements in the descriptor arrays. */
    select_dp->N = size;
    EXEC SQL DESCRIBE SELECT LIST FOR S INTO select_dp;

        /* F is the actual number of select-list items or placeholders
found by DESCRIBE */
    if ( !select_dp->F )
    {
                sprintf(message, "There were no columns selected for:
%s.", pce_track_ident_no.arr);
                AlarmLog('I', moduleName, message, __FILE__,
itochar(__LINE__), VERROR, LOGERROR);
                
                return ABADDATA;
    }

        /* A negative amount of select-list items were found, negate the
# */
    if (select_dp->F < 0)
    {
        size = -select_dp->F;
        sqlclu( select_dp );
        if ((select_dp = sqlald (size, MAX_VNAME_LEN, MAX_INAME_LEN)) ==
NULL )
                {
                        sprintf(message, "Unable to allocate cursor
descriptor for %s.", pce_track_ident_no.arr);
                        AlarmLog('I', moduleName, message, __FILE__,
itochar(__LINE__), VERROR, LOGERROR);
                        return ABADDATA;
                }

        EXEC SQL DESCRIBE SELECT LIST FOR S INTO select_dp;
    }

        /* N is the size, set it to F, the # of columns */
    select_dp->N = select_dp->F;

    for (i = 0; i < select_dp->F; i++)
    {
                /* Allocate indicator variables for each column in the
select list */
                /* I is a pointer to an array of addresses of data
buffers that store indicator-variable values */
                select_dp->I[i] = (short *) malloc(sizeof(short) *
array_size );
                /* Use the library function sqlnul() to retrieve the
datatype code and clear the null/not null bit. */
        sqlnul (&(select_dp->T[i]),      &(select_dp->T[i]), &null_ok);
        if ( select_dp->T[i] < sizeof(lengths)/sizeof(lengths[0]) )
        {
                        /* T is a pointer to an array of datatype codes
of select-list or bind-variable values*/
                        /* L is a pointer to an array of lengths of
select-list or bind-variable values stored in data buffers*/
        
            if ( lengths[select_dp->T[i]] )  select_dp->L[i]  =
lengths[select_dp->T[i]];
            else select_dp->L[i] += 5;
        }
        else select_dp->L[i] += 5;

        select_dp->T[i] = 5;

                /* V is a pointer to an array of addresses of data
buffers that store select-list or bind-variable values.*/
        select_dp->V[i] = (char *)malloc( select_dp->L[i] * array_size
);

    }

    EXEC SQL OPEN fetchPceDef_cursor;

        EXEC SQL WHENEVER SQLERROR CONTINUE;
        EXEC SQL WHENEVER NOTFOUND CONTINUE;

    /*for ( last_fetch_count = 0; ; last_fetch_count = RECORD_COUNT )
    {

/* CORE DUMPING AFTER THIS NEXT LINE: */
        EXEC SQL FOR :array_size FETCH fetchPceDef_cursor USING
DESCRIPTOR select_dp;

        for( j=0; j < RECORD_COUNT-last_fetch_count; j++ )
        {
                        memset(strLine, 0, sizeof(strLine));

                        /* Go through each column that was fetch, and
pull it out */
            for (i = 0; i < select_dp->F; i++)
            {
                                /* ind_value is the NULL indicator,
char_ptr is the value */
                ind_value = *(select_dp->I[i]+j);
                char_ptr  = select_dp->V[i] + (j*select_dp->L[i]);

                                if (!ind_value) StrTrim(char_ptr);

                sprintf(tmpStr, "%s%s", i?",":"",
ind_value?"(null)":char_ptr );
                                strcat(strLine, tmpStr);
            }
            row_count++;
            fprintf(lfp, "%s\n", strLine );
        }
if ( sqlca.sqlcode > 0 ) {

                        sprintf(message, "No more records found for
%s.", pce_track_ident_no.arr);
                        AlarmLog('I', moduleName, message, __FILE__,
itochar(__LINE__), VEVENT2, LOGERROR);
                        break;
        }
    }

for (i = 0; i < select_dp->F; i++) /* for select descriptor */ { free(select_dp->V[i]); free(select_dp->I[i]); }

    sqlclu(select_dp);

    EXEC SQL CLOSE fetchPceDef_cursor;
        return (ASUCCESS);

sqlerror:
        if (SQL_STATUS == -907)
        {
                sprintf(message, "Missing parenthesis on query! (%s) -
%s", pce_track_ident_no.arr, myLocationText);
                AlarmLog('I', moduleName, message, __FILE__,
itochar(__LINE__), VERROR, LOGERROR);
                return ABADDATA;
                /* Missing right parenthesis */
        }
        else
        {
                DspSqlError(moduleName, __FILE__, itochar(__LINE__));

                sprintf(message, "Unable to retrieve ASIS Results for %s
(%s).", pce_track_ident_no.arr, myLocationText);
                AlarmLog('I', moduleName, message, __FILE__,
itochar(__LINE__), VERROR, LOGERROR);
                return(ABADDATA);
        }
}



Did you use the -g option with g++ for including the symbol table information with the application ?

Regards,
Thobias Vakayil





reply via email to

[Prev in Thread] Current Thread [Next in Thread]