help-gplusplus
[Top][All Lists]
Advanced

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

Core Dumping - SEGV_MAPERR - SIGSEGV, Segmentation fault


From: kevin_zych
Subject: Core Dumping - SEGV_MAPERR - SIGSEGV, Segmentation fault
Date: Fri, 17 Aug 2007 16:11:05 -0400

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);
        }
}




reply via email to

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