guardsoft-cvs Mailing List for Guard Parallel Relative Debugger
Brought to you by:
jarrah
You can subscribe to this list here.
| 2003 |
Jan
(1) |
Feb
(1) |
Mar
(15) |
Apr
(13) |
May
|
Jun
(1) |
Jul
(2) |
Aug
|
Sep
(4) |
Oct
(3) |
Nov
(1) |
Dec
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2004 |
Jan
(5) |
Feb
(3) |
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2005 |
Jan
|
Feb
|
Mar
|
Apr
(7) |
May
(24) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Greg W. <ja...@us...> - 2005-05-24 23:58:58
|
Update of /cvsroot/guardsoft/libaif In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22376 Modified Files: calc.c cmp.c conv.c Log Message: remove use of TypeToFDS Index: cmp.c =================================================================== RCS file: /cvsroot/guardsoft/libaif/cmp.c,v retrieving revision 1.47 retrieving revision 1.48 diff -C2 -d -r1.47 -r1.48 *** cmp.c 9 Apr 2004 22:23:28 -0000 1.47 --- cmp.c 24 May 2005 23:58:48 -0000 1.48 *************** *** 1504,1508 **** if ( *rf == NULL ) ! *rf = strdup(TypeToFDS(AIF_BOOLEAN)); *d1 += bytes1; --- 1504,1508 ---- if ( *rf == NULL ) ! *rf = strdup(AIF_BOOLEAN_TYPE()); *d1 += bytes1; *************** *** 2222,2226 **** if ( *rf == NULL ) ! *rf = strdup(TypeToFDS(AIF_STRING)); return 0; --- 2222,2226 ---- if ( *rf == NULL ) ! *rf = strdup(AIF_STRING_TYPE()); return 0; Index: calc.c =================================================================== RCS file: /cvsroot/guardsoft/libaif/calc.c,v retrieving revision 1.39 retrieving revision 1.40 diff -C2 -d -r1.39 -r1.40 *** calc.c 31 Jan 2004 16:24:27 -0000 1.39 --- calc.c 24 May 2005 23:58:45 -0000 1.40 *************** *** 589,593 **** if ( *rf == NULL ) ! *rf = strdup(TypeToFDS(AIF_INTEGER, 1, MAX(bytes1, bytes2))); else { --- 589,593 ---- if ( *rf == NULL ) ! *rf = strdup(AIF_INTEGER_TYPE(1, MAX(bytes1, bytes2))); else { *************** *** 629,633 **** if ( *rf == NULL ) ! *rf = strdup(TypeToFDS(AIF_FLOATING, MAX(bytes2, bytes3))); else { --- 629,633 ---- if ( *rf == NULL ) ! *rf = strdup(AIF_FLOATING_TYPE(MAX(bytes2, bytes3))); else { *************** *** 682,686 **** if ( *rf == NULL ) ! *rf = strdup(TypeToFDS(AIF_INTEGER, FDSIsSigned(*f1) || FDSIsSigned(*f2), MAX(bytes1, bytes2))); --- 682,686 ---- if ( *rf == NULL ) ! *rf = strdup(AIF_INTEGER_TYPE( FDSIsSigned(*f1) || FDSIsSigned(*f2), MAX(bytes1, bytes2))); *************** *** 707,711 **** if ( *rf == NULL ) ! *rf = strdup(TypeToFDS(AIF_FLOATING, MAX(bytes2, bytes3))); _aif_free(d3); --- 707,711 ---- if ( *rf == NULL ) ! *rf = strdup(AIF_FLOATING_TYPE(MAX(bytes2, bytes3))); _aif_free(d3); *************** *** 725,729 **** if ( *rf == NULL ) ! *rf = strdup(TypeToFDS(AIF_INTEGER, 1, sizeof(int))); return 0; --- 725,729 ---- if ( *rf == NULL ) ! *rf = strdup(AIF_INTEGER_TYPE(1, sizeof(int))); return 0; *************** *** 759,763 **** if ( *rf == NULL ) ! *rf = strdup(TypeToFDS(AIF_FLOATING, MAX(bytes2, bytes3))); _aif_free(d3); --- 759,763 ---- if ( *rf == NULL ) ! *rf = strdup(AIF_FLOATING_TYPE(MAX(bytes2, bytes3))); _aif_free(d3); *************** *** 778,782 **** if ( *rf == NULL ) ! *rf = strdup(TypeToFDS(AIF_FLOATING, MAX(bytes1, bytes2))); _fds_advance(f1); --- 778,782 ---- if ( *rf == NULL ) ! *rf = strdup(AIF_FLOATING_TYPE(MAX(bytes1, bytes2))); _fds_advance(f1); *************** *** 794,798 **** if ( *rf == NULL ) ! *rf = strdup(TypeToFDS(AIF_INTEGER, 1, sizeof(int))); return 0; --- 794,798 ---- if ( *rf == NULL ) ! *rf = strdup(AIF_INTEGER_TYPE(1, sizeof(int))); return 0; *************** *** 815,819 **** if ( *rf == NULL ) ! *rf = strdup(TypeToFDS(AIF_BOOLEAN)); *d1 += bytes1; --- 815,819 ---- if ( *rf == NULL ) ! *rf = strdup(AIF_BOOLEAN_TYPE()); *d1 += bytes1; *************** *** 845,849 **** if ( *rf == NULL ) ! *rf = strdup(TypeToFDS(AIF_INTEGER, FDSIsSigned(*f2), MAX(bytes1, bytes2))); --- 845,849 ---- if ( *rf == NULL ) ! *rf = strdup(AIF_INTEGER_TYPE( FDSIsSigned(*f2), MAX(bytes1, bytes2))); *************** *** 859,863 **** if ( *rf == NULL ) ! *rf = strdup(TypeToFDS(AIF_CHARACTER)); *d1 += bytes1; --- 859,863 ---- if ( *rf == NULL ) ! *rf = strdup(AIF_CHARACTER_TYPE()); *d1 += bytes1; *************** *** 878,882 **** if ( *rf == NULL ) ! *rf = strdup(TypeToFDS(AIF_INTEGER, 1, sizeof(int))); return 0; --- 878,882 ---- if ( *rf == NULL ) ! *rf = strdup(AIF_INTEGER_TYPE(1, sizeof(int))); return 0; *************** *** 909,913 **** if ( *rf == NULL ) ! *rf = strdup(TypeToFDS(AIF_INTEGER, 1, sizeof(int))); return 0; --- 909,913 ---- if ( *rf == NULL ) ! *rf = strdup(AIF_INTEGER_TYPE(1, sizeof(int))); return 0; *************** *** 1031,1035 **** if ( *rf == NULL ) ! *rf = strdup(TypeToFDS(AIF_INTEGER, 1, sizeof(int))); return 0; --- 1031,1035 ---- if ( *rf == NULL ) ! *rf = strdup(AIF_INTEGER_TYPE(1, sizeof(int))); return 0; *************** *** 1382,1386 **** if ( *rf == NULL ) ! *rf = strdup(TypeToFDS(AIF_STRING)); return 0; --- 1382,1386 ---- if ( *rf == NULL ) ! *rf = strdup(AIF_STRING_TYPE()); return 0; *************** *** 1397,1401 **** if ( *rf == NULL ) ! *rf = strdup(TypeToFDS(AIF_INTEGER, 1, sizeof(int))); return 0; --- 1397,1401 ---- if ( *rf == NULL ) ! *rf = strdup(AIF_INTEGER_TYPE(1, sizeof(int))); return 0; *************** *** 1411,1415 **** if ( *rf == NULL ) ! *rf = strdup(TypeToFDS(AIF_INTEGER, 1, sizeof(int))); return 0; --- 1411,1415 ---- if ( *rf == NULL ) ! *rf = strdup(AIF_INTEGER_TYPE(1, sizeof(int))); return 0; *************** *** 1444,1448 **** if ( *rf == NULL ) ! *rf = strdup(TypeToFDS(AIF_BOOLEAN)); if ( _aif_unary_op_bool(op, rd, *data, bytes) < 0 ) --- 1444,1448 ---- if ( *rf == NULL ) ! *rf = strdup(AIF_BOOLEAN_TYPE()); if ( _aif_unary_op_bool(op, rd, *data, bytes) < 0 ) *************** *** 1457,1461 **** if ( *rf == NULL ) ! *rf = strdup(TypeToFDS(AIF_INTEGER, 1, bytes)); else { --- 1457,1461 ---- if ( *rf == NULL ) ! *rf = strdup(AIF_INTEGER_TYPE(1, bytes)); else { *************** *** 1487,1491 **** if ( *rf == NULL ) ! *rf = strdup(TypeToFDS(AIF_INTEGER, FDSIsSigned(*fds), bytes)); _fds_advance(fds); --- 1487,1491 ---- if ( *rf == NULL ) ! *rf = strdup(AIF_INTEGER_TYPE(FDSIsSigned(*fds), bytes)); _fds_advance(fds); *************** *** 1501,1505 **** if ( *rf == NULL ) ! *rf = strdup(TypeToFDS(AIF_FLOATING, bytes)); if ( _aif_unary_op_float(op, rd, *data, bytes) < 0 ) --- 1501,1505 ---- if ( *rf == NULL ) ! *rf = strdup(AIF_FLOATING_TYPE(bytes)); if ( _aif_unary_op_float(op, rd, *data, bytes) < 0 ) Index: conv.c =================================================================== RCS file: /cvsroot/guardsoft/libaif/conv.c,v retrieving revision 1.53 retrieving revision 1.54 diff -C2 -d -r1.53 -r1.54 *** conv.c 22 May 2005 15:40:57 -0000 1.53 --- conv.c 24 May 2005 23:58:48 -0000 1.54 *************** *** 213,217 **** a = NewAIF(0, 0); ! AIF_FORMAT(a) = strdup(TypeToFDS(AIF_NAME, name, AIF_FORMAT(oldAIF))); AIF_DATA(a) = _aif_alloc(AIF_LEN(oldAIF)); memcpy(AIF_DATA(a), AIF_DATA(oldAIF), AIF_LEN(oldAIF)); --- 213,217 ---- a = NewAIF(0, 0); ! AIF_FORMAT(a) = strdup(AIF_NAME_TYPE(name, AIF_FORMAT(oldAIF))); AIF_DATA(a) = _aif_alloc(AIF_LEN(oldAIF)); memcpy(AIF_DATA(a), AIF_DATA(oldAIF), AIF_LEN(oldAIF)); *************** *** 245,249 **** a = NewAIF(0, 0); ! AIF_FORMAT(a) = strdup(TypeToFDS(AIF_REFERENCE, name)); AIF_LEN(a) = 0; --- 245,249 ---- a = NewAIF(0, 0); ! AIF_FORMAT(a) = strdup(AIF_REFERENCE_TYPE(name)); AIF_LEN(a) = 0; *************** *** 274,279 **** */ sscanf(oldFormat, "%%%d/", &name); ! fmt = strdup(TypeToFDS(AIF_REFERENCE, name)); ! AIF_FORMAT(a) = strdup(TypeToFDS(AIF_POINTER, fmt)); _aif_free(fmt); } --- 274,279 ---- */ sscanf(oldFormat, "%%%d/", &name); ! fmt = strdup(AIF_REFERENCE_TYPE(name)); ! AIF_FORMAT(a) = strdup(AIF_POINTER_TYPE(fmt)); _aif_free(fmt); } *************** *** 283,287 **** ** repeat the format */ ! AIF_FORMAT(a) = strdup(TypeToFDS(AIF_POINTER, oldFormat)); } --- 283,287 ---- ** repeat the format */ ! AIF_FORMAT(a) = strdup(AIF_POINTER_TYPE(oldFormat)); } *************** *** 303,307 **** sscanf(fmt, "%%%d/", &name); ! AIF_FORMAT(a) = strdup(TypeToFDS(AIF_POINTER, AIF_FORMAT(i))); *(AIF_DATA(a)) = (char) AIF_PTR_NAME; --- 303,307 ---- sscanf(fmt, "%%%d/", &name); ! AIF_FORMAT(a) = strdup(AIF_POINTER_TYPE(AIF_FORMAT(i))); *(AIF_DATA(a)) = (char) AIF_PTR_NAME; *************** *** 333,338 **** */ sscanf(oldFormat, "%%%d/", &name); ! fmt = strdup(TypeToFDS(AIF_REFERENCE, name)); ! AIF_FORMAT(a) = strdup(TypeToFDS(AIF_POINTER, fmt)); _aif_free(fmt); } --- 333,338 ---- */ sscanf(oldFormat, "%%%d/", &name); ! fmt = strdup(AIF_REFERENCE_TYPE(name)); ! AIF_FORMAT(a) = strdup(AIF_POINTER_TYPE(fmt)); _aif_free(fmt); } *************** *** 355,359 **** a = NewAIF(0, AIF_LEN(i)+1); ! AIF_FORMAT(a) = strdup(TypeToFDS(AIF_POINTER, AIF_FORMAT(i))); if ( _pointer_to_aif(&AIF_DATA(a), i) < 0 ) --- 355,359 ---- a = NewAIF(0, AIF_LEN(i)+1); ! AIF_FORMAT(a) = strdup(AIF_POINTER_TYPE(AIF_FORMAT(i))); if ( _pointer_to_aif(&AIF_DATA(a), i) < 0 ) *************** *** 388,392 **** a = NewAIF(0, length+2); ! AIF_FORMAT(a) = strdup(TypeToFDS(AIF_STRING)); (AIF_DATA(a))[0] = (length >> 8) & 0xff; --- 388,392 ---- a = NewAIF(0, length+2); ! AIF_FORMAT(a) = strdup(AIF_STRING_TYPE()); (AIF_DATA(a))[0] = (length >> 8) & 0xff; *************** *** 411,415 **** a = NewAIF(0, size); ! AIF_FORMAT(a) = strdup(TypeToFDS(AIF_BOOLEAN)); if ( b ) --- 411,415 ---- a = NewAIF(0, size); ! AIF_FORMAT(a) = strdup(AIF_BOOLEAN_TYPE()); if ( b ) *************** *** 431,435 **** a = NewAIF(0, sizeof(char)); ! AIF_FORMAT(a) = strdup(TypeToFDS(AIF_CHARACTER)); if ( _char_to_aif(&AIF_DATA(a), c) < 0 ) --- 431,435 ---- a = NewAIF(0, sizeof(char)); ! AIF_FORMAT(a) = strdup(AIF_CHARACTER_TYPE()); if ( _char_to_aif(&AIF_DATA(a), c) < 0 ) *************** *** 452,456 **** a = NewAIF(0, sizeof(int)); ! AIF_FORMAT(a) = strdup(TypeToFDS(AIF_INTEGER, 1, sizeof(int))); if ( _longest_to_aif(&AIF_DATA(a), sizeof(int), (AIFLONGEST)i) < 0 ) --- 452,456 ---- a = NewAIF(0, sizeof(int)); ! AIF_FORMAT(a) = strdup(AIF_INTEGER_TYPE(1, sizeof(int))); if ( _longest_to_aif(&AIF_DATA(a), sizeof(int), (AIFLONGEST)i) < 0 ) *************** *** 473,477 **** a = NewAIF(0, sizeof(unsigned int)); ! AIF_FORMAT(a) = strdup(TypeToFDS(AIF_INTEGER, 0, sizeof(unsigned int))); if ( _longest_to_aif(&AIF_DATA(a), sizeof(unsigned int), (AIFLONGEST)i) < 0 ) --- 473,477 ---- a = NewAIF(0, sizeof(unsigned int)); ! AIF_FORMAT(a) = strdup(AIF_INTEGER_TYPE(0, sizeof(unsigned int))); if ( _longest_to_aif(&AIF_DATA(a), sizeof(unsigned int), (AIFLONGEST)i) < 0 ) *************** *** 494,498 **** a = NewAIF(0, sizeof(AIFLONGEST)); ! AIF_FORMAT(a) = strdup(TypeToFDS(AIF_INTEGER, 1, sizeof(AIFLONGEST))); if ( _longest_to_aif(&AIF_DATA(a), sizeof(AIFLONGEST), i) < 0 ) --- 494,498 ---- a = NewAIF(0, sizeof(AIFLONGEST)); ! AIF_FORMAT(a) = strdup(AIF_INTEGER_TYPE(1, sizeof(AIFLONGEST))); if ( _longest_to_aif(&AIF_DATA(a), sizeof(AIFLONGEST), i) < 0 ) *************** *** 547,551 **** a = NewAIF(0, sizeof(float)); ! AIF_FORMAT(a) = strdup(TypeToFDS(AIF_FLOATING, sizeof(float))); if ( _doublest_to_aif(&AIF_DATA(a), sizeof(float), (AIFDOUBLEST)f) < 0 ) --- 547,551 ---- a = NewAIF(0, sizeof(float)); ! AIF_FORMAT(a) = strdup(AIF_FLOATING_TYPE(sizeof(float))); if ( _doublest_to_aif(&AIF_DATA(a), sizeof(float), (AIFDOUBLEST)f) < 0 ) *************** *** 565,569 **** a = NewAIF(0, sizeof(double)); ! AIF_FORMAT(a) = strdup(TypeToFDS(AIF_FLOATING, sizeof(double))); if ( _doublest_to_aif(&AIF_DATA(a), sizeof(double), (AIFDOUBLEST)f) < 0 ) --- 565,569 ---- a = NewAIF(0, sizeof(double)); ! AIF_FORMAT(a) = strdup(AIF_FLOATING_TYPE(sizeof(double))); if ( _doublest_to_aif(&AIF_DATA(a), sizeof(double), (AIFDOUBLEST)f) < 0 ) *************** *** 576,580 **** ** Convert an array to AIF. ** ! ** AIF *ArrayToAIF(int rank, int *min, int *max, char *data, char *btype) ** ** - rank is the rank of the array --- 576,580 ---- ** Convert an array to AIF. ** ! ** AIF *ArrayToAIF(int rank, int *min, int *max, char *data, int len, char *btype) ** ** - rank is the rank of the array *************** *** 600,609 **** btype = strdup(btype); ! itype = strdup(TypeToFDS(AIF_INTEGER, 0, sizeof(int))); for ( i = rank - 1 ; i >= 0 ; i-- ) { ! rtype = strdup(TypeToFDS(AIF_RANGE, min[i], max[i], itype)); ! fds = strdup(TypeToFDS(AIF_ARRAY, rtype, btype)); _aif_free(rtype); --- 600,609 ---- btype = strdup(btype); ! itype = strdup(AIF_INTEGER_TYPE(0, sizeof(int))); for ( i = rank - 1 ; i >= 0 ; i-- ) { ! rtype = strdup(AIF_RANGE_TYPE(min[i], max[i], itype)); ! fds = strdup(AIF_ARRAY_TYPE(rtype, btype)); _aif_free(rtype); *************** *** 636,640 **** a = NewAIF(0, sizeof(int)); ! AIF_FORMAT(a) = strdup(TypeToFDS(AIF_ENUM, 1)); ResetAIFError(); --- 636,640 ---- a = NewAIF(0, sizeof(int)); ! AIF_FORMAT(a) = strdup(AIF_ENUM_TYPE(1)); ResetAIFError(); *************** *** 729,733 **** a = NewAIF(0, 0); ! AIF_FORMAT(a) = strdup(TypeToFDS(AIF_UNION)); ResetAIFError(); --- 729,733 ---- a = NewAIF(0, 0); ! AIF_FORMAT(a) = strdup(AIF_UNION_TYPE()); ResetAIFError(); *************** *** 831,835 **** a = NewAIF(0, 0); ! AIF_FORMAT(a) = strdup(TypeToFDS(AIF_STRUCT)); ResetAIFError(); --- 831,835 ---- a = NewAIF(0, 0); ! AIF_FORMAT(a) = strdup(AIF_STRUCT_TYPE()); ResetAIFError(); *************** *** 1272,1276 **** a = NewAIF(0, len); ! AIF_FORMAT(a) = strdup(TypeToFDS(AIF_VOID, len)); if ( data != NULL && len > 0 ) --- 1272,1276 ---- a = NewAIF(0, len); ! AIF_FORMAT(a) = strdup(AIF_VOID_TYPE(len)); if ( data != NULL && len > 0 ) *************** *** 1381,1385 **** na = NewAIF(0, tlen); ! AIF_FORMAT(na) = strdup(TypeToFDS(AIF_FLOATING, tlen)); /* --- 1381,1385 ---- na = NewAIF(0, tlen); ! AIF_FORMAT(na) = strdup(AIF_FLOATING_TYPE(tlen)); /* |
|
From: Greg W. <ja...@us...> - 2005-05-24 23:39:20
|
Update of /cvsroot/guardsoft/libaif In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18420 Modified Files: aif.h Log Message: sorted Index: aif.h =================================================================== RCS file: /cvsroot/guardsoft/libaif/aif.h,v retrieving revision 1.47 retrieving revision 1.48 diff -C2 -d -r1.47 -r1.48 *** aif.h 24 May 2005 00:44:48 -0000 1.47 --- aif.h 24 May 2005 23:39:10 -0000 1.48 *************** *** 234,253 **** #include "fds.h" ! #define AIF_INTEGER_TYPE(sign, len) TypeToFDS(AIF_INTEGER, (sign), (len)) #define AIF_FLOATING_TYPE(len) TypeToFDS(AIF_FLOATING, (len)) - #define AIF_REFERENCE_TYPE(ref) TypeToFDS(AIF_REFERENCE, (ref)) - #define AIF_VOID_TYPE(len) TypeToFDS(AIF_VOID, (len)) - #define AIF_POINTER_TYPE(base) TypeToFDS(AIF_POINTER, (base)) #define AIF_FUNCTION_TYPE(base) TypeToFDS(AIF_FUNCTION, (base)) ! #define AIF_ENUM_TYPE(sign) TypeToFDS(AIF_ENUM, (sign)) #define AIF_STRING_TYPE() TypeToFDS(AIF_STRING) - #define AIF_CHARACTER_TYPE() TypeToFDS(AIF_CHARACTER) - #define AIF_BOOLEAN_TYPE() TypeToFDS(AIF_BOOLEAN) #define AIF_STRUCT_TYPE() TypeToFDS(AIF_STRUCT) #define AIF_UNION_TYPE() TypeToFDS(AIF_UNION) ! #define AIF_RANGE_TYPE(lo, hi, base) TypeToFDS(AIF_RANGE, (lo), (hi), (base)) ! #define AIF_ARRAY_TYPE(range, base) TypeToFDS(AIF_ARRAY, (range), (base)) ! #define AIF_NAME_TYPE(name, base) TypeToFDS(AIF_ARRAY, (name), (base)) ! #define AIF_REGION_TYPE(name, base) TypeToFDS(AIF_ARRAY, (name), (base)) /* --- 234,253 ---- #include "fds.h" ! #define AIF_ARRAY_TYPE(range, base) TypeToFDS(AIF_ARRAY, (range), (base)) ! #define AIF_BOOLEAN_TYPE() TypeToFDS(AIF_BOOLEAN) ! #define AIF_CHARACTER_TYPE() TypeToFDS(AIF_CHARACTER) ! #define AIF_ENUM_TYPE(sign) TypeToFDS(AIF_ENUM, (sign)) #define AIF_FLOATING_TYPE(len) TypeToFDS(AIF_FLOATING, (len)) #define AIF_FUNCTION_TYPE(base) TypeToFDS(AIF_FUNCTION, (base)) ! #define AIF_INTEGER_TYPE(sign, len) TypeToFDS(AIF_INTEGER, (sign), (len)) ! #define AIF_NAME_TYPE(name, base) TypeToFDS(AIF_ARRAY, (name), (base)) ! #define AIF_POINTER_TYPE(base) TypeToFDS(AIF_POINTER, (base)) ! #define AIF_RANGE_TYPE(lo, hi, base) TypeToFDS(AIF_RANGE, (lo), (hi), (base)) ! #define AIF_REFERENCE_TYPE(ref) TypeToFDS(AIF_REFERENCE, (ref)) ! #define AIF_REGION_TYPE(name, base) TypeToFDS(AIF_ARRAY, (name), (base)) #define AIF_STRING_TYPE() TypeToFDS(AIF_STRING) #define AIF_STRUCT_TYPE() TypeToFDS(AIF_STRUCT) #define AIF_UNION_TYPE() TypeToFDS(AIF_UNION) ! #define AIF_VOID_TYPE(len) TypeToFDS(AIF_VOID, (len)) /* |
|
From: Greg W. <ja...@us...> - 2005-05-24 23:36:23
|
Update of /cvsroot/guardsoft/guard/src/client In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17605/client Modified Files: main.c Log Message: Fix prompt after source command for Mac OS X. ** This may break Mac OS X < 10.4 ** Index: main.c =================================================================== RCS file: /cvsroot/guardsoft/guard/src/client/main.c,v retrieving revision 1.32 retrieving revision 1.33 diff -C2 -d -r1.32 -r1.33 *** main.c 23 May 2005 22:29:32 -0000 1.32 --- main.c 24 May 2005 23:36:11 -0000 1.33 *************** *** 268,272 **** int imax = nproc - 1; ! a = ArrayToAIF(1, &imin, &imax, NULL, nproc * sizeof(invoke_proc_t *), TypeToFDS(AIF_VOID, sizeof(invoke_proc_t *))); } else --- 268,272 ---- int imax = nproc - 1; ! a = ArrayToAIF(1, &imin, &imax, NULL, nproc * sizeof(invoke_proc_t *), AIF_VOID_TYPE(sizeof(invoke_proc_t *))); } else *************** *** 604,610 **** Quit = 1; } - #else /* __APPLE __ */ - DisplayPrompt(CurrentStream); #endif /* __APPLE __ */ return; } --- 604,609 ---- Quit = 1; } #endif /* __APPLE __ */ + DisplayPrompt(CurrentStream); return; } |
|
From: Greg W. <ja...@us...> - 2005-05-24 23:34:41
|
Update of /cvsroot/guardsoft/guard/src/gram In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17463 Modified Files: map.c Log Message: fix array size Index: map.c =================================================================== RCS file: /cvsroot/guardsoft/guard/src/gram/map.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** map.c 18 May 2005 19:29:44 -0000 1.4 --- map.c 24 May 2005 23:34:31 -0000 1.5 *************** *** 345,349 **** max = m->m_ix->i_rank - 1; ! a = ArrayToAIF(1, &min, &max, (char *)m->m_ix->i_index, max - min + 1, TypeToFDS(AIF_INTEGER, sizeof(int))); val = NewVal(lval_none, VAL_AIF_TYPE, a); --- 345,352 ---- max = m->m_ix->i_rank - 1; ! a = ArrayToAIF(1, &min, &max, NULL, ! (max - min + 1) * sizeof(int), ! AIF_INTEGER_TYPE(1, sizeof(int))); ! val = NewVal(lval_none, VAL_AIF_TYPE, a); *************** *** 366,370 **** ** Add upper bounds array to actual args. */ ! a = ArrayToAIF(1, &min, &max, (char *)m->m_ix->i_max, max - min + 1, TypeToFDS(AIF_INTEGER, sizeof(int))); val = NewVal(lval_none, VAL_AIF_TYPE, a); --- 369,376 ---- ** Add upper bounds array to actual args. */ ! a = ArrayToAIF(1, &min, &max, NULL, ! (max - min + 1) * sizeof(int), ! AIF_INTEGER_TYPE(1, sizeof(int))); ! val = NewVal(lval_none, VAL_AIF_TYPE, a); *************** *** 387,391 **** ** Add lower bounds array to actual args. */ ! a = ArrayToAIF(1, &min, &max, (char *)m->m_ix->i_min, max - min + 1, TypeToFDS(AIF_INTEGER, sizeof(int))); val = NewVal(lval_none, VAL_AIF_TYPE, a); --- 393,399 ---- ** Add lower bounds array to actual args. */ ! a = ArrayToAIF(1, &min, &max, NULL, ! (max - min + 1) * sizeof(int), ! AIF_INTEGER_TYPE(1, sizeof(int))); val = NewVal(lval_none, VAL_AIF_TYPE, a); |
|
From: Greg W. <ja...@us...> - 2005-05-24 23:34:20
|
Update of /cvsroot/guardsoft/guard/src/gram In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17332 Modified Files: expr.c invoke.c Log Message: Use macro for AIF types. Index: invoke.c =================================================================== RCS file: /cvsroot/guardsoft/guard/src/gram/invoke.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** invoke.c 23 Jul 2002 16:05:59 -0000 1.3 --- invoke.c 24 May 2005 23:34:08 -0000 1.4 *************** *** 108,112 **** ** Now create the new array. */ ! base = TypeToFDS(AIF_VOID, sizeof(invoke_proc_t *)); size = FDSTypeSize(base) * ix->i_nel; na = ArrayToAIF(ix->i_rank, ix->i_min, ix->i_max, NULL, size, base); --- 108,112 ---- ** Now create the new array. */ ! base = AIF_VOID_TYPE(sizeof(invoke_proc_t *)); size = FDSTypeSize(base) * ix->i_nel; na = ArrayToAIF(ix->i_rank, ix->i_min, ix->i_max, NULL, size, base); Index: expr.c =================================================================== RCS file: /cvsroot/guardsoft/guard/src/gram/expr.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** expr.c 26 Mar 2003 00:24:02 -0000 1.3 --- expr.c 24 May 2005 23:34:08 -0000 1.4 *************** *** 880,884 **** } ! a = ArrayToAIF(slice->s_rank, slice->s_low, slice->s_high, NULL, 0, TypeToFDS(AIF_VOID, 0)); val = NewVal(lval_none, VAL_AIF_TYPE, a); } --- 880,884 ---- } ! a = ArrayToAIF(slice->s_rank, slice->s_low, slice->s_high, NULL, 0, AIF_VOID_TYPE(0)); val = NewVal(lval_none, VAL_AIF_TYPE, a); } |
|
From: Greg W. <ja...@us...> - 2005-05-24 00:44:58
|
Update of /cvsroot/guardsoft/libaif In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6130 Modified Files: aif.h Log Message: added macros for types Index: aif.h =================================================================== RCS file: /cvsroot/guardsoft/libaif/aif.h,v retrieving revision 1.46 retrieving revision 1.47 diff -C2 -d -r1.46 -r1.47 *** aif.h 22 May 2005 15:40:57 -0000 1.46 --- aif.h 24 May 2005 00:44:48 -0000 1.47 *************** *** 234,237 **** --- 234,254 ---- #include "fds.h" + #define AIF_INTEGER_TYPE(sign, len) TypeToFDS(AIF_INTEGER, (sign), (len)) + #define AIF_FLOATING_TYPE(len) TypeToFDS(AIF_FLOATING, (len)) + #define AIF_REFERENCE_TYPE(ref) TypeToFDS(AIF_REFERENCE, (ref)) + #define AIF_VOID_TYPE(len) TypeToFDS(AIF_VOID, (len)) + #define AIF_POINTER_TYPE(base) TypeToFDS(AIF_POINTER, (base)) + #define AIF_FUNCTION_TYPE(base) TypeToFDS(AIF_FUNCTION, (base)) + #define AIF_ENUM_TYPE(sign) TypeToFDS(AIF_ENUM, (sign)) + #define AIF_STRING_TYPE() TypeToFDS(AIF_STRING) + #define AIF_CHARACTER_TYPE() TypeToFDS(AIF_CHARACTER) + #define AIF_BOOLEAN_TYPE() TypeToFDS(AIF_BOOLEAN) + #define AIF_STRUCT_TYPE() TypeToFDS(AIF_STRUCT) + #define AIF_UNION_TYPE() TypeToFDS(AIF_UNION) + #define AIF_RANGE_TYPE(lo, hi, base) TypeToFDS(AIF_RANGE, (lo), (hi), (base)) + #define AIF_ARRAY_TYPE(range, base) TypeToFDS(AIF_ARRAY, (range), (base)) + #define AIF_NAME_TYPE(name, base) TypeToFDS(AIF_ARRAY, (name), (base)) + #define AIF_REGION_TYPE(name, base) TypeToFDS(AIF_ARRAY, (name), (base)) + /* ** AIF routines. |
|
From: Greg W. <ja...@us...> - 2005-05-23 22:29:41
|
Update of /cvsroot/guardsoft/guard/src/client In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9182 Modified Files: main.c Log Message: hack for apple weirness Index: main.c =================================================================== RCS file: /cvsroot/guardsoft/guard/src/client/main.c,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** main.c 7 Jan 2004 02:29:47 -0000 1.31 --- main.c 23 May 2005 22:29:32 -0000 1.32 *************** *** 738,741 **** --- 738,744 ---- Query(invoke_proc_t *p, int prom, char *s) { + #ifdef __APPLE__ + fd_set fin; + #endif /* __APPLE__*/ char buf[10]; *************** *** 748,754 **** fflush(stdout); if ( ! fgets(buf, 10, stdin) == NULL || *buf == 'n' --- 751,767 ---- fflush(stdout); + #ifdef __APPLE__ + /* + ** For some reason stdin gets set to O_NONBLOCK so + ** we must wait on the file descriptor ?!?! + */ + FD_ZERO(&fin); + FD_SET(0, &fin); + select(1, &fin, NULL, NULL, NULL); + #endif /* __APPLE__*/ + if ( ! fgets(buf, 10, stdin) == NULL || *buf == 'n' |
|
From: Greg W. <ja...@us...> - 2005-05-23 22:28:32
|
Update of /cvsroot/guardsoft/guard/src/dbgsrv In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8837 Modified Files: dbgsrv_gdbmi.c Log Message: first attempt at converting to AIF types Index: dbgsrv_gdbmi.c =================================================================== RCS file: /cvsroot/guardsoft/guard/src/dbgsrv/dbgsrv_gdbmi.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** dbgsrv_gdbmi.c 13 May 2005 17:56:34 -0000 1.5 --- dbgsrv_gdbmi.c 23 May 2005 22:28:11 -0000 1.6 *************** *** 78,82 **** extern int Shutdown; ! AIF * GDBMIBuildAIFVar(char *, char *); dbgevent_t * SetAndCheckBreak(char *); dbgevent_t * ShowBreak(int); --- 78,82 ---- extern int Shutdown; ! dbgevent_t * GDBMIBuildAIFVar(char *, char *, char *); dbgevent_t * SetAndCheckBreak(char *); dbgevent_t * ShowBreak(int); *************** *** 855,858 **** --- 855,865 ---- } + int + gmi_dump_binary_value(mi_h *h, char *exp, char *file) + { + mi_send(h, "dump binary value %s %s\n", file, exp); + return mi_res_simple_done(h); + } + /* ** Evaluate the expression exp. *************** *** 861,867 **** DbgGDBMIEvalExpr(char *exp) { char * type; ! char * val; ! #ifdef GDB_WITH_AIF mi_aif * aif; #endif /* GDB_WITH_AIF */ --- 868,875 ---- DbgGDBMIEvalExpr(char *exp) { + #ifndef GDB_WITH_AIF char * type; ! char tmp[18]; ! #else /* GDB_WITH_AIF */ mi_aif * aif; #endif /* GDB_WITH_AIF */ *************** *** 871,875 **** #ifdef GDB_WITH_AIF ! aif = gmi_aif_evaluate_expression(exp); if ( aif == NULL ) --- 879,883 ---- #ifdef GDB_WITH_AIF ! aif = gmi_aif_evaluate_expression(MIHandle, exp); if ( aif == NULL ) *************** *** 890,899 **** type = strdup(e->ev_type); ! FreeEvent(e); ! val = gmi_data_evaluate_expression(MIHandle, exp); ! if ( val == NULL ) { EVENT_ERROR(e, DBGERR_DEBUGGER, (char *)mi_get_error_str()); --- 898,913 ---- type = strdup(e->ev_type); ! FreeEvent(e); ! strcpy(tmp, "/tmp/guard.XXXXXX"); ! if ( mktemp(tmp) == NULL ) ! { ! EVENT_ERROR(e, DBGERR_DEBUGGER, (char *)strerror(errno)); ! return e; ! } ! ! if ( !gmi_dump_binary_value(MIHandle, exp, tmp) ) { EVENT_ERROR(e, DBGERR_DEBUGGER, (char *)mi_get_error_str()); *************** *** 901,909 **** } ! e = NewEvent(DBGEV_DATA); ! e->ev_data = GDBMIBuildAIFVar(type, val); (void)free(type); ! (void)free(val); #endif /* GDB_WITH_AIF */ --- 915,922 ---- } ! e = GDBMIBuildAIFVar(exp, type, tmp); (void)free(type); ! (void)unlink(tmp); #endif /* GDB_WITH_AIF */ *************** *** 940,943 **** --- 953,1177 ---- } + struct str_type + { + int blen; + int slen; + int end; + char * buf; + }; + typedef struct str_type * str_ptr; + + #define STRSIZE 100 + + str_ptr str_init(void); + void str_add(str_ptr, char *, ...); + void str_free(str_ptr); + char * str_val(str_ptr); + str_ptr str_dup(char *); + + struct simple_type { + char * type_c; + char * type_fds; + int type_len; + }; + + struct simple_type simple_types[] = { + { "char", "c", 0 }, + { "unsigned char", "c", 0 }, + { "short", "is%d", sizeof(short) }, + { "unsigned short", "iu%d", sizeof(unsigned short) }, + { "int", "is%d", sizeof(int) }, + { "unsigned int", "iu%d", sizeof(unsigned int) }, + { "long", "is%d", sizeof(long) }, + { "unsigned long", "iu%d", sizeof(unsigned long) }, + { "long long", "is%d", sizeof(long long) }, + { "unsigned long long", "iu%d", sizeof(unsigned long long) }, + { "float", "f%d", sizeof(float) }, + { "double", "f%d", sizeof(double) }, + { NULL, NULL } + }; + + str_ptr + str_init(void) + { + str_ptr s; + + s = (str_ptr)Alloc(sizeof(struct str_type)); + s->buf = (char *)Alloc(STRSIZE); + s->blen = STRSIZE; + s->slen = 0; + *(s->buf) = '\0'; + + return s; + } + + void + str_add(str_ptr s1, char *s2, ...) + { + va_list ap; + int l2; + char * buf; + + va_start(ap, s2); + vasprintf(&buf, s2, ap); + va_end(ap); + + l2 = strlen(buf); + + if (s1->slen + l2 >= s1->blen) + { + s1->blen += MAX(STRSIZE, l2); + s1->buf = (char *) Resize (s1->buf, s1->blen); + } + + memcpy(&(s1->buf[s1->slen]), buf, l2); + s1->slen += l2; + s1->buf[s1->slen] = '\0'; + + free(buf); + } + + void + str_free(str_ptr s) + { + free(s->buf); + free(s); + } + + char * + str_val(str_ptr s) + { + return s->buf; + } + + str_ptr + str_dup(char *s1) + { + str_ptr s = str_init(); + str_add(s, s1); + return s; + } + + int + SimpleTypeToFDS(char *type, str_ptr fds) + { + char * p; + char * last = &type[strlen(type) - 1]; + struct simple_type * s; + + if ( strcmp(type, "<text variable, no debug info>") == 0 ) + return -1; + + switch ( *last ) + { + case '*': /* pointer */ + str_add(fds, "^"); + + /* + ** get rid of '*' + */ + for ( p = last ; p != type && *(p-1) == ' ' ; p-- ) + ; + + *p = '\0'; + break; + + case ')': /* function */ + str_add(fds, "&"); + + /* + ** get rid of '(..)' for now + */ + if ( (p = strrchr(type, '(')) != NULL ) + { + for ( ; p != type && *(p-1) == ' ' ; p-- ) + ; + + *p = '\0'; + } + + str_add(fds, "/"); + break; + + } + + for (s = simple_types ; s->type_c != NULL ; s++ ) + { + if ( strcmp(type, s->type_c) == 0 ) + { + str_add(fds, s->type_fds, s->type_len); + break; + } + } + + return 0; + } + + dbgevent_t * + ConvertType(mi_gvar *gvar, str_ptr fds) + { + dbgevent_t * e; + + if ( gvar->numchild == 0 ) + { + if ( !gmi_var_info_type(MIHandle, gvar) ) + { + EVENT_ERROR(e, DBGERR_DEBUGGER, (char *)mi_get_error_str()); + return e; + } + + if ( SimpleTypeToFDS(gvar->type, fds) < 0 ) + { + EVENT_ERROR(e, DBGERR_NOSYMS, ""); + return e; + } + + } + else + { + + if ( !gmi_var_list_children(MIHandle, gvar) ) + { + EVENT_ERROR(e, DBGERR_DEBUGGER, (char *)mi_get_error_str()); + return e; + } + + switch ( gvar->type[strlen(gvar->type) - 1] ) + { + case ']': /* array */ + str_add(fds, "[r0..%dis4]", gvar->numchild-1); + + /* + ** Just look at first child to determine type + */ + if ( (e = ConvertType(gvar->child, fds)) != NULL ) + return e; + + break; + #if 0 + case '}': /* struct */ + str_add(fds, "{|"); + num = gvar->numchild; + gvar = gvar->child; + for ( i = 0 ; i < num ; i++ ) + { + if ( (e = ConvertType(gvar, fds)) != NULL ) + return e; + gvar = gvar->next; + } + add_to_str(fds, ";;;}"); + break; + #endif + default: + EVENT_ERROR(e, DBGERR_DEBUGGER, "type not supported (yet)"); + return e; + break; + } + + } + + return NULL; + } + /* ** Find type of variable. *************** *** 951,954 **** --- 1185,1189 ---- #else /* GDB_WITH_AIF */ mi_gvar * gvar; + str_ptr fds; #endif /* GDB_WITH_AIF */ *************** *** 969,980 **** gvar = gmi_var_create(MIHandle, -1, var); ! if ( gvar == NULL || !gmi_var_info_type(MIHandle, gvar) ) { ! EVENT_ERROR(e, DBGERR_DEBUGGER, (char *)mi_get_error_str()); return e; } e = NewEvent(DBGEV_TYPE); ! e->ev_type = strdup(gvar->type); mi_free_gvar(gvar); --- 1204,1222 ---- gvar = gmi_var_create(MIHandle, -1, var); ! if ( gvar == NULL ) { ! EVENT_ERROR(e, DBGERR_NOSYM, var); return e; } + fds = str_init(); + + if ( (e = ConvertType(gvar, fds)) != NULL ) + return e; + e = NewEvent(DBGEV_TYPE); ! e->ev_type = strdup(fds->buf); ! ! str_free(fds); mi_free_gvar(gvar); *************** *** 1610,1622 **** #endif ! AIF * ! GDBMIBuildAIFVar(char *type, char *data) { ! if ( strcmp(type, "int") == 0 ) { ! return IntToAIF(atoi(data)); } ! else ! return StringToAIF("no implemented for this type (yet)"); } #endif /* LIBMIGDB */ --- 1852,1928 ---- #endif ! char tohex[] = {'0', '1', '2', '3', '4', '5', '6', '7', ! '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; ! ! dbgevent_t * ! GDBMIBuildAIFVar(char *var, char *type, char *file) { ! int n; ! int fd; ! AIF * aif; ! char * data; ! char * ap; ! char * bp; ! char buf[BUFSIZ]; ! struct stat sb; ! dbgevent_t * e; ! ! if ( stat(file, &sb) < 0 ) { ! EVENT_ERROR(e, DBGERR_DEBUGGER, (char *)strerror(errno)); ! return e; } ! ! if ( FDSType(type) == AIF_FUNCTION ) ! { ! /* ! ** Data is function name ! */ ! ap = data = Alloc(strlen(var) * 2 + 1); ! ! for ( bp = var ; *bp != '\0' ; bp++ ) ! { ! *ap++ = tohex[(*bp >> 4) & 0xf]; ! *ap++ = tohex[*bp & 0xf]; ! } ! ! *ap++ = '\0'; ! } ! else ! { ! if ( (fd = open(file, O_RDONLY)) < 0 ) ! { ! EVENT_ERROR(e, DBGERR_DEBUGGER, (char *)strerror(errno)); ! return e; ! } ! ! ap = data = Alloc(sb.st_size * 2 + 1); ! ! while ((n = read(fd, buf, BUFSIZ)) > 0) ! { ! bp = buf; ! ! while ( n-- > 0 ) ! { ! *ap++ = tohex[(*bp >> 4) & 0xf]; ! *ap++ = tohex[*bp++ & 0xf]; ! } ! } ! ! *ap++ = '\0'; ! ! (void)close(fd); ! } ! ! if ( (aif = AsciiToAIF(type, data)) == NULL ) ! { ! EVENT_ERROR(e, DBGERR_DEBUGGER, AIFErrorStr()); ! return e; ! } ! ! e = NewEvent(DBGEV_DATA); ! e->ev_data = aif; ! ! return e; } #endif /* LIBMIGDB */ |
|
From: Greg W. <ja...@us...> - 2005-05-23 22:27:35
|
Update of /cvsroot/guardsoft/guard/src/dbgsrv In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8695 Modified Files: guard_starter.c Log Message: remove bad argument Index: guard_starter.c =================================================================== RCS file: /cvsroot/guardsoft/guard/src/dbgsrv/guard_starter.c,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** guard_starter.c 29 Apr 2005 18:11:05 -0000 1.13 --- guard_starter.c 23 May 2005 22:27:26 -0000 1.14 *************** *** 1192,1196 **** "mpirun", "-np", s->nproc, - "-s", s->dbgsrv, "-h", s->cbhost, --- 1192,1195 ---- |
|
From: Greg W. <ja...@us...> - 2005-05-23 22:27:17
|
Update of /cvsroot/guardsoft/guard/src/dbgsrv In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8595 Modified Files: dbgsrv.c Log Message: new env variable Index: dbgsrv.c =================================================================== RCS file: /cvsroot/guardsoft/guard/src/dbgsrv/dbgsrv.c,v retrieving revision 1.44 retrieving revision 1.45 diff -C2 -d -r1.44 -r1.45 *** dbgsrv.c 1 May 2005 16:27:02 -0000 1.44 --- dbgsrv.c 23 May 2005 22:27:06 -0000 1.45 *************** *** 359,363 **** if ( ! (ps = getenv("OMPI_MCA_pcmclient_env_procid")) == NULL || sscanf(ps, "%d", &procnum) != 1 --- 359,363 ---- if ( ! (ps = getenv("OMPI_MCA_ns_nds_vpid")) == NULL || sscanf(ps, "%d", &procnum) != 1 |
|
From: Greg W. <ja...@us...> - 2005-05-22 15:41:09
|
Update of /cvsroot/guardsoft/libaif In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5990 Modified Files: INTERNAL aif.h aifint.h conv.c fds.c print.c testaif.c Log Message: Convert function type to string. Printing of function and void types. Index: fds.c =================================================================== RCS file: /cvsroot/guardsoft/libaif/fds.c,v retrieving revision 1.41 retrieving revision 1.42 diff -C2 -d -r1.41 -r1.42 *** fds.c 9 Apr 2004 22:23:28 -0000 1.41 --- fds.c 22 May 2005 15:40:57 -0000 1.42 *************** *** 2416,2419 **** --- 2416,2425 ---- return; + case AIF_FUNCTION: + while ( **data != '\0' ) + (*data)++; + (*data)++; /* past null */ + return; + default: SetAIFError(AIFERR_TYPE, NULL); Index: INTERNAL =================================================================== RCS file: /cvsroot/guardsoft/libaif/INTERNAL,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** INTERNAL 21 Mar 2002 03:19:41 -0000 1.3 --- INTERNAL 22 May 2005 15:40:57 -0000 1.4 *************** *** 84,89 **** - a range from L to U, where L and U are integer types specified by T ! &: function: &T ! - a function that returns type T. Data consists of a string containing the name of the function --- 84,90 ---- - a range from L to U, where L and U are integer types specified by T ! &: function: &A1,A2,.../T ! - a function that returns type T and that has arguments of type ! A1, A2, ... Data consists of a null-terminated string containing the name of the function Index: aifint.h =================================================================== RCS file: /cvsroot/guardsoft/libaif/aifint.h,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** aifint.h 5 Oct 2003 15:01:56 -0000 1.18 --- aifint.h 22 May 2005 15:40:57 -0000 1.19 *************** *** 58,61 **** --- 58,62 ---- extern int _aif_float_to_aif_int(char **, char *, int); extern int _aif_float_to_str(int, char **, char **); + extern int _aif_function_to_str(int, char **, char **); extern int _aif_int_is_zero(char *, int); extern int _aif_int_to_aif_float(char **, char *, int); *************** *** 78,81 **** --- 79,83 ---- extern int _aif_print_enum(FILE *, int, char **, char **); extern int _aif_print_float(FILE *, int, char **, char **); + extern int _aif_print_function(FILE *, int, char **, char **); extern int _aif_print_int(FILE *, int, char **, char **); extern int _aif_print_name(FILE *, int, char **, char **); *************** *** 86,89 **** --- 88,92 ---- extern int _aif_print_struct(FILE *, int, char **, char **); extern int _aif_print_union(FILE *, int, char **, char **); + extern int _aif_print_void(FILE *, int, char **, char **); extern int _aif_reference_to_str(int, char **, char **); extern int _aif_region_to_str(int, char **, char **); *************** *** 101,104 **** --- 104,108 ---- extern int _aif_unary_op_int(aifop, char **, char *, int); extern int _aif_union_to_str(int, char **, char **); + extern int _aif_void_to_str(int, char **, char **); extern int _char_to_aif(char **, char); extern int _doublest_to_aif(char **, int, AIFDOUBLEST); *************** *** 127,130 **** --- 131,135 ---- extern void _str_init(void); extern void _str_cat(char *); + extern void _str_add(char); extern char * _str_get(void); extern void _ptrname_to_int(char *, int *); Index: print.c =================================================================== RCS file: /cvsroot/guardsoft/libaif/print.c,v retrieving revision 1.24 retrieving revision 1.25 diff -C2 -d -r1.24 -r1.25 *** print.c 22 Jul 2002 22:29:47 -0000 1.24 --- print.c 22 May 2005 15:40:57 -0000 1.25 *************** *** 107,112 **** return _aif_print_union(fp, depth, fds, data); - case AIF_FUNCTION: case AIF_VOID: default: SetAIFError(AIFERR_TYPE, NULL); --- 107,116 ---- return _aif_print_union(fp, depth, fds, data); case AIF_VOID: + return _aif_print_void(fp, depth, fds, data); + + case AIF_FUNCTION: + return _aif_print_function(fp, depth, fds, data); + default: SetAIFError(AIFERR_TYPE, NULL); *************** *** 365,368 **** --- 369,410 ---- int + _aif_print_void(FILE *fp, int depth, char **fds, char **data) + { + char * str; + + _str_init(); + + if ( _aif_void_to_str(depth, fds, data) < 0 ) + return -1; + + str = _str_get(); + + fprintf(fp, "%s", str); + + _aif_free(str); + + return 0; + } + + int + _aif_print_function(FILE *fp, int depth, char **fds, char **data) + { + char * str; + + _str_init(); + + if ( _aif_function_to_str(depth, fds, data) < 0 ) + return -1; + + str = _str_get(); + + fprintf(fp, "%s", str); + + _aif_free(str); + + return 0; + } + + int AIFPrintBool(FILE *fp, int depth, AIF *a) { *************** *** 599,602 **** --- 641,680 ---- int + AIFPrintVoid(FILE *fp, int depth, AIF *a) + { + char * fmt; + char * data; + + if ( a == (AIF *)NULL ) + { + SetAIFError(AIFERR_BADARG, NULL); + return -1; + } + + fmt = AIF_FORMAT(a); + data = AIF_DATA(a); + + return _aif_print_void(fp, depth, &fmt, &data); + } + + int + AIFPrintFunction(FILE *fp, int depth, AIF *a) + { + char * fmt; + char * data; + + if ( a == (AIF *)NULL ) + { + SetAIFError(AIFERR_BADARG, NULL); + return -1; + } + + fmt = AIF_FORMAT(a); + data = AIF_DATA(a); + + return _aif_print_function(fp, depth, &fmt, &data); + } + + int AIFPrintArrayIndex(FILE *fp, AIFIndex *ix) { Index: testaif.c =================================================================== RCS file: /cvsroot/guardsoft/libaif/testaif.c,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** testaif.c 31 Jan 2004 16:24:28 -0000 1.17 --- testaif.c 22 May 2005 15:40:57 -0000 1.18 *************** *** 408,411 **** --- 408,415 ---- _testAscii("subtest18", "[r0..2is4][r0..1is4]is4", "000000060000000700000002000000030000000400000005", "array of two lists of pointers", flag); + _testAscii("subtest19", "v4", "00000006", "void", flag); + + _testAscii("subtest20", "&is4,^^c/is4", "6D61696E00", "function with args (int, char **) returning int", flag); + fprintf(stdout, "\n"); Index: conv.c =================================================================== RCS file: /cvsroot/guardsoft/libaif/conv.c,v retrieving revision 1.52 retrieving revision 1.53 diff -C2 -d -r1.52 -r1.53 *** conv.c 9 Apr 2004 22:23:28 -0000 1.52 --- conv.c 22 May 2005 15:40:57 -0000 1.53 *************** *** 1494,1497 **** --- 1494,1512 ---- } + void + _str_add(char ch) + { + while ( _str_pos + 2 > _str_buf + _str_buf_len ) + { + int offset = _str_pos - _str_buf; + _str_buf_len += BUFSIZ; + _str_buf = _aif_resize(_str_buf, _str_buf_len); + _str_pos = _str_buf + offset; + } + + *_str_pos++ = ch; + *_str_pos = '\0'; + } + char * _str_get(void) *************** *** 2142,2145 **** --- 2157,2184 ---- } + int + AIFVoidToStr(char **str, int depth, AIF *a) + { + char * fmt; + char * data; + + if ( a == (AIF *)NULL ) + { + SetAIFError(AIFERR_BADARG, NULL); + return -1; + } + + fmt = AIF_FORMAT(a); + data = AIF_DATA(a); + + _str_init(); + + if ( _aif_void_to_str(depth, &fmt, &data) < 0 ) + return -1; + + *str = _str_get(); + + return 0; + } int *************** *** 2228,2231 **** --- 2267,2330 ---- int + _aif_function_to_str(int depth, char **fds, char **data) + { + char * p; + char end[2] = {FDS_FUNCTION_ARG_END, 0}; + + (*fds)++; /* past "&" */ + + p = _fds_skipto(*fds, end); + + _str_cat(++p); + _str_cat(" "); + _str_cat(*data); + _str_cat("("); + + while ( **fds != FDS_FUNCTION_ARG_END ) + { + if ( **fds == FDS_UNION_FIELD_SEP ) + _str_cat(", "); + else + _str_add(**fds); + + (*fds)++; + } + + _str_cat(")"); + + (*fds)++; /* past arg end */ + + _fds_advance(fds); + _fds_skip_data(fds, data); + + return 0; + } + + int + AIFFunctionToStr(char **str, int depth, AIF *a) + { + char * fmt; + char * data; + + if ( a == (AIF *)NULL ) + { + SetAIFError(AIFERR_BADARG, NULL); + return -1; + } + + fmt = AIF_FORMAT(a); + data = AIF_DATA(a); + + _str_init(); + + if ( _aif_function_to_str(depth, &fmt, &data) < 0 ) + return -1; + + *str = _str_get(); + + return 0; + } + + int _aif_enum_to_str(int depth, char **fds, char **data) { *************** *** 2359,2365 **** --- 2458,2468 ---- case AIF_UNION: return _aif_union_to_str(depth, fds, data); + case AIF_VOID: return _aif_void_to_str(depth, fds, data); + case AIF_FUNCTION: + return _aif_function_to_str(depth, fds, data); + default: SetAIFError(AIFERR_TYPE, NULL); Index: aif.h =================================================================== RCS file: /cvsroot/guardsoft/libaif/aif.h,v retrieving revision 1.45 retrieving revision 1.46 diff -C2 -d -r1.45 -r1.46 *** aif.h 5 Oct 2003 15:01:56 -0000 1.45 --- aif.h 22 May 2005 15:40:57 -0000 1.46 *************** *** 281,284 **** --- 281,285 ---- extern int AIFFieldType(AIF *, char *); extern int AIFFloatToStr(char **, int, AIF *); + extern int AIFFunctionToStr(char **, int, AIF *); extern void AIFFree(AIF *); extern AIF * AIFGetEnum(AIF *); *************** *** 306,309 **** --- 307,311 ---- extern int AIFPrintEnum(FILE *, int, AIF *); extern int AIFPrintFloat(FILE *, int, AIF *); + extern int AIFPrintFunction(FILE *, int, AIF *); extern int AIFPrintInt(FILE *, int, AIF *); extern int AIFPrintName(FILE *, int, AIF *); *************** *** 314,317 **** --- 316,320 ---- extern int AIFPrintStruct(FILE *, int, AIF *); extern int AIFPrintUnion(FILE *, int, AIF *); + extern int AIFPrintVoid(FILE *, int, AIF *); extern int AIFPrintArrayIndex(FILE *, AIFIndex *); extern int AIFReferenceToStr(char **, int, AIF *); *************** *** 339,342 **** --- 342,346 ---- extern long AIFTypeSize(AIF *); extern int AIFUnionToStr(char **, int, AIF *); + extern int AIFVoidToStr(char **, int, AIF *); extern int AIFWriteSet(AIFFILE *, AIF *, char *); extern AIF * ArrayToAIF(int, int *, int *, char *, int, char *); |
|
From: Greg W. <ja...@us...> - 2005-05-18 19:29:55
|
Update of /cvsroot/guardsoft/guard/src/gram In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8918 Modified Files: map.c Log Message: better error message for ApplyMap() Index: map.c =================================================================== RCS file: /cvsroot/guardsoft/guard/src/gram/map.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** map.c 26 Mar 2003 00:24:02 -0000 1.3 --- map.c 18 May 2005 19:29:44 -0000 1.4 *************** *** 162,167 **** AIFIndex * pix=NULL; ! if ( FDSType(type) != AIF_ARRAY || nd <= 0 ) return (AIF *)NULL; res = MakeAIF(strdup(type), NULL); --- 162,176 ---- AIFIndex * pix=NULL; ! if ( FDSType(type) != AIF_ARRAY ) ! { ! SetError("Result type of map is not an array"); return (AIF *)NULL; + } + + if ( nd <= 0 ) + { + SetError("Bad number of processes: %d", nd); + return (AIF *)NULL; + } res = MakeAIF(strdup(type), NULL); |
|
From: Greg W. <ja...@us...> - 2005-05-13 17:56:45
|
Update of /cvsroot/guardsoft/guard/src/dbgsrv In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32327 Modified Files: dbgsrv_gdbmi.c Log Message: Change to gmi_look_for_free_pty() Prevent crash for unimplemented types. Index: dbgsrv_gdbmi.c =================================================================== RCS file: /cvsroot/guardsoft/guard/src/dbgsrv/dbgsrv_gdbmi.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** dbgsrv_gdbmi.c 2 May 2005 19:31:18 -0000 1.4 --- dbgsrv_gdbmi.c 13 May 2005 17:56:34 -0000 1.5 *************** *** 389,393 **** { dbgevent_t * e; ! mi_aux_term * vt; MIHandle = mi_connect_local(); --- 389,393 ---- { dbgevent_t * e; ! mi_pty * pty; MIHandle = mi_connect_local(); *************** *** 406,412 **** #endif /* DEBUG */ ! vt = gmi_look_for_free_vt(); ! if ( !vt || !gmi_target_terminal(MIHandle, vt->tty) ) { fprintf(stderr, "Could not select target terminal\n"); --- 406,412 ---- #endif /* DEBUG */ ! pty = gmi_look_for_free_pty(); ! if ( !pty || !gmi_target_terminal(MIHandle, pty->slave) ) { fprintf(stderr, "Could not select target terminal\n"); *************** *** 414,418 **** } else ! *tty = vt->master; *rd = MIHandle->from_gdb[0]; --- 414,418 ---- } else ! *tty = pty->master; *rd = MIHandle->from_gdb[0]; *************** *** 1618,1622 **** } else ! return NULL; } #endif /* LIBMIGDB */ --- 1618,1622 ---- } else ! return StringToAIF("no implemented for this type (yet)"); } #endif /* LIBMIGDB */ |
|
From: Greg W. <ja...@us...> - 2005-05-02 19:31:33
|
Update of /cvsroot/guardsoft/guard/src/dbgsrv In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17399 Modified Files: dbgsrv_gdbmi.c Log Message: Send source line when necessary. This should be depreciated and replaced with source management in the client. Index: dbgsrv_gdbmi.c =================================================================== RCS file: /cvsroot/guardsoft/guard/src/dbgsrv/dbgsrv_gdbmi.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** dbgsrv_gdbmi.c 1 May 2005 23:51:46 -0000 1.3 --- dbgsrv_gdbmi.c 2 May 2005 19:31:18 -0000 1.4 *************** *** 224,227 **** --- 224,266 ---- } + char * + LookupLine(char *file, int line) + { + size_t len; + char * lp; + char * ret; + FILE * fp; + + if ( file == NULL ) + return NULL; + + if ( (fp = fopen(file, "r")) == NULL ) + return NULL; + + while ( line-- > 0 ) + lp = fgetln(fp, &len); + + if ( lp == NULL ) + { + fclose(fp); + return NULL; + } + + /* + ** Remove newline if it exists. + */ + if ( lp[len-1] == '\n' ) + len--; + + ret = (char *)Alloc(sizeof(char *) * len + 1); + + memcpy(ret, lp, len); + ret[len] = '\0'; + + fclose(fp); + + return ret; + } + dbgevent_t * AsyncStep(void *arg) *************** *** 237,242 **** e = NewEvent(DBGEV_STEP); e->ev_step_lno = CurrFrame->frame_loc.loc_line; - e->ev_step_line = NULL; e->ev_step_frame = DupFrame(CurrFrame); return e; --- 276,281 ---- e = NewEvent(DBGEV_STEP); e->ev_step_lno = CurrFrame->frame_loc.loc_line; e->ev_step_frame = DupFrame(CurrFrame); + e->ev_step_line = LookupLine(CurrFrame->frame_loc.loc_file, CurrFrame->frame_loc.loc_line); return e; *************** *** 258,263 **** e = NewEvent(DBGEV_SIGNAL); e->ev_sig_type = sig; - e->ev_sig_line = NULL; e->ev_sig_frame = DupFrame(CurrFrame); return e; --- 297,302 ---- e = NewEvent(DBGEV_SIGNAL); e->ev_sig_type = sig; e->ev_sig_frame = DupFrame(CurrFrame); + e->ev_sig_line = LookupLine(CurrFrame->frame_loc.loc_file, CurrFrame->frame_loc.loc_line); return e; *************** *** 523,527 **** bp->bp_loc.loc_line = bpt->line; ! bp->bp_stmt = NULL; /* todo */ /* --- 562,566 ---- bp->bp_loc.loc_line = bpt->line; ! bp->bp_stmt = LookupLine(bpt->file, bpt->line); /* *************** *** 586,591 **** ** List source code. ** ! ** XXX a better way to do this might be to create a socket ! ** to the client and just ship the stuff across. */ dbgevent_t * --- 625,629 ---- ** List source code. ** ! ** This function should be depreciated. */ dbgevent_t * |
|
From: Greg W. <ja...@us...> - 2005-05-02 19:07:54
|
Update of /cvsroot/guardsoft/guard/src/dbgsrv In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11881 Modified Files: cbclnt_soc.c Log Message: Use fprintf. Index: cbclnt_soc.c =================================================================== RCS file: /cvsroot/guardsoft/guard/src/dbgsrv/cbclnt_soc.c,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** cbclnt_soc.c 23 Jul 2002 15:59:00 -0000 1.13 --- cbclnt_soc.c 2 May 2005 19:07:43 -0000 1.14 *************** *** 179,183 **** break; } - if ( cb != (cb_t *)NULL ) { --- 179,182 ---- *************** *** 218,222 **** else { ! printf("unknown command: %s\n",command); } } --- 217,221 ---- else { ! fprintf(stderr, "unknown command: %s\n",command); } } |
|
From: Greg W. <ja...@us...> - 2005-05-02 00:06:30
|
Update of /cvsroot/guardsoft/guard/src/dbgsrv In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19507 Modified Files: dbgsrv_idb.c Log Message: Support new backend interface. NOTE: THIS HAS NOT BEEN TESTED. Index: dbgsrv_idb.c =================================================================== RCS file: /cvsroot/guardsoft/guard/src/dbgsrv/dbgsrv_idb.c,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** dbgsrv_idb.c 7 Feb 2004 18:48:17 -0000 1.1 --- dbgsrv_idb.c 2 May 2005 00:06:21 -0000 1.2 *************** *** 80,100 **** } ! dbgstat IDBStatus; ! int IDBPid = 0; ! int IDBDBGIn; ! int IDBDBGOut; ! int MPArch; ! int IDBSynced = 0; ! int ExtIDB = 0; ! char * IDBInit = NULL; ! char * IDBRunArgs = NULL; ! char * IDBRunStdIn = NULL; ! char * IDBRunStdOut = NULL; ! char * IDBRedirStr = NULL; ! char * IDBCurrentDataType = NULL; ! int IDBCurrLine = 0; ! dbgbp_t * IDBCurrBP = (dbgbp_t *)NULL; ! list_t * IDBBP; ! char * IDBProgMain; extern int Shutdown; --- 80,100 ---- } ! static dbgstat IDBStatus; ! static int IDBPid = 0; ! static int IDBDBGIn; ! static int IDBDBGOut; ! static int MPArch; ! static int IDBSynced = 0; ! static char * IDBInit = NULL; ! static char * IDBRunArgs = NULL; ! static char * IDBRedirStr = NULL; ! static char * IDBCurrentDataType = NULL; ! static int IDBCurrLine = 0; ! static dbgbp_t * IDBCurrBP = (dbgbp_t *)NULL; ! static list_t * IDBBP; ! static char * IDBProgMain; ! #ifdef sun ! static char * IODevName = NULL; ! #endif /* sun */ extern int Shutdown; *************** *** 157,160 **** --- 157,164 ---- dbgbackend_sw DbgBackendIDB = { + InitIDB, + IDBFillBuffer, + IDBBufferReady, + IDBProgIOHook, DbgIDBSetLineBreak, DbgIDBSetFuncBreak, *************** *** 179,184 **** DbgIDBAttach, DbgIDBIDBFinish, - IDBFillBuffer, - IDBBufferReady, IDBDbgReadyForCmd, IDBDbgOK, --- 183,186 ---- *************** *** 1465,1478 **** signal(SIGPIPE, IDBFinish); - if ( args != NULL ) - { - e = DbgIDBSetArgs(args); - - if ( e->ev_event != DBGEV_OK ) - return e; - - FreeEvent(e); - } - if ( (IDBInit = IDBSetupDbg(arch, slave)) == NULL ) { --- 1467,1470 ---- *************** *** 1546,1551 **** } dbgevent_t * ! DbgIDBInvoke(char *host, int cb, char *proto, char *prog, char *args, char **env, int arch, char *slave, int *dbgfd) { dbgevent_t * e; --- 1538,1605 ---- } + + extern int AllocPty(int *, char **, char**); + extern int AllocFifo(int *, char **, char**); + dbgevent_t * ! InitIDB(int *dfd, int *iofd) ! { ! char * master; ! char * slave; ! dbgevent_t * e; ! ! /* ! ** Try allocating a pty for backend i/o first. If this fails then ! ** we use a fifo. Note that using a fifo restricts us to output only. ! */ ! if ! ( ! AllocPty(iofd, &master, &slave) < 0 ! && ! AllocFifo(iofd, &master, &slave) < 0 ! ) ! *iofd = -1; ! ! /* TODO Check if env is really needed */ ! if ( (e = StartDebugger(NULL, slave)) != (dbgevent_t *)NULL ) ! return e; ! ! *dfd = DBGIn; ! ! #ifdef sun ! IODevName = master; ! #endif /* sun */ ! ! return (dbgevent_t *)NULL;; ! } ! ! #ifdef sun ! /* ! ** It appears (in Solaris 2.5) that if the slave ! ** closes its pty before the master has time to read ! ** the current data, then we get EIO's until the ! ** slave opens the pty again. The only way to stop this ! ** seems to be to close and reopen the master side. ! */ ! int ! IDBProgIOHook(int fd) ! { ! if ( IODevName == NULL ) ! return -1; ! ! (void)close(fd); ! ! if ( (fd = open(IODevName, O_RDWR, 0600)) < 0 ) ! { ! perror(IODevName); ! return -1; ! } ! ! return fd; ! } ! #endif /* sun */ ! ! dbgevent_t * ! DbgIDBInvoke(char *host, int cb, char *proto, char *prog, char *args, char **env, int arch) { dbgevent_t * e; *************** *** 1553,1558 **** DPRINT(fprintf(stderr, "*** DbgInvoke\n")); ! if ( (e = IDBStartDebugger(prog, args, env, arch, slave)) != (dbgevent_t *)NULL ) ! return e; switch ( arch ) --- 1607,1611 ---- DPRINT(fprintf(stderr, "*** DbgInvoke\n")); ! MPArch = arch; switch ( arch ) *************** *** 1578,1582 **** */ dbgevent_t * ! DbgIDBAttach(int pid, char *prog, char *args, char **env, int arch, char *slave, int *dbgfd) { dbgevent_t * e; --- 1631,1635 ---- */ dbgevent_t * ! DbgIDBAttach(int pid, char *prog, char *args, char **env, int arch) { dbgevent_t * e; *************** *** 1584,1589 **** DPRINT(fprintf(stderr, "*** DbgAttach\n")); ! if ( (e = IDBStartDebugger(prog, args, env, arch, slave)) != (dbgevent_t *)NULL ) ! return e; switch ( arch ) --- 1637,1641 ---- DPRINT(fprintf(stderr, "*** DbgAttach\n")); ! MPArch = arch; switch ( arch ) *************** *** 1633,1636 **** --- 1685,1694 ---- { IDBSendCmd("quit"); + + #ifdef sun + if ( IODevName != NULL ) + (void)unlink(IODevName); + #endif /* sun */ + } |
|
From: Greg W. <ja...@us...> - 2005-05-02 00:05:58
|
Update of /cvsroot/guardsoft/guard/src/dbgsrv In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19402 Modified Files: dbgsrv_gdb.c Log Message: Make variables static. Index: dbgsrv_gdb.c =================================================================== RCS file: /cvsroot/guardsoft/guard/src/dbgsrv/dbgsrv_gdb.c,v retrieving revision 1.61 retrieving revision 1.62 diff -C2 -d -r1.61 -r1.62 *** dbgsrv_gdb.c 1 May 2005 16:27:40 -0000 1.61 --- dbgsrv_gdb.c 2 May 2005 00:05:42 -0000 1.62 *************** *** 2,5 **** --- 2,7 ---- ** GDB interface routines ** + ** NOTE: THIS INTERFACE IS NOW DEPRECIATED. + ** ** Copyright (c) 1996-2002 by Guardsoft Pty Ltd. ** *************** *** 80,103 **** } ! char * CurrentDataType = NULL; ! dbgstat Status; ! int Pid = 0; ! int DBGIn; ! int DBGOut; ! int MPArch; ! int Synced = 0; ! int ExtGDB = 0; ! char * GDBInit = NULL; ! char * RunArgs = NULL; ! char * RunStdIn = NULL; ! char * RunStdOut = NULL; ! char * RedirStr = NULL; ! int CurrLine = 0; ! dbgbp_t * CurrBP = (dbgbp_t *)NULL; ! list_t * BP; ! dbgevent_t Event; ! char * ProgMain; #ifdef sun ! char * IODevName = NULL; #endif /* sun */ --- 82,101 ---- } ! static char * CurrentDataType = NULL; ! static dbgstat Status; ! static int Pid = 0; ! static int DBGIn; ! static int DBGOut; ! static int MPArch; ! static int Synced = 0; ! static char * GDBInit = NULL; ! static char * RunArgs = NULL; ! static char * RedirStr = NULL; ! static int CurrLine = 0; ! static dbgbp_t * CurrBP = (dbgbp_t *)NULL; ! static list_t * BP; ! static char * ProgMain; #ifdef sun ! static char * IODevName = NULL; #endif /* sun */ |
|
From: Greg W. <ja...@us...> - 2005-05-01 23:51:56
|
Update of /cvsroot/guardsoft/guard/src/dbgsrv In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16765 Modified Files: dbgsrv_gdbmi.c Log Message: New init() return value. Index: dbgsrv_gdbmi.c =================================================================== RCS file: /cvsroot/guardsoft/guard/src/dbgsrv/dbgsrv_gdbmi.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** dbgsrv_gdbmi.c 30 Apr 2005 22:50:28 -0000 1.2 --- dbgsrv_gdbmi.c 1 May 2005 23:51:46 -0000 1.3 *************** *** 90,95 **** void InitRegex(void); ! static int InitGDBMI(int *, int *); ! static int ReadGDBMI(int); dbgevent_t * DbgGDBMISetLineBreak(char *, int); --- 90,95 ---- void InitRegex(void); ! static dbgevent_t * InitGDBMI(int *, int *); ! static int ReadGDBMI(int); dbgevent_t * DbgGDBMISetLineBreak(char *, int); *************** *** 123,126 **** --- 123,128 ---- InitGDBMI, ReadGDBMI, + NULL, /* fillbuffer not used */ + NULL, /* progio_hook not used */ DbgGDBMISetLineBreak, DbgGDBMISetFuncBreak, *************** *** 145,150 **** DbgGDBMIAttach, DbgGDBMIFinish, - NULL, - NULL, DbgGDBMIReadyForCmd, DbgGDBMIOK, --- 147,150 ---- *************** *** 346,353 **** #endif /* DEBUG */ ! int InitGDBMI(int *rd, int *tty) { ! mi_aux_term *vt; MIHandle = mi_connect_local(); --- 346,354 ---- #endif /* DEBUG */ ! dbgevent_t * InitGDBMI(int *rd, int *tty) { ! dbgevent_t * e; ! mi_aux_term * vt; MIHandle = mi_connect_local(); *************** *** 355,360 **** if ( !MIHandle ) { ! fprintf(stderr, "%s\n", mi_get_error_str()); ! return -1; } --- 356,361 ---- if ( !MIHandle ) { ! EVENT_ERROR(e, DBGERR_DEBUGGER, (char *)mi_get_error_str()); ! return e; } *************** *** 388,392 **** Status = DBGSTAT_INITIALISING; ! return 0; } --- 389,393 ---- Status = DBGSTAT_INITIALISING; ! return NULL; } |
|
From: Greg W. <ja...@us...> - 2005-05-01 16:31:38
|
Update of /cvsroot/guardsoft/guard In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27839 Modified Files: config.h.in configure configure.in defs.h Log Message: Add support for GDB MI. Index: defs.h =================================================================== RCS file: /cvsroot/guardsoft/guard/defs.h,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** defs.h 7 Jan 2004 02:29:47 -0000 1.28 --- defs.h 1 May 2005 16:31:29 -0000 1.29 *************** *** 37,41 **** --- 37,45 ---- #define DBG_PROTO "socket" #ifdef GDB + #ifdef LIBMIGDB + #define DBG_BACKEND "gdbmi" + #else /* LIBMIGDB */ #define DBG_BACKEND "gdb" + #endif /* LIBMIGDB */ #elif defined(IDB) #define DBG_BACKEND "idb" Index: config.h.in =================================================================== RCS file: /cvsroot/guardsoft/guard/config.h.in,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** config.h.in 7 Jan 2004 02:29:47 -0000 1.17 --- config.h.in 1 May 2005 16:31:28 -0000 1.18 *************** *** 98,101 **** --- 98,104 ---- #undef LIBAIF + /* Define if you have the libmigdb package. */ + #undef LIBMIGDB + /* Enable MPICH support in Guard */ #undef MPICH *************** *** 119,122 **** --- 122,128 ---- #undef MPICH_BPROC + /* Enable Open MPI in Guard. */ + #undef OMPI + /* Enable POSIX support in Guard. */ #undef POSIX Index: configure =================================================================== RCS file: /cvsroot/guardsoft/guard/configure,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** configure 7 Jan 2004 02:29:47 -0000 1.27 --- configure 1 May 2005 16:31:28 -0000 1.28 *************** *** 1,18 **** #! /bin/sh # Guess values for system-dependent variables and create Makefiles. ! # Generated by GNU Autoconf 2.53. # ! # Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 ! # Free Software Foundation, Inc. # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. - - if expr a : '\(a\)' >/dev/null 2>&1; then [...5766 lines suppressed...] [\\/]* | ?:[\\/]* ) ac_sub_cache_file=$cache_file ;; *) # Relative path. ! ac_sub_cache_file=$ac_top_builddir$cache_file ;; esac *************** *** 6125,6130 **** # The eval makes quoting arguments work. eval $ac_sub_configure $ac_sub_configure_args \ ! --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir || ! { { echo "$as_me:$LINENO: error: $ac_sub_configure failed for $ac_dir" >&5 echo "$as_me: error: $ac_sub_configure failed for $ac_dir" >&2;} { (exit 1); exit 1; }; } --- 7277,7282 ---- # The eval makes quoting arguments work. eval $ac_sub_configure $ac_sub_configure_args \ ! --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir || ! { { echo "$as_me:$LINENO: error: $ac_sub_configure failed for $ac_dir" >&5 echo "$as_me: error: $ac_sub_configure failed for $ac_dir" >&2;} { (exit 1); exit 1; }; } Index: configure.in =================================================================== RCS file: /cvsroot/guardsoft/guard/configure.in,v retrieving revision 1.33 retrieving revision 1.34 diff -C2 -d -r1.33 -r1.34 *** configure.in 7 Jan 2004 02:29:47 -0000 1.33 --- configure.in 1 May 2005 16:31:29 -0000 1.34 *************** *** 116,119 **** --- 116,122 ---- fi + dnl Check for libmigdb + AC_TEST_PACKAGE_NEW(libmigdb,[#include "mi_gdb.h"],-lmigdb,,[/usr/local $(TOP)/../libmigdb/src],LIBMIGDB) + dnl Check for HDF. AC_CHECK_LIB(mfhdf, SDcreate,,, -ldf -lz -lnsl) *************** *** 182,197 **** dnl Standard MPICH startup ! AC_PATH_PROG(MPIRUN, mpirun, no) ! dnl AC_PATH_PROG(MPIPG, mpirun.pg, no) ! if test "$ac_cv_path_MPIRUN" != no ; then ! AC_DEFINE(MPICH,1,[Enable MPICH support in Guard]) ! AC_DEFINE_UNQUOTED(MPIRUN, "$ac_cv_path_MPIRUN", [Location of mpirun command.]) ! dnl AC_DEFINE_UNQUOTED(MPIPG, "$ac_cv_path_MPIPG", [Location of mpirun.pg command.]) ! AC_PATH_PROG(MPDTRACE, mpdtrace, no) ! if test "$ac_cv_path_MPDTRACE" != no ; then ! AC_DEFINE(MPICH_MPD,1,[Enable MPICH support in Guard with mpd]) ! AC_DEFINE_UNQUOTED(MPDTRACE, "$ac_cv_path_MPDTRACE", [Location of mpdtrace command.]) fi fi --- 185,202 ---- dnl Standard MPICH startup ! AC_PATH_PROG(MPIPG, mpirun.pg, no) ! if test "$ac_cv_path_MPIPG" != no ; then ! AC_PATH_PROG(MPIRUN, mpirun, no) ! if test "$ac_cv_path_MPIRUN" != no ; then ! AC_DEFINE(MPICH,1,[Enable MPICH support in Guard]) ! AC_DEFINE_UNQUOTED(MPIRUN, "$ac_cv_path_MPIRUN", [Location of mpirun command.]) ! dnl AC_DEFINE_UNQUOTED(MPIPG, "$ac_cv_path_MPIPG", [Location of mpirun.pg command.]) ! AC_PATH_PROG(MPDTRACE, mpdtrace, no) ! if test "$ac_cv_path_MPDTRACE" != no ; then ! AC_DEFINE(MPICH_MPD,1,[Enable MPICH support in Guard with mpd]) ! AC_DEFINE_UNQUOTED(MPDTRACE, "$ac_cv_path_MPDTRACE", [Location of mpdtrace command.]) ! fi fi fi *************** *** 204,207 **** --- 209,222 ---- fi + dnl Open MPI + AC_PATH_PROG(OMPI_INFO, ompi_info, no) + if test "$ac_cv_path_OMPI_INFO" != no; then + AC_PATH_PROG(MPIRUN, mpirun, no) + if test "$ac_cv_path_MPIRUN" != no ; then + AC_DEFINE(OMPI,1,[Enable Open MPI support in Guard.]) + AC_DEFINE_UNQUOTED(MPIRUN, "$ac_cv_path_MPIRUN", [Location of mpirun command.]) + fi + fi + dnl P4 Parallel Programming System (from ANL) AC_DEFINE(P4,1,[Enable P4 support in Guard.]) |
|
From: Greg W. <ja...@us...> - 2005-05-01 16:29:23
|
Update of /cvsroot/guardsoft/guard/src/dbgsrv In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26849 Modified Files: Makefile.in Log Message: GDB MI support. Index: Makefile.in =================================================================== RCS file: /cvsroot/guardsoft/guard/src/dbgsrv/Makefile.in,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** Makefile.in 7 Jan 2004 02:29:47 -0000 1.26 --- Makefile.in 1 May 2005 16:29:13 -0000 1.27 *************** *** 44,48 **** USEFUL = $(srcdir)/../useful COMPAT = $(srcdir)/../compat ! ALL_CFLAGS = $(CPPFLAGS) $(DEFS) -DBINDIR=\"$(bindir)\" -I$(srcdir) -I$(TOP) -I$(COMPAT) $(INCLUDE_aif) -I$(USEFUL) $(CFLAGS) INSPROGS = dbgsrv guard_starter INSLIBS = libdbg.a --- 44,50 ---- USEFUL = $(srcdir)/../useful COMPAT = $(srcdir)/../compat ! LIB_libmigdb = @LIB_libmigdb@ ! INCLUDE_libmigdb = @INCLUDE_libmigdb@ ! ALL_CFLAGS = $(CPPFLAGS) $(DEFS) -DBINDIR=\"$(bindir)\" -I$(srcdir) -I$(TOP) -I$(COMPAT) $(INCLUDE_aif) $(INCLUDE_libmigdb) -I$(USEFUL) $(CFLAGS) INSPROGS = dbgsrv guard_starter INSLIBS = libdbg.a *************** *** 58,62 **** #LIBS = -laif -luseful -lnsl # Solaris ! LIBS = -L$(USEFUL) $(LIB_aif) -luseful @LIBS@ -lm RPCGENFLAGS = --- 60,64 ---- #LIBS = -laif -luseful -lnsl # Solaris ! LIBS = -L$(USEFUL) $(LIB_aif) $(LIB_libmigdb) -luseful @LIBS@ -lm RPCGENFLAGS = *************** *** 69,73 **** SRCS = dbg_client.c dbgevent.c dbgsrv.c \ ! dbgsrv_fn.c dbgsrv_gdb.c dbgsrv_idb.c dbgrexp.c \ dbgbp.c dbgsrv_proto.c dbgclnt_proto.c \ cb_clnt.c cb_svr.c cbclnt_soc.c cbsvr_soc.c \ --- 71,76 ---- SRCS = dbg_client.c dbgevent.c dbgsrv.c \ ! dbgsrv_fn.c dbgsrv_gdb.c dbgsrv_gdbmi.c \ ! dbgsrv_idb.c dbgrexp.c \ dbgbp.c dbgsrv_proto.c dbgclnt_proto.c \ cb_clnt.c cb_svr.c cbclnt_soc.c cbsvr_soc.c \ *************** *** 79,83 **** dbgclnt_ms.o ! SOBJS = dbgsrv.o dbgsrv_fn.o dbgsrv_gdb.o dbgsrv_idb.o dbgrexp.o \ dbgevent.o dbgbp.o dbgsrv_soc.o dbgsrv_proto.o cb_svr.o \ cbsvr_soc.o dbg_soc.o --- 82,87 ---- dbgclnt_ms.o ! SOBJS = dbgsrv.o dbgsrv_fn.o dbgsrv_gdb.o dbgsrv_gdbmi.o \ ! dbgsrv_idb.o dbgrexp.o \ dbgevent.o dbgbp.o dbgsrv_soc.o dbgsrv_proto.o cb_svr.o \ cbsvr_soc.o dbg_soc.o |
|
From: Greg W. <ja...@us...> - 2005-05-01 16:28:46
|
Update of /cvsroot/guardsoft/guard/src/dbgsrv In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26364 Modified Files: dbgsrv_proto.h Log Message: New backend routines. Index: dbgsrv_proto.h =================================================================== RCS file: /cvsroot/guardsoft/guard/src/dbgsrv/dbgsrv_proto.h,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** dbgsrv_proto.h 7 Jan 2004 02:29:47 -0000 1.11 --- dbgsrv_proto.h 1 May 2005 16:28:37 -0000 1.12 *************** *** 45,48 **** --- 45,52 ---- struct dbgbackend_sw { + dbgevent_t * (*dbg_init)(int *, int *); + int (*dbg_read)(int); + int (*dbg_bufferready)(void); + int (*dbg_progio_hook)(int); dbgevent_t * (*dbg_setlinebreak)(char *, int); dbgevent_t * (*dbg_setfuncbreak)(char *, char *); *************** *** 64,72 **** dbgevent_t * (*dbg_quit)(void); dbgevent_t * (*dbg_interrupt)(char *, int); ! dbgevent_t * (*dbg_invoke)(char *, int, char *, char *, char *, char **, int, char *, int *); ! dbgevent_t * (*dbg_attach)(int, char *, char *, char **, int, char *, int *); void (*dbg_finish)(void); - int (*dbg_fillbuffer)(int); - int (*dbg_bufferready)(void); int (*dbg_readyforcmd)(void); int (*dbg_ok)(void); --- 68,74 ---- dbgevent_t * (*dbg_quit)(void); dbgevent_t * (*dbg_interrupt)(char *, int); ! dbgevent_t * (*dbg_invoke)(char *, int, char *, char *, char *, char **, int); ! dbgevent_t * (*dbg_attach)(int, char *, char *, char **, int); void (*dbg_finish)(void); int (*dbg_readyforcmd)(void); int (*dbg_ok)(void); |
|
From: Greg W. <ja...@us...> - 2005-05-01 16:28:17
|
Update of /cvsroot/guardsoft/guard/src/dbgsrv In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26160 Modified Files: dbgsrv_proto.c Log Message: Added GDB MI support. Index: dbgsrv_proto.c =================================================================== RCS file: /cvsroot/guardsoft/guard/src/dbgsrv/dbgsrv_proto.c,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** dbgsrv_proto.c 7 Jan 2004 02:29:47 -0000 1.11 --- dbgsrv_proto.c 1 May 2005 16:28:06 -0000 1.12 *************** *** 56,61 **** extern dbgsrv_proto DbgSrvSocProtoSW; #ifdef GDB extern dbgbackend_sw DbgBackendGDB; ! #endif /* IDB */ #ifdef IDB extern dbgbackend_sw DbgBackendIDB; --- 56,65 ---- extern dbgsrv_proto DbgSrvSocProtoSW; #ifdef GDB + #ifdef LIBMIGDB + extern dbgbackend_sw DbgBackendGDBMI; + #else /* LIBMIGDB */ extern dbgbackend_sw DbgBackendGDB; ! #endif /* LIBMIGDB */ ! #endif /* GDB */ #ifdef IDB extern dbgbackend_sw DbgBackendIDB; *************** *** 74,78 **** --- 78,86 ---- { #ifdef GDB + #ifdef LIBMIGDB + { "gdbmi", &DbgBackendGDBMI }, + #else /* LIBMIGDB */ { "gdb", &DbgBackendGDB }, + #endif /* LIBMIGDB */ #endif /* GDB */ #ifdef IDB *************** *** 91,95 **** --- 99,107 ---- #endif /* SUN_RPC */ #ifdef GDB + #ifdef LIBMIGDB + dbgbackend_sw * DbgBackendSW = &DbgBackendGDBMI; /* Default to GDBMI */ + #else /* LIBMIGDB */ dbgbackend_sw * DbgBackendSW = &DbgBackendGDB; /* Default to GDB */ + #endif /* LIBMIGDB */ #elif defined(IDB) dbgbackend_sw * DbgBackendSW = &DbgBackendIDB; /* Default to IDB */ |
|
From: Greg W. <ja...@us...> - 2005-05-01 16:27:49
|
Update of /cvsroot/guardsoft/guard/src/dbgsrv In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25876 Modified Files: dbgsrv_gdb.c Log Message: New backend support. Index: dbgsrv_gdb.c =================================================================== RCS file: /cvsroot/guardsoft/guard/src/dbgsrv/dbgsrv_gdb.c,v retrieving revision 1.60 retrieving revision 1.61 diff -C2 -d -r1.60 -r1.61 *** dbgsrv_gdb.c 7 Jan 2004 02:29:47 -0000 1.60 --- dbgsrv_gdb.c 1 May 2005 16:27:40 -0000 1.61 *************** *** 98,101 **** --- 98,104 ---- dbgevent_t Event; char * ProgMain; + #ifdef sun + char * IODevName = NULL; + #endif /* sun */ extern int Shutdown; *************** *** 106,113 **** dbgevent_t * WaitEvent(dbgevent_t *); int SetCurrentLine(int); - void FreeFrame(dbgframe_t *); - void FreeLocation(dbgloc_t *); void Finish(int); ! dbgevent_t * InitDbg(char *); #ifdef P4 dbgevent_t * InitP4Dbg(char *, int, char *, char *, char *, char **); --- 109,114 ---- dbgevent_t * WaitEvent(dbgevent_t *); int SetCurrentLine(int); void Finish(int); ! dbgevent_t * InitDbg(char *, char *); #ifdef P4 dbgevent_t * InitP4Dbg(char *, int, char *, char *, char *, char **); *************** *** 115,119 **** #endif /* P4 */ dbgevent_t * GetPid(int *); ! char * SetupDbg(int, char *); void SendCmd(char *, ...); #ifdef notdef --- 116,120 ---- #endif /* P4 */ dbgevent_t * GetPid(int *); ! char * SetupDbg(char *); void SendCmd(char *, ...); #ifdef notdef *************** *** 140,143 **** --- 141,148 ---- void InitRegex(void); + dbgevent_t * InitGDB(int *, int *); + #ifdef sun + int ProgIOHookGDB(int fd); + #endif /* sun */ dbgevent_t * DbgGDBSetLineBreak(char *, int); dbgevent_t * DbgGDBSetFuncBreak(char *, char *); *************** *** 159,168 **** dbgevent_t * DbgGDBQuit(void); dbgevent_t * DbgGDBInterrupt(char *, int); ! dbgevent_t * DbgGDBInvoke(char *, int, char *, char *, char *, char **, int, char *, int *); ! dbgevent_t * DbgGDBAttach(int, char *, char *, char **, int, char *, int *); void DbgGDBFinish(void); dbgbackend_sw DbgBackendGDB = { DbgGDBSetLineBreak, DbgGDBSetFuncBreak, --- 164,181 ---- dbgevent_t * DbgGDBQuit(void); dbgevent_t * DbgGDBInterrupt(char *, int); ! dbgevent_t * DbgGDBInvoke(char *, int, char *, char *, char *, char **, int); ! dbgevent_t * DbgGDBAttach(int, char *, char *, char **, int); void DbgGDBFinish(void); dbgbackend_sw DbgBackendGDB = { + InitGDB, + FillBuffer, + BufferReady, + #ifdef sun + ProgIOHookGDB, + #else /* sun */ + NULL, + #endif /* sun */ DbgGDBSetLineBreak, DbgGDBSetFuncBreak, *************** *** 187,192 **** DbgGDBAttach, DbgGDBFinish, - FillBuffer, - BufferReady, DbgReadyForCmd, DbgOK, --- 200,203 ---- *************** *** 1490,1494 **** */ dbgevent_t * ! StartDebugger(char *prog, char *args, char **env, int arch, char *slave) { int p[2]; --- 1501,1505 ---- */ dbgevent_t * ! StartDebugger(char **env, char *slave) { int p[2]; *************** *** 1520,1534 **** signal(SIGPIPE, Finish); ! if ( args != NULL ) ! { ! e = DbgGDBSetArgs(args); ! ! if ( e->ev_event != DBGEV_OK ) ! return e; ! ! FreeEvent(e); ! } ! ! if ( (GDBInit = SetupDbg(arch, slave)) == NULL ) { EVENT_ERROR(e, DBGERR_TEMP, ""); --- 1531,1535 ---- signal(SIGPIPE, Finish); ! if ( (GDBInit = SetupDbg(slave)) == NULL ) { EVENT_ERROR(e, DBGERR_TEMP, ""); *************** *** 1599,1612 **** } dbgevent_t * ! DbgGDBInvoke(char *host, int cb, char *proto, char *prog, char *args, char **env, int arch, char *slave, int *dbgfd) { dbgevent_t * e; ! DPRINT(fprintf(stderr, "*** DbgInvoke\n")); ! if ( (e = StartDebugger(prog, args, env, arch, slave)) != (dbgevent_t *)NULL ) return e; switch ( arch ) { --- 1600,1673 ---- } + extern int AllocPty(int *, char **, char**); + extern int AllocFifo(int *, char **, char**); + dbgevent_t * ! InitGDB(int *dfd, int *iofd) { + char * master; + char * slave; dbgevent_t * e; ! /* ! ** Try allocating a pty for backend i/o first. If this fails then ! ** we use a fifo. Note that using a fifo restricts us to output only. ! */ ! if ! ( ! AllocPty(iofd, &master, &slave) < 0 ! && ! AllocFifo(iofd, &master, &slave) < 0 ! ) ! *iofd = -1; ! /* TODO Check if env is really needed */ ! if ( (e = StartDebugger(NULL, slave)) != (dbgevent_t *)NULL ) return e; + *dfd = DBGIn; + + #ifdef sun + IODevName = master; + #endif /* sun */ + + return (dbgevent_t *)NULL;; + } + + #ifdef sun + /* + ** It appears (in Solaris 2.5) that if the slave + ** closes its pty before the master has time to read + ** the current data, then we get EIO's until the + ** slave opens the pty again. The only way to stop this + ** seems to be to close and reopen the master side. + */ + int + ProgIOHookGDB(int fd) + { + if ( IODevName == NULL ) + return -1; + + (void)close(fd); + + if ( (fd = open(IODevName, O_RDWR, 0600)) < 0 ) + { + perror(IODevName); + return -1; + } + + return fd; + } + #endif /* sun */ + + dbgevent_t * + DbgGDBInvoke(char *host, int cb, char *proto, char *prog, char *args, char **env, int arch) + { + dbgevent_t * e; + + DPRINT(fprintf(stderr, "*** DbgInvoke\n")); + + MPArch = arch; + switch ( arch ) { *************** *** 1618,1625 **** default: ! e = InitDbg(prog); } - *dbgfd = DBGIn; Status = DBGSTAT_STOPPED; --- 1679,1685 ---- default: ! e = InitDbg(prog, args); } Status = DBGSTAT_STOPPED; *************** *** 1631,1635 **** */ dbgevent_t * ! DbgGDBAttach(int pid, char *prog, char *args, char **env, int arch, char *slave, int *dbgfd) { dbgevent_t * e; --- 1691,1695 ---- */ dbgevent_t * ! DbgGDBAttach(int pid, char *prog, char *args, char **env, int arch) { dbgevent_t * e; *************** *** 1637,1642 **** DPRINT(fprintf(stderr, "*** DbgAttach\n")); ! if ( (e = StartDebugger(prog, args, env, arch, slave)) != (dbgevent_t *)NULL ) ! return e; switch ( arch ) --- 1697,1701 ---- DPRINT(fprintf(stderr, "*** DbgAttach\n")); ! MPArch = arch; switch ( arch ) *************** *** 1653,1657 **** } - *dbgfd = DBGIn; Status = DBGSTAT_STOPPED; --- 1712,1715 ---- *************** *** 1686,1689 **** --- 1744,1752 ---- { SendCmd("quit"); + + #ifdef sun + if ( IODevName != NULL ) + (void)unlink(IODevName); + #endif /* sun */ } *************** *** 2094,2098 **** */ char * ! SetupDbg(int arch, char *slave) { FILE * fp; --- 2157,2161 ---- */ char * ! SetupDbg(char *slave) { FILE * fp; *************** *** 2125,2130 **** fclose(fp); - MPArch = arch; - return file; } --- 2188,2191 ---- *************** *** 2183,2187 **** */ dbgevent_t * ! InitDbg(char *prog) { dbgevent_t * e; --- 2244,2248 ---- */ dbgevent_t * ! InitDbg(char *prog, char *args) { dbgevent_t * e; *************** *** 2199,2202 **** --- 2260,2273 ---- FreeEvent(e); + if ( args != NULL ) + { + e = DbgGDBSetArgs(args); + + if ( e->ev_event != DBGEV_OK ) + return e; + + FreeEvent(e); + } + /* ** Check for fortran. |
|
From: Greg W. <ja...@us...> - 2005-05-01 16:27:11
|
Update of /cvsroot/guardsoft/guard/src/dbgsrv In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25431 Modified Files: dbgsrv.c Log Message: Added OpenMPI support. Redefined some backend routines to work with GDB MI. Index: dbgsrv.c =================================================================== RCS file: /cvsroot/guardsoft/guard/src/dbgsrv/dbgsrv.c,v retrieving revision 1.43 retrieving revision 1.44 diff -C2 -d -r1.43 -r1.44 *** dbgsrv.c 7 Jan 2004 02:29:47 -0000 1.43 --- dbgsrv.c 1 May 2005 16:27:02 -0000 1.44 *************** *** 86,89 **** --- 86,92 ---- { "p4slave", MPARCH_P4SLAVE }, #endif /* P4 */ + #ifdef OMPI + { "ompi", MPARCH_OMPI }, + #endif /* OMPI */ { "unknown", MPARCH_UNKNOWN } }; *************** *** 98,102 **** int Shutdown = 0; int WDT = 0; - int CleanupIO = 0; dbgevent_t * (*AsyncRtn)() = (dbgevent_t * (*)())NULL; --- 101,104 ---- *************** *** 105,111 **** int AsyncProg; int DbgFD; ! int IOBackendFD; int IOClientFD; - char * IODevName; void Usage(void); --- 107,112 ---- int AsyncProg; int DbgFD; ! int IOBackendFD = -1; int IOClientFD; void Usage(void); *************** *** 115,119 **** char * MakeStr(int, char*[]); int FindMPArch(char *); ! void SetupProgIO(int *, char **, char **, int *, int *); int DoProgIO(int *, int); int AllocPty(int *, char **, char **); --- 116,120 ---- char * MakeStr(int, char*[]); int FindMPArch(char *); ! int SetupProgIO(int *, int *); int DoProgIO(int *, int); int AllocPty(int *, char **, char **); *************** *** 136,140 **** char * host = NULL; int procnum = -1; ! int port; int pnum; int pid = -1; --- 137,141 ---- char * host = NULL; int procnum = -1; ! int port = -1; int pnum; int pid = -1; *************** *** 144,148 **** char * prog; char * args; - char * slave; dbgev evt; dbgevent_t * e; --- 145,148 ---- *************** *** 352,355 **** --- 352,374 ---- #endif /* P4 */ + #ifdef OMPI + case MPARCH_OMPI: + { + char * ps; + + if + ( + (ps = getenv("OMPI_MCA_pcmclient_env_procid")) == NULL + || + sscanf(ps, "%d", &procnum) != 1 + ) + { + fprintf(stderr, "OMPI: could not find process number\n"); + exit(1); + } + } + break; + #endif /* OMPI */ + case MPARCH_SERIAL: procnum = 0; *************** *** 364,372 **** exit(1); ! SetupProgIO(&IOBackendFD, &IODevName, &slave, &IOClientFD, &port); #ifdef P4 if ( arch == MPARCH_P4SLAVE ) ! e = DbgBackendSW->dbg_attach(pid, prog, args, env, arch, slave, &DbgFD); else { --- 383,401 ---- exit(1); ! if ( (e = DbgBackendSW->dbg_init(&DbgFD, &IOBackendFD)) != NULL ) ! { ! InvokeCallBack(host, cb, hname, pnum, procnum, port, e); ! EndServer(1); ! } ! ! if ( IOBackendFD != -1 && SetupProgIO(&IOClientFD, &port) < 0 ) ! { ! fprintf(stderr, "Could not setup program IO channel\n"); ! IOBackendFD = -1; ! } #ifdef P4 if ( arch == MPARCH_P4SLAVE ) ! e = DbgBackendSW->dbg_attach(pid, prog, args, env, arch); else { *************** *** 378,382 **** } ! e = DbgBackendSW->dbg_invoke(host, cb, proto, prog, args, env, arch, slave, &DbgFD); #ifdef P4 } --- 407,411 ---- } ! e = DbgBackendSW->dbg_invoke(host, cb, proto, prog, args, env, arch); #ifdef P4 } *************** *** 461,465 **** if ( AsyncRtn != (dbgevent_t * (*)())NULL ) { ! if ( AsyncRtn == ASYNC_FORCE || DbgBackendSW->dbg_bufferready() ) { if ( AsyncRtn != ASYNC_FORCE ) --- 490,505 ---- if ( AsyncRtn != (dbgevent_t * (*)())NULL ) { ! if ! ( ! DbgBackendSW->dbg_bufferready == NULL ! || ! AsyncRtn == ASYNC_FORCE ! || ! ( ! DbgBackendSW->dbg_bufferready != NULL ! && ! DbgBackendSW->dbg_bufferready() ! ) ! ) { if ( AsyncRtn != ASYNC_FORCE ) *************** *** 515,519 **** FD_CLR(DbgFD, readfds); ! if ( !DbgBackendSW->dbg_fillbuffer(DbgFD) ) { (void)close(DbgFD); --- 555,559 ---- FD_CLR(DbgFD, readfds); ! if ( !DbgBackendSW->dbg_read(DbgFD) ) { (void)close(DbgFD); *************** *** 578,584 **** DbgEndProto(); - if ( CleanupIO ) - (void)unlink(IODevName); - exit(stat); } --- 618,621 ---- *************** *** 678,686 **** /* ! ** Allocate an I/O channel for the backend, and if successful, create and bind ! ** a socket for the client to connect to. */ ! void ! SetupProgIO(int *bfd, char **master, char **slave, int *cfd, int *port) { #ifdef _AIX --- 715,722 ---- /* ! ** Create and bind a socket for the client to connect to. */ ! int ! SetupProgIO(int *cfd, int *port) { #ifdef _AIX *************** *** 691,723 **** struct sockaddr_in in; - *slave = NULL; - *port = -1; - - /* - ** Try allocating a pty for backend i/o first. If this fails then - ** we use a fifo. Note that using a fifo restricts us to output only. - */ - if ( AllocPty(bfd, master, slave) < 0 ) - { - CleanupIO = 1; - - if ( AllocFifo(bfd, master, slave) < 0 ) - { - /* - ** XXX should return a warning to user that there is - ** no i/o, but continue anyway. - */ - fprintf(stderr, "could not setup backend i/o...\n"); - *bfd = -1; - return; - } - } - if ( (*cfd = socket(AF_INET, SOCK_STREAM, 0)) < 0 ) { perror("socket"); ! (void)close(*bfd); ! *bfd = -1; ! return; } --- 727,734 ---- struct sockaddr_in in; if ( (*cfd = socket(AF_INET, SOCK_STREAM, 0)) < 0 ) { perror("socket"); ! return -1; } *************** *** 729,736 **** { perror("bind"); - (void)close(*bfd); (void)close(*cfd); ! *bfd = -1; ! return; } --- 740,745 ---- { perror("bind"); (void)close(*cfd); ! return -1; } *************** *** 740,747 **** { perror("getsockname"); - (void)close(*bfd); (void)close(*cfd); ! *bfd = -1; ! return; } --- 749,754 ---- { perror("getsockname"); (void)close(*cfd); ! return -1; } *************** *** 749,762 **** listen(*cfd, 5); } /* ** Transfer data from backend to socket connected to client. - ** - ** Note: It appears (Solaris 2.5) that if the slave - ** closes its pty before the master has time to read - ** the current data, then we get EIO's until the - ** slave opens the pty again. The only way to stop this - ** seems to be to close and reopen the master side. */ int --- 756,765 ---- listen(*cfd, 5); + + return 0; } /* ** Transfer data from backend to socket connected to client. */ int *************** *** 770,782 **** if ( errno == EIO ) { ! #if defined(sun) ! (void)close(*in); ! ! if ( (*in = open(IODevName, O_RDWR, 0600)) < 0 ) ! { ! perror(IODevName); return 0; - } - #endif /* sun */ return 1; --- 773,783 ---- if ( errno == EIO ) { ! if ! ( ! DbgBackendSW->dbg_progio_hook ! && ! (*in = DbgBackendSW->dbg_progio_hook(*in)) < 0 ! ) return 0; return 1; |
|
From: Greg W. <ja...@us...> - 2005-04-30 22:50:36
|
Update of /cvsroot/guardsoft/guard/src/dbgsrv In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22529 Modified Files: dbgsrv_gdbmi.c Log Message: Disable if LIBMIGDB not available. Index: dbgsrv_gdbmi.c =================================================================== RCS file: /cvsroot/guardsoft/guard/src/dbgsrv/dbgsrv_gdbmi.c,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** dbgsrv_gdbmi.c 29 Apr 2005 17:59:51 -0000 1.1 --- dbgsrv_gdbmi.c 30 Apr 2005 22:50:28 -0000 1.2 *************** *** 25,29 **** #endif /* HAVE_CONFIG_H */ ! #ifdef GDB RCSID("$Id$"); --- 25,29 ---- #endif /* HAVE_CONFIG_H */ ! #ifdef LIBMIGDB RCSID("$Id$"); *************** *** 1581,1583 **** return NULL; } ! #endif /* GDB */ --- 1581,1583 ---- return NULL; } ! #endif /* LIBMIGDB */ |