ups-cvs Mailing List for UPS debugger (Page 11)
Brought to you by:
ianedwards
You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(11) |
Nov
(49) |
Dec
(1) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(1) |
Feb
|
Mar
(10) |
Apr
(5) |
May
|
Jun
(5) |
Jul
(19) |
Aug
(29) |
Sep
(3) |
Oct
(1) |
Nov
(8) |
Dec
|
2004 |
Jan
|
Feb
(20) |
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(3) |
Dec
|
2005 |
Jan
(1) |
Feb
(10) |
Mar
(5) |
Apr
(1) |
May
|
Jun
|
Jul
(2) |
Aug
(3) |
Sep
|
Oct
|
Nov
|
Dec
(1) |
2006 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
(4) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(4) |
Dec
|
2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
(11) |
Aug
|
Sep
|
Oct
(2) |
Nov
|
Dec
|
2009 |
Jan
|
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
(3) |
Jul
(4) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2010 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(5) |
Nov
|
Dec
|
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
2012 |
Jan
|
Feb
(2) |
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2014 |
Jan
(34) |
Feb
(3) |
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(2) |
Oct
|
Nov
|
Dec
|
2017 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <ian...@us...> - 2002-11-01 12:01:18
|
Update of /cvsroot/ups/ups/lib/libelf In directory usw-pr-cvs1:/tmp/cvs-serv29569 Modified Files: UpsMakefile.in Log Message: Remove po/*.cat from the file list - they are generated files. Index: UpsMakefile.in =================================================================== RCS file: /cvsroot/ups/ups/lib/libelf/UpsMakefile.in,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** UpsMakefile.in 26 Oct 2002 13:02:42 -0000 1.1.1.1 --- UpsMakefile.in 1 Nov 2002 12:01:15 -0000 1.2 *************** *** 18,22 **** OTHERS = \ COPYING.LIB ChangeLog INSTALL README VERSION \ ! po/libelf.pot po/*.po po/*.msg po/*.cat EDITED = *.elflib lib/*.elflib po/*.elflib --- 18,22 ---- OTHERS = \ COPYING.LIB ChangeLog INSTALL README VERSION \ ! po/libelf.pot po/*.po po/*.msg EDITED = *.elflib lib/*.elflib po/*.elflib |
From: <ian...@us...> - 2002-11-01 11:57:23
|
Update of /cvsroot/ups/ups/lib/dwarfdump In directory usw-pr-cvs1:/tmp/cvs-serv28421 Modified Files: UpsMakefile.in Log Message: Remove dwarf_names.[ch] from file list - they are generated files. Index: UpsMakefile.in =================================================================== RCS file: /cvsroot/ups/ups/lib/dwarfdump/UpsMakefile.in,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** UpsMakefile.in 26 Oct 2002 13:04:48 -0000 1.1.1.1 --- UpsMakefile.in 1 Nov 2002 11:57:19 -0000 1.2 *************** *** 3,10 **** HDRS = \ ! dwarf_names.h makename.h globals.h SOURCE = \ ! print_sections.c dwarfdump.c dwarf_names.c makename.c \ print_reloc.c print_die.c tag_attr.c tag_tree.c --- 3,10 ---- HDRS = \ ! makename.h globals.h SOURCE = \ ! print_sections.c dwarfdump.c makename.c \ print_reloc.c print_die.c tag_attr.c tag_tree.c |
From: <ian...@us...> - 2002-11-01 11:54:41
|
Update of /cvsroot/ups/ups In directory usw-pr-cvs1:/tmp/cvs-serv26188 Modified Files: configure configure.in Makefile.in Log Message: Rename default target used by 'configure' from "ups" to "ups-native" to fix BSD 'make' failing to build UPS in a newly un-tarred source tree. Index: configure =================================================================== RCS file: /cvsroot/ups/ups/configure,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** configure 26 Oct 2002 13:01:47 -0000 1.1.1.1 --- configure 1 Nov 2002 11:54:37 -0000 1.2 *************** *** 927,936 **** fi ! DEF_BINARY='${UPS_BINARY}' GDB_DIR= case "$with_gdb" in no|'') cat >> confdefs.h <<\EOF ! #define DEF_BINARY "${UPS_BINARY}" EOF --- 927,936 ---- fi ! DEF_TARGET='${UPS_TARGET}' GDB_DIR= case "$with_gdb" in no|'') cat >> confdefs.h <<\EOF ! #define DEF_TARGET "${UPS_TARGET}" EOF *************** *** 958,962 **** EOF ! DEF_BINARY='${UDB_BINARY}' ;; esac --- 958,962 ---- EOF ! DEF_TARGET='${UDB_TARGET}' ;; esac *************** *** 7261,7265 **** s%@host_os@%$host_os%g s%@CI_PARSE@%$CI_PARSE%g ! s%@DEF_BINARY@%$DEF_BINARY%g s%@GDB_DIR@%$GDB_DIR%g s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g --- 7261,7265 ---- s%@host_os@%$host_os%g s%@CI_PARSE@%$CI_PARSE%g ! s%@DEF_TARGET@%$DEF_TARGET%g s%@GDB_DIR@%$GDB_DIR%g s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g Index: configure.in =================================================================== RCS file: /cvsroot/ups/ups/configure.in,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** configure.in 26 Oct 2002 13:01:40 -0000 1.1.1.1 --- configure.in 1 Nov 2002 11:54:37 -0000 1.2 *************** *** 107,115 **** AC_ARG_WITH(gdb, [ --with-gdb=DIR build UPS as an interface to GDB [n/a] ]) ! DEF_BINARY='${UPS_BINARY}' GDB_DIR= case "$with_gdb" in no|'') ! AC_DEFINE(DEF_BINARY, "${UPS_BINARY}") with_gdb=no ;; --- 107,115 ---- AC_ARG_WITH(gdb, [ --with-gdb=DIR build UPS as an interface to GDB [n/a] ]) ! DEF_TARGET='${UPS_TARGET}' GDB_DIR= case "$with_gdb" in no|'') ! AC_DEFINE(DEF_TARGET, "${UPS_TARGET}") with_gdb=no ;; *************** *** 132,139 **** fi AC_DEFINE(WANT_GDB) ! DEF_BINARY='${UDB_BINARY}' ;; esac ! AC_SUBST(DEF_BINARY) AC_SUBST(GDB_DIR) AC_MSG_RESULT(${with_gdb}) --- 132,139 ---- fi AC_DEFINE(WANT_GDB) ! DEF_TARGET='${UDB_TARGET}' ;; esac ! AC_SUBST(DEF_TARGET) AC_SUBST(GDB_DIR) AC_MSG_RESULT(${with_gdb}) Index: Makefile.in =================================================================== RCS file: /cvsroot/ups/ups/Makefile.in,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** Makefile.in 26 Oct 2002 13:01:38 -0000 1.1.1.1 --- Makefile.in 1 Nov 2002 11:54:37 -0000 1.2 *************** *** 76,86 **** LN_S = @LN_S@ ! UPS_BINARY = ups ! UDB_BINARY = ups-gdb ! CX_BINARY = cx ! XC_BINARY = xc ! CG_BINARY = cg ! CI_LIBRARY = libci.a ! DEF_BINARY = @DEF_BINARY@ SUBMAKEFLAGS = ${EXTRA_SUBMAKEFLAGS} --- 76,82 ---- LN_S = @LN_S@ ! UPS_TARGET = ups-native ! UDB_TARGET = ups-gdb ! DEF_TARGET = @DEF_TARGET@ SUBMAKEFLAGS = ${EXTRA_SUBMAKEFLAGS} *************** *** 106,118 **** # is not set to anything. ! default: ${DEF_BINARY} ! all: ${DEF_BINARY} interpreter interpreter: cx xc cg libci.a ! install: install_${DEF_BINARY} ! ups ups-gdb cx xc cg libci.a: ${COMMONLIBS} cd ups && ${MAKE} ${MFLAGS} ${SUBMAKEFLAGS} $@ --- 102,116 ---- # is not set to anything. ! default: ${DEF_TARGET} ! all: ${DEF_TARGET} interpreter ! ! ups: ups-native interpreter: cx xc cg libci.a ! install: install-${DEF_TARGET} ! ups-native ups-gdb cx xc cg libci.a: ${COMMONLIBS} cd ups && ${MAKE} ${MFLAGS} ${SUBMAKEFLAGS} $@ *************** *** 137,141 **** cd tests && ${MAKE} ${MFLAGS} $@ ! install_ups: ups cd ups && ${MAKE} ${MFLAGS} ${SUBMAKEFLAGS} \ BINDIR=${BINDIR} \ --- 135,139 ---- cd tests && ${MAKE} ${MFLAGS} $@ ! install-ups-native: ups-native cd ups && ${MAKE} ${MFLAGS} ${SUBMAKEFLAGS} \ BINDIR=${BINDIR} \ *************** *** 143,147 **** MANDIR=${MANDIR} MANSUFFIX=${MANSUFFIX} $@ ! install_med3: med3 cd med3 && ${MAKE} ${MFLAGS} ${SUBMAKEFLAGS} \ BINDIR=${BINDIR} \ --- 141,145 ---- MANDIR=${MANDIR} MANSUFFIX=${MANSUFFIX} $@ ! install-med3: med3 cd med3 && ${MAKE} ${MFLAGS} ${SUBMAKEFLAGS} \ BINDIR=${BINDIR} \ *************** *** 149,153 **** MANDIR=${MANDIR} MANSUFFIX=${MANSUFFIX} $@ ! install_interpreter: cx xc cg libci.a cd ups && ${MAKE} ${MFLAGS} ${SUBMAKEFLAGS} \ BINDIR=${BINDIR} \ --- 147,151 ---- MANDIR=${MANDIR} MANSUFFIX=${MANSUFFIX} $@ ! install-interpreter: cx xc cg libci.a cd ups && ${MAKE} ${MFLAGS} ${SUBMAKEFLAGS} \ BINDIR=${BINDIR} \ |
From: <ian...@us...> - 2002-11-01 11:54:41
|
Update of /cvsroot/ups/ups/ups In directory usw-pr-cvs1:/tmp/cvs-serv26188/ups Modified Files: Makefile.in Log Message: Rename default target used by 'configure' from "ups" to "ups-native" to fix BSD 'make' failing to build UPS in a newly un-tarred source tree. Index: Makefile.in =================================================================== RCS file: /cvsroot/ups/ups/ups/Makefile.in,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Makefile.in 31 Oct 2002 17:47:49 -0000 1.2 --- Makefile.in 1 Nov 2002 11:54:38 -0000 1.3 *************** *** 75,87 **** CG_BINARY = cg CI_LIBRARY = libci.a - DEF_BINARY = @DEF_BINARY@ ! BINARIES = ${DEF_BINARY} ${CX_BINARY} ${XC_BINARY} ${CG_BINARY} LIBRARIES = ${CI_LIBRARY} ! default_target: ${DEF_BINARY} all: ${BINARIES} ${LIBRARIES} LIBOBJ = ../lib --- 75,92 ---- CG_BINARY = cg CI_LIBRARY = libci.a ! UPS_TARGET = ups-native ! UDB_TARGET = ups-gdb ! DEF_TARGET = @DEF_TARGET@ ! ! BINARIES = ${DEF_TARGET} ${CX_BINARY} ${XC_BINARY} ${CG_BINARY} LIBRARIES = ${CI_LIBRARY} ! default: ${DEF_TARGET} all: ${BINARIES} ${LIBRARIES} + ups-native: ${UPS_BINARY} + LIBOBJ = ../lib *************** *** 387,399 **** @echo You must run 'make install' in the directory above this one. 1>&2 ! install_ups: ${BINDIR}/ups ${MANDIR}/ups.${MANSUFFIX} ! install_interpreter: ${BINDIR}/cx ${BINDIR}/xc ${BINDIR}/cg ! install_cx: ${BINDIR}/cx ! install_xc: ${BINDIR}/xc ! install_cg: ${BINDIR}/cg ${BINDIR}/ups: ups --- 392,406 ---- @echo You must run 'make install' in the directory above this one. 1>&2 ! install-ups-native: ${BINDIR}/ups ${MANDIR}/ups.${MANSUFFIX} ! install-ups-gdb: ${BINDIR}/ups-gdb ${MANDIR}/ups.${MANSUFFIX} ! ! install-interpreter: ${BINDIR}/cx ${BINDIR}/xc ${BINDIR}/cg ! install-cx: ${BINDIR}/cx ! install-xc: ${BINDIR}/xc ! install-cg: ${BINDIR}/cg ${BINDIR}/ups: ups |
From: <ian...@us...> - 2002-11-01 10:25:47
|
Update of /cvsroot/ups/ups/ups In directory usw-pr-cvs1:/tmp/cvs-serv449 Modified Files: ui_src.c Log Message: When asked to run an editor, if $EDITOR starts with 'x' assume it is an X windows program and don't run it inside an 'xterm'. Index: ui_src.c =================================================================== RCS file: /cvsroot/ups/ups/ups/ui_src.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ui_src.c 28 Oct 2002 10:04:24 -0000 1.2 --- ui_src.c 1 Nov 2002 10:25:44 -0000 1.3 *************** *** 92,96 **** ed = "vi"; /* default if EDITOR is not set */ ! if (strstr(ed,"emacs")) sprintf (buf, "%s +%d ", ed, lnum); else --- 92,96 ---- ed = "vi"; /* default if EDITOR is not set */ ! if (strstr(ed,"emacs") || (*ed == 'x')) sprintf (buf, "%s +%d ", ed, lnum); else |
From: <ian...@us...> - 2002-11-01 10:20:05
|
Update of /cvsroot/ups/ups/ups In directory usw-pr-cvs1:/tmp/cvs-serv31826 Modified Files: ups.c Log Message: Add -[no]findtypes command line option. Index: ups.c =================================================================== RCS file: /cvsroot/ups/ups/ups/ups.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** ups.c 26 Oct 2002 13:06:07 -0000 1.1.1.1 --- ups.c 1 Nov 2002 10:20:02 -0000 1.2 *************** *** 508,512 **** [-statedir dir] [-nodemangle] [-[no]install]\n\ [-[no]split[:num]] [-[no]splitoutwin[:num]]\n\ ! [-[no]mousehole] [-[no]logging]\n \ [-[no]raise_on_break] [-[no]lower_on_run] [-[no]iconify_on_run]\n \ [-replay path] [-record path]\n\ --- 508,512 ---- [-statedir dir] [-nodemangle] [-[no]install]\n\ [-[no]split[:num]] [-[no]splitoutwin[:num]]\n\ ! [-[no]mousehole] [-[no]logging] [-[no]findtypes]\n \ [-[no]raise_on_break] [-[no]lower_on_run] [-[no]iconify_on_run]\n \ [-replay path] [-record path]\n\ *************** *** 727,730 **** --- 727,736 ---- demangling_enabled(0, 1); /* reset */ } + else if (strcmp(*argv, "-nofindtypes") == 0) { + set_find_types_by_name(0); + } + else if (strcmp(*argv, "-findtypes") == 0) { + set_find_types_by_name(1); + } else if (strcmp(*argv, "-statedir") == 0) { state_dir = checkarg(++argv); *************** *** 769,774 **** wantmsgstr = wn_get_default("WantStartupMessage"); - /* want_startup_message = wantmsgstr == NULL ||*/ - /* RGA SLB only */ want_startup_message = wantmsgstr != NULL && strcmp(wantmsgstr, "no") != 0; --- 775,778 ---- *************** *** 785,789 **** if (want_startup_message) { puts(ups__sccsdata[0]); ! fputs("Copyright 1994 Mark Russell, ", stdout); puts("University of Kent at Canterbury."); --- 789,793 ---- if (want_startup_message) { puts(ups__sccsdata[0]); ! fputs("Copyright 1994-2002 Mark Russell, ", stdout); puts("University of Kent at Canterbury."); |
From: <ian...@us...> - 2002-11-01 10:18:23
|
Update of /cvsroot/ups/ups/ups In directory usw-pr-cvs1:/tmp/cvs-serv31069 Modified Files: ao_dwarf.c Log Message: Change %lld for error number format to %ld. Index: ao_dwarf.c =================================================================== RCS file: /cvsroot/ups/ups/ups/ao_dwarf.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** ao_dwarf.c 26 Oct 2002 13:05:14 -0000 1.1.1.1 --- ao_dwarf.c 1 Nov 2002 10:18:20 -0000 1.2 *************** *** 21,24 **** --- 21,25 ---- */ + char ups_ao_dwarf_c_rcsid[] = "$Id$"; #include <mtrprog/ifdefs.h> *************** *** 53,58 **** if (dwarf_code == DW_DLV_ERROR) { char * errmsg = dwarf_errmsg(err); ! long long myerr = dwarf_errno(err); ! return strf("\bDWARF error : %s - %s %s (%lld)", msg, die_txt, errmsg, myerr); } --- 54,59 ---- if (dwarf_code == DW_DLV_ERROR) { char * errmsg = dwarf_errmsg(err); ! Dwarf_Unsigned myerr = dwarf_errno(err); ! return strf("\bDWARF error : %s - %s %s (%ld)", msg, die_txt, errmsg, (long)myerr); } |
From: <ian...@us...> - 2002-11-01 10:02:21
|
Update of /cvsroot/ups/ups/ups/doc In directory usw-pr-cvs1:/tmp/cvs-serv27243 Modified Files: upsman.html Log Message: Merge latest ups.man changes. Index: upsman.html =================================================================== RCS file: /cvsroot/ups/ups/ups/doc/upsman.html,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** upsman.html 31 Oct 2002 13:37:50 -0000 1.3 --- upsman.html 1 Nov 2002 10:02:18 -0000 1.4 *************** *** 3733,3738 **** space used by the fixed size regions is subtracted). The default is 50 (<i>i.e.</i> half). ! <b>DisplayAreaPercent</b> </td></tr><tr valign=top><td width=6%> </td><td> ! The percentage of the window height used for the display area (after space used by the fixed size regions is subtracted). The default is 50 (<i>i.e.</i> half). --- 3733,3747 ---- space used by the fixed size regions is subtracted). The default is 50 (<i>i.e.</i> half). ! ! <p> ! <dt><b>SrcwinScrollUpButton, SrcwinScrollDownButton</b> </td></tr><tr valign=top><td width=6%> </td><td> ! <dd>The mouse buttons which, when pressed, should cause the source window to scroll. ! This is normally used with wheel mice to make wheel movements ! cause the source window to scroll. ! There is no default. ! ! <p> ! <dt><b>DisplayAreaPercent</b> </td></tr><tr valign=top><td width=6%> </td><td> ! <dd>The percentage of the window height used for the display area (after space used by the fixed size regions is subtracted). The default is 50 (<i>i.e.</i> half). *************** *** 3744,3752 **** <p> <dt><b>OutwinPercent</b> </td></tr><tr valign=top><td width=6%> </td><td> <dd>The percentage of the window height used for the output window if and when it is added. The default is 10 (which actually means a tenth of the total - ! see the note about <b>SrcwinPercent</b> above. <p> --- 3753,3767 ---- <p> + <dt><b>DisplayAreaScrollUpButton, DisplayAreaScrollDownButton</b> </td></tr><tr valign=top><td width=6%> </td><td> + <dd>The mouse buttons which, when pressed, should cause the display area to + scroll. This is normally used with wheel mice to make wheel movements + cause the display area to scroll. There is no default. + + <p> <dt><b>OutwinPercent</b> </td></tr><tr valign=top><td width=6%> </td><td> <dd>The percentage of the window height used for the output window if and when it is added. The default is 10 (which actually means a tenth of the total - ! see the note about <b>SrcwinPercent</b> above). <p> |
From: <ian...@us...> - 2002-11-01 10:00:49
|
Update of /cvsroot/ups/ups/ups/doc In directory usw-pr-cvs1:/tmp/cvs-serv26782 Modified Files: ups.man Log Message: Fix two typos. Index: ups.man =================================================================== RCS file: /cvsroot/ups/ups/ups/doc/ups.man,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ups.man 31 Oct 2002 23:53:45 -0000 1.4 --- ups.man 1 Nov 2002 10:00:42 -0000 1.5 *************** *** 3347,3351 **** .B <text caption>Foreground, <text caption>Background The text and background colors for a menu item with a specific text caption: ! for example "Add breakpointForeground". Note that imbedded spaces are allowed. .TP .B AsteriskForeground, AsteriskBackground --- 3347,3351 ---- .B <text caption>Foreground, <text caption>Background The text and background colors for a menu item with a specific text caption: ! for example "Add breakpointForeground". Note that embedded spaces are allowed. .TP .B AsteriskForeground, AsteriskBackground *************** *** 3473,3477 **** see the note about .B SrcwinPercent ! above. .TP .B ReverseArrows --- 3473,3477 ---- see the note about .B SrcwinPercent ! above). .TP .B ReverseArrows |
From: <th...@us...> - 2002-11-01 00:03:40
|
Update of /cvsroot/ups/ups/lib/dwarfdump In directory usw-pr-cvs1:/tmp/cvs-serv5150 Modified Files: .cvsignore Log Message: Added dwarf_names.[ch] to .cvsignore file. Index: .cvsignore =================================================================== RCS file: /cvsroot/ups/ups/lib/dwarfdump/.cvsignore,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** .cvsignore 30 Oct 2002 13:10:50 -0000 1.1 --- .cvsignore 1 Nov 2002 00:03:31 -0000 1.2 *************** *** 8,9 **** --- 8,11 ---- develhdrs dwarfdump + dwarf_names.c + dwarf_names.h |
From: <th...@us...> - 2002-11-01 00:02:07
|
Update of /cvsroot/ups/ups/lib/dwarfdump In directory usw-pr-cvs1:/tmp/cvs-serv4635 Removed Files: dwarf_names.c dwarf_names.h Log Message: Remove generated files from cvs. --- dwarf_names.c DELETED --- --- dwarf_names.h DELETED --- |
From: <th...@us...> - 2002-10-31 23:53:49
|
Update of /cvsroot/ups/ups/ups/doc In directory usw-pr-cvs1:/tmp/cvs-serv1737/ups/doc Modified Files: ups.man Log Message: Added support for wheel mice - the wn library now reports up to ten buttons, and there are new X resources to map button numbers to scrolling of the source window and/or display area. Index: ups.man =================================================================== RCS file: /cvsroot/ups/ups/ups/doc/ups.man,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ups.man 31 Oct 2002 13:37:50 -0000 1.3 --- ups.man 31 Oct 2002 23:53:45 -0000 1.4 *************** *** 3444,3447 **** --- 3444,3452 ---- The default is 50 (i.e. half). .TP + .B SrcwinScrollUpButton, SrcwinScrollDownButton + The mouse buttons which, when pressed, should cause the source window to + scroll. This is normally used with wheel mice to make wheel movements + cause the source window to scroll. There is no default. + .TP .B DisplayAreaPercent The percentage of the window height used for the display area (after *************** *** 3456,3459 **** --- 3461,3469 ---- Thus setting both to 20 (or any pair of identical values) results in a 50-50 split. + .TP + .B DisplayAreaScrollUpButton, DisplayAreaScrollDownButton + The mouse buttons which, when pressed, should cause the display area to + scroll. This is normally used with wheel mice to make wheel movements + cause the display area to scroll. There is no default. .TP .B OutwinPercent |
From: <th...@us...> - 2002-10-31 23:53:49
|
Update of /cvsroot/ups/ups/ups In directory usw-pr-cvs1:/tmp/cvs-serv1737/ups Modified Files: reg.c reg.h srcwin.c ui_layout.c ui_misc.c ui_priv.h Log Message: Added support for wheel mice - the wn library now reports up to ten buttons, and there are new X resources to map button numbers to scrolling of the source window and/or display area. Index: reg.c =================================================================== RCS file: /cvsroot/ups/ups/ups/reg.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** reg.c 26 Oct 2002 13:05:47 -0000 1.1.1.1 --- reg.c 31 Oct 2002 23:53:45 -0000 1.2 *************** *** 131,134 **** --- 131,136 ---- static Region *Default_keyboard_re = NULL; static int iconic_state = FALSE; + static re_button_proc_t Button_proc[10]; + static char *Button_proc_data[10]; *************** *** 856,859 **** --- 858,874 ---- void + re_set_button_callback(button, button_proc, data) + int button; + re_button_proc_t button_proc; + char *data; + { + if (button > 0 && button < 11) + { + Button_proc[button-1] = button_proc; + Button_proc_data[button-1] = data; + } + } + + void re_event_loop() { *************** *** 899,902 **** --- 914,961 ---- wn_next_event(WN_ANY, evmask, &event); + + /* Call any button callback that applies to this event. + */ + if (event.ev_type & (EV_BUTTON_DOWN|EV_BUTTON_UP)) + { + int button = 0; + + switch (event.ev_flags) + { + case B_LEFT: + button = 1; + break; + case B_MIDDLE: + button = 2; + break; + case B_RIGHT: + button = 3; + break; + case B_BUTTON4: + button = 4; + break; + case B_BUTTON5: + button = 5; + break; + case B_BUTTON6: + button = 6; + break; + case B_BUTTON7: + button = 7; + break; + case B_BUTTON8: + button = 8; + break; + case B_BUTTON9: + button = 9; + break; + case B_BUTTON10: + button = 10; + break; + } + + if (button > 0 && Button_proc[button-1]) + Button_proc[button-1](Button_proc_data[button-1], &event); + } /* Cancel any displayed error message on a mouse ior key press Index: reg.h =================================================================== RCS file: /cvsroot/ups/ups/ups/reg.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** reg.h 26 Oct 2002 13:06:38 -0000 1.1.1.1 --- reg.h 31 Oct 2002 23:53:45 -0000 1.2 *************** *** 62,65 **** --- 62,67 ---- typedef struct Edit_display* (*re_get_display_proc_t)PROTO((Region *region)); + typedef void (*re_button_proc_t)PROTO((char *data, event_t *ev)); + Region *re_make_region PROTO((int wn)); void re_divide PROTO((Region *region, re_orientation_t orientation, ...)); *************** *** 121,124 **** --- 123,130 ---- #endif + void re_set_button_callback PROTO((int button, + re_button_proc_t button_proc, + char *data)); + void re_event_loop PROTO((void)); *************** *** 133,135 **** */ void clear_message PROTO((void)); - --- 139,140 ---- Index: srcwin.c =================================================================== RCS file: /cvsroot/ups/ups/ups/srcwin.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** srcwin.c 26 Oct 2002 13:06:04 -0000 1.1.1.1 --- srcwin.c 31 Oct 2002 23:53:45 -0000 1.2 *************** *** 150,153 **** --- 150,155 ---- tbar_id_t tbar, Edit_buffer *buffer)); + static void srcwin_scroll_up PROTO((char *data, event_t *ev)); + static void srcwin_scroll_down PROTO((char *data, event_t *ev)); *************** *** 221,224 **** --- 223,227 ---- Srcwin *sw; Edit_keymap *keymap; + const char *button; sw = (Srcwin *)e_malloc(sizeof(Srcwin)); *************** *** 233,236 **** --- 236,249 ---- edit_set_keymap(sw->outwin.display, keymap); + if ((button = wn_get_default("SrcwinScrollUpButton")) != NULL) + { + re_set_button_callback(atoi(button), srcwin_scroll_up, (char *)sw); + } + + if ((button = wn_get_default("SrcwinScrollDownButton")) != NULL) + { + re_set_button_callback(atoi(button), srcwin_scroll_down, (char *)sw); + } + return sw; } *************** *** 1968,1970 **** --- 1981,2021 ---- srcbuf_reset_file_handle(); srcwin_redraw(sw); + } + + static void + srcwin_scroll_up(data, ev) + char *data; + event_t *ev; + { + Srcwin *sw = (Srcwin *)data; + + if (ev->ev_type & EV_BUTTON_DOWN) + { + int amount = Srcfont_height; + + if (ev->ev_buttons & B_SHIFT_MASK) + amount = amount * 10; + + edit_scroll_display(sw->outwin.display, amount); + tb_scroll(sw->outwin.tbar, amount, FALSE); + } + } + + static void + srcwin_scroll_down(data, ev) + char *data; + event_t *ev; + { + Srcwin *sw = (Srcwin *)data; + + if (ev->ev_type & EV_BUTTON_DOWN) + { + int amount = Srcfont_height; + + if (ev->ev_buttons & B_SHIFT_MASK) + amount = amount * 10; + + edit_scroll_display(sw->outwin.display, -amount); + tb_scroll(sw->outwin.tbar, -amount, FALSE); + } } Index: ui_layout.c =================================================================== RCS file: /cvsroot/ups/ups/ups/ui_layout.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** ui_layout.c 26 Oct 2002 13:05:27 -0000 1.1.1.1 --- ui_layout.c 31 Oct 2002 23:53:45 -0000 1.2 *************** *** 415,418 **** --- 415,419 ---- tb_set_callback_and_data(obj_tbar_id, tbar_obj_callback, (char *)NULL); obj_set_callback_and_data(display_area_tbar_callback, (char *)obj_tbar_id); + set_display_area_tbar(obj_tbar_id); re_set_callbacks(regs[DISPLAY_AREA], display_area_draw, *************** *** 597,600 **** --- 598,602 ---- tb_set_callback_and_data(obj_tbar_id, tbar_obj_callback, (char *)NULL); obj_set_callback_and_data(display_area_tbar_callback, (char *)obj_tbar_id); + set_display_area_tbar(obj_tbar_id); re_set_callbacks(regs[DISPLAY_AREA], display_area_draw, Index: ui_misc.c =================================================================== RCS file: /cvsroot/ups/ups/ups/ui_misc.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** ui_misc.c 26 Oct 2002 13:05:32 -0000 1.1.1.1 --- ui_misc.c 31 Oct 2002 23:53:45 -0000 1.2 *************** *** 73,76 **** --- 73,78 ---- static ci_nametype_t getaddr PROTO((const char *name, taddr_t *p_addr)); static unsigned long get_regaddr_for_ci PROTO((char *arg, int reg)); + static void display_area_scroll_up PROTO((char *data, event_t *ev)); + static void display_area_scroll_down PROTO((char *data, event_t *ev)); /* Arguments for getline_from_nlines. *************** *** 90,93 **** --- 92,97 ---- static lexinfo_t *Error_lexinfo; + static tbar_id_t Display_area_tbar; + const char Stop_funcname[] = "$st"; *************** *** 421,424 **** --- 425,481 ---- } + void + set_display_area_tbar(tbar_id) + tbar_id_t tbar_id; + { + const char *button; + + Display_area_tbar = tbar_id; + + if ((button = wn_get_default("DisplayAreaScrollUpButton")) != NULL) + { + re_set_button_callback(atoi(button), display_area_scroll_up, NULL); + } + + if ((button = wn_get_default("DisplayAreaScrollDownButton")) != NULL) + { + re_set_button_callback(atoi(button), display_area_scroll_down, NULL); + } + } + + static void + display_area_scroll_up(data, ev) + char *data; + event_t *ev; + { + if (ev->ev_type & EV_BUTTON_DOWN) + { + int amount = 10; + + if (ev->ev_buttons & B_SHIFT_MASK) + amount = amount * 10; + + display_area_scroll(amount); + } + } + + static void + display_area_scroll_down(data, ev) + char *data; + event_t *ev; + { + Srcwin *sw = (Srcwin *)data; + + if (ev->ev_type & EV_BUTTON_DOWN) + { + int amount = 10; + + if (ev->ev_buttons & B_SHIFT_MASK) + amount = amount * 10; + + display_area_scroll(-amount); + } + } + /* Scroll the object display by dist pixels and update the thumb bar. */ *************** *** 427,435 **** int dist; { ! tbar_id_t tbar_id; ! ! tbar_id = 0; ! panic("can't get obj tb"); ! tb_scroll(tbar_id, v_scroll(dist), FALSE); } --- 484,488 ---- int dist; { ! tb_scroll(Display_area_tbar, v_scroll(dist), FALSE); } *************** *** 443,454 **** { int disp_y, disp_wn; - tbar_id_t tbar_id; - tbar_id = 0; - panic("can't get obj tb"); disp_wn = re_get_wn(get_display_area_region()); ! disp_y = tb_tbpos_to_unit(tbar_id, disp_wn, y, TRUE); display_from(0, disp_y); ! tb_goto(tbar_id, disp_y, FALSE); } --- 496,504 ---- { int disp_y, disp_wn; disp_wn = re_get_wn(get_display_area_region()); ! disp_y = tb_tbpos_to_unit(Display_area_tbar, disp_wn, y, TRUE); display_from(0, disp_y); ! tb_goto(Display_area_tbar, disp_y, FALSE); } Index: ui_priv.h =================================================================== RCS file: /cvsroot/ups/ups/ups/ui_priv.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** ui_priv.h 26 Oct 2002 13:06:41 -0000 1.1.1.1 --- ui_priv.h 31 Oct 2002 23:53:45 -0000 1.2 *************** *** 65,68 **** --- 65,71 ---- void scroll PROTO((event_t *ev, char *arg)); + #ifdef TB_H_INCLUDED + void set_display_area_tbar PROTO((tbar_id_t tbar_id)); + #endif void display_area_scroll PROTO((int dist)); void display_area_goto PROTO((int y)); |
From: <th...@us...> - 2002-10-31 23:53:49
|
Update of /cvsroot/ups/ups/lib/libx11wn In directory usw-pr-cvs1:/tmp/cvs-serv1737/lib/libx11wn Modified Files: wn.h wn_event.c wn_priv.h Log Message: Added support for wheel mice - the wn library now reports up to ten buttons, and there are new X resources to map button numbers to scrolling of the source window and/or display area. Index: wn.h =================================================================== RCS file: /cvsroot/ups/ups/lib/libx11wn/wn.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** wn.h 26 Oct 2002 13:01:50 -0000 1.1.1.1 --- wn.h 31 Oct 2002 23:53:45 -0000 1.2 *************** *** 377,393 **** */ typedef struct eventst { ! unsigned long ev_type; /* type of event */ ! char ev_flags; /* flags (e.g. which button went up or down) */ ! char ev_char; /* char for EV_KEY events */ ! short ev_x; /* mouse x coord */ ! short ev_y; /* mouse y coord */ ! short ev_xpos; /* x coord of event */ ! short ev_ypos; /* y coord of event */ ! short ev_width; /* width of event */ ! short ev_height; /* height of event */ ! short ev_buttons; /* mouse button and modifier state */ ! unsigned long ev_time; /* timestamp */ ! int ev_wn; /* window the event happened in */ ! int ev_fdmask; /* input fds mask for EV_OTHER_INPUT events */ } event_t; --- 377,393 ---- */ typedef struct eventst { ! unsigned long ev_type; /* type of event */ ! unsigned short ev_flags; /* flags (e.g. which button went up or down) */ ! char ev_char; /* char for EV_KEY events */ ! short ev_x; /* mouse x coord */ ! short ev_y; /* mouse y coord */ ! short ev_xpos; /* x coord of event */ ! short ev_ypos; /* y coord of event */ ! short ev_width; /* width of event */ ! short ev_height; /* height of event */ ! unsigned long ev_buttons;/* mouse button and modifier state */ ! unsigned long ev_time; /* timestamp */ ! int ev_wn; /* window the event happened in */ ! int ev_fdmask; /* input fds mask for EV_OTHER_INPUT events */ } event_t; *************** *** 423,426 **** --- 423,433 ---- #define B_MIDDLE 02 #define B_RIGHT 04 + #define B_BUTTON4 010 + #define B_BUTTON5 020 + #define B_BUTTON6 040 + #define B_BUTTON7 0100 + #define B_BUTTON8 0200 + #define B_BUTTON9 0400 + #define B_BUTTON10 01000 /* In an EV_KEY, EV_BUTTON_UP, EV_BUTTON_DOWN event, these bits are set *************** *** 438,448 **** * that are unlikely to cause conflicts. */ ! #define B_MULT_CLICKS 01400 ! #define B_CLICK_CNT(_ev_buttons) ((((ev_buttons)&B_MULT_CLICKS)>>8)+1) ! #define B_SHIFT_MASK 02000 /* Shift key pressed */ ! #define B_CONTROL_MASK 04000 /* Control key pressed */ ! #define B_ALT_MASK 010000 /* Alt key pressed */ ! #define EV_WAS_PUSHED_BACK 010 /* This event has was pushed back */ /* Event types. --- 445,456 ---- * that are unlikely to cause conflicts. */ ! #define B_MULT_CLICKS 014000 ! #define B_CLICK_SHIFT 11 ! #define B_CLICK_CNT(ev_buttons) ((((ev_buttons)&B_MULT_CLICKS)>>B_CLICK_SHIFT)+1) ! #define B_SHIFT_MASK 020000 /* Shift key pressed */ ! #define B_CONTROL_MASK 040000 /* Control key pressed */ ! #define B_ALT_MASK 0100000 /* Alt key pressed */ ! #define EV_WAS_PUSHED_BACK 02000 /* This event has was pushed back */ /* Event types. *************** *** 451,467 **** * than one of them is ever set. In an event mask they can be OR'ed together. */ ! #define EV_KEY 020 /* Keyboard key pressed */ ! #define EV_BUTTON_DOWN 040 /* Mouse button pressed */ ! #define EV_BUTTON_UP 0100 /* Mouse button released */ ! #define EV_MOUSE_MOVED 0200 /* Mouse moved (perhaps not really) */ ! #define EV_WINDOW_RESIZED 0400 /* Window changed size */ ! #define EV_WINDOW_EXPOSED 01000 /* Window exposed (needs repainting) */ ! #define EV_WINDOW_SELECTED 02000 /* User selected window */ ! #define EV_WINDOW_DESELECTED 04000 /* User deselected window */ ! #define EV_INTERRUPT 010000 /* Interrupt occured (*not* a resize) */ ! #define EV_OTHER_INPUT 020000 /* Input pending on other fds */ ! #define EV_SELECTION_REQUEST 040000 /* Selection requested */ ! #define EV_LOST_SELECTION 0100000 /* Selection lost */ ! #define EV_OTHER 0200000 /* Unknown event type */ /* Combinations of events --- 459,475 ---- * than one of them is ever set. In an event mask they can be OR'ed together. */ ! #define EV_KEY 0200000 /* Keyboard key pressed */ ! #define EV_BUTTON_DOWN 0400000 /* Mouse button pressed */ ! #define EV_BUTTON_UP 01000000 /* Mouse button released */ ! #define EV_MOUSE_MOVED 02000000 /* Mouse moved (perhaps not really) */ ! #define EV_WINDOW_RESIZED 04000000 /* Window changed size */ ! #define EV_WINDOW_EXPOSED 010000000 /* Window exposed (needs repainting) */ ! #define EV_WINDOW_SELECTED 020000000 /* User selected window */ ! #define EV_WINDOW_DESELECTED 040000000 /* User deselected window */ ! #define EV_INTERRUPT 0100000000 /* Interrupt occured (*not* a resize) */ ! #define EV_OTHER_INPUT 0200000000 /* Input pending on other fds */ ! #define EV_SELECTION_REQUEST 0400000000 /* Selection requested */ ! #define EV_LOST_SELECTION 01000000000 /* Selection lost */ ! #define EV_OTHER 02000000000 /* Unknown event type */ /* Combinations of events Index: wn_event.c =================================================================== RCS file: /cvsroot/ups/ups/lib/libx11wn/wn_event.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** wn_event.c 26 Oct 2002 13:01:54 -0000 1.1.1.1 --- wn_event.c 31 Oct 2002 23:53:45 -0000 1.2 *************** *** 746,750 **** lastButtonsFlags = ev->ev_flags; ! ev->ev_buttons |= (numClicks<<8); break; case KeyPress: --- 746,750 ---- lastButtonsFlags = ev->ev_flags; ! ev->ev_buttons |= (numClicks<<B_CLICK_SHIFT); break; case KeyPress: *************** *** 832,835 **** --- 832,839 ---- if (xbstate & Button3Mask) buttons |= B_RIGHT; + if (xbstate & Button4Mask) + buttons |= B_BUTTON4; + if (xbstate & Button5Mask) + buttons |= B_BUTTON5; modflags = 0; *************** *** 850,853 **** --- 854,878 ---- case Button3: flipped = B_RIGHT; + break; + case Button4: + flipped = B_BUTTON4; + break; + case Button5: + flipped = B_BUTTON5; + break; + case 6: + flipped = B_BUTTON6; + break; + case 7: + flipped = B_BUTTON7; + break; + case 8: + flipped = B_BUTTON8; + break; + case 9: + flipped = B_BUTTON9; + break; + case 10: + flipped = B_BUTTON10; break; default: Index: wn_priv.h =================================================================== RCS file: /cvsroot/ups/ups/lib/libx11wn/wn_priv.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** wn_priv.h 26 Oct 2002 13:01:51 -0000 1.1.1.1 --- wn_priv.h 31 Oct 2002 23:53:46 -0000 1.2 *************** *** 161,165 **** short bw_inmode; short bw_upd_level; ! short bw_winch_event; short bw_had_lost_selection_event; short bw_mouse_x; --- 161,165 ---- short bw_inmode; short bw_upd_level; ! unsigned long bw_winch_event; short bw_had_lost_selection_event; short bw_mouse_x; |
From: <th...@us...> - 2002-10-31 23:39:48
|
Update of /cvsroot/ups/ups/ups In directory usw-pr-cvs1:/tmp/cvs-serv30276 Modified Files: ao_ptrace.c ao_pt_regs.c ao_pt_uarea.c ao_target.c obj_stack.c va_menu.c Log Message: Include hash.h from libmtrprog as ao_syms.h now needs it. Index: ao_ptrace.c =================================================================== RCS file: /cvsroot/ups/ups/ups/ao_ptrace.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** ao_ptrace.c 26 Oct 2002 13:05:02 -0000 1.1.1.1 --- ao_ptrace.c 31 Oct 2002 23:39:43 -0000 1.2 *************** *** 47,50 **** --- 47,51 ---- #include <local/ukcprog.h> #include <mtrprog/utils.h> + #include <mtrprog/hash.h> #include <local/arg.h> #include <errno.h> Index: ao_pt_regs.c =================================================================== RCS file: /cvsroot/ups/ups/ups/ao_pt_regs.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** ao_pt_regs.c 26 Oct 2002 13:05:02 -0000 1.1.1.1 --- ao_pt_regs.c 31 Oct 2002 23:39:43 -0000 1.2 *************** *** 46,49 **** --- 46,50 ---- #include <local/ukcprog.h> #include <mtrprog/utils.h> + #include <mtrprog/hash.h> #include <local/arg.h> Index: ao_pt_uarea.c =================================================================== RCS file: /cvsroot/ups/ups/ups/ao_pt_uarea.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** ao_pt_uarea.c 26 Oct 2002 13:05:03 -0000 1.1.1.1 --- ao_pt_uarea.c 31 Oct 2002 23:39:43 -0000 1.2 *************** *** 93,96 **** --- 93,97 ---- #include <local/ukcprog.h> #include <mtrprog/utils.h> + #include <mtrprog/hash.h> #include <local/arg.h> Index: ao_target.c =================================================================== RCS file: /cvsroot/ups/ups/ups/ao_target.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** ao_target.c 26 Oct 2002 13:05:00 -0000 1.1.1.1 --- ao_target.c 31 Oct 2002 23:39:44 -0000 1.2 *************** *** 57,60 **** --- 57,61 ---- #include <local/ukcprog.h> #include <mtrprog/utils.h> + #include <mtrprog/hash.h> #include "ups.h" Index: obj_stack.c =================================================================== RCS file: /cvsroot/ups/ups/ups/obj_stack.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** obj_stack.c 26 Oct 2002 13:05:45 -0000 1.1.1.1 --- obj_stack.c 31 Oct 2002 23:39:44 -0000 1.2 *************** *** 37,40 **** --- 37,41 ---- #include <local/ukcprog.h> #include <mtrprog/alloc.h> + #include <mtrprog/hash.h> #include <local/wn.h> Index: va_menu.c =================================================================== RCS file: /cvsroot/ups/ups/ups/va_menu.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** va_menu.c 26 Oct 2002 13:05:36 -0000 1.1.1.1 --- va_menu.c 31 Oct 2002 23:39:44 -0000 1.2 *************** *** 35,38 **** --- 35,39 ---- #include <local/ukcprog.h> #include <mtrprog/alloc.h> + #include <mtrprog/hash.h> #include "objtypes.h" |
From: <th...@us...> - 2002-10-31 23:37:53
|
Update of /cvsroot/ups/ups/lib/libobj In directory usw-pr-cvs1:/tmp/cvs-serv29654 Modified Files: o_mkobj.c o_mkobj.h Log Message: Renamed hash_stats to obj_hash_stats to avoid clash with libmtrprog. Index: o_mkobj.c =================================================================== RCS file: /cvsroot/ups/ups/lib/libobj/o_mkobj.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** o_mkobj.c 26 Oct 2002 13:02:30 -0000 1.1.1.1 --- o_mkobj.c 31 Oct 2002 23:37:50 -0000 1.2 *************** *** 322,326 **** */ void ! hash_stats() { int table[MAXLIST+1]; --- 322,326 ---- */ void ! obj_hash_stats() { int table[MAXLIST+1]; Index: o_mkobj.h =================================================================== RCS file: /cvsroot/ups/ups/lib/libobj/o_mkobj.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** o_mkobj.h 26 Oct 2002 13:02:32 -0000 1.1.1.1 --- o_mkobj.h 31 Oct 2002 23:37:50 -0000 1.2 *************** *** 31,35 **** void make_obj PROTO((struct objst *par, struct objst *next, struct objst *prev, objid_t code, int type)); void rm_obj_tree PROTO((struct objst *obj, int kill_children, int kill_parent, int kill_descendents)); ! void hash_stats PROTO((void)); struct fvalst *new_fval PROTO((void)); struct fvalst *new_fval_list PROTO((int nfields)); --- 31,35 ---- void make_obj PROTO((struct objst *par, struct objst *next, struct objst *prev, objid_t code, int type)); void rm_obj_tree PROTO((struct objst *obj, int kill_children, int kill_parent, int kill_descendents)); ! void obj_hash_stats PROTO((void)); struct fvalst *new_fval PROTO((void)); struct fvalst *new_fval_list PROTO((int nfields)); |
Update of /cvsroot/ups/ups/ups In directory usw-pr-cvs1:/tmp/cvs-serv11766 Modified Files: Makefile.in ao_dwfsyms.c ao_dwfsyms.h ao_dwftype.c ao_dwftype.h ao_dwfutil.c Added Files: ao_dwfname.c ao_dwfname.h Log Message: Gather names of C++ class definitions when skimming symbol tables so we can display definitions when DWARF only has a declaration. Command line option -[no]findtypes controls this, defaults (in ao_dwfname.c) to being turned on. --- NEW FILE: ao_dwfname.c --- /* ao_dwfname.c - functions for the typename list */ /* Copyright 2002 Ian Edwards * All Rights Reserved. * * This file is part of UPS. * * UPS is free software; you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * UPS is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License along * with UPS; if not, write to the Free Software Foundation, Inc., 59 Temple * Place, Suite 330, Boston, MA 02111-1307 USA */ char ups_ao_dwfname_c_rcsid[] = "$Id: ao_dwfname.c,v 1.1 2002/10/31 17:47:50 ianedwards Exp $"; #include <mtrprog/ifdefs.h> #if WANT_DWARF #include <local/ukcprog.h> #include <mtrprog/utils.h> #include <mtrprog/hash.h> #include <limits.h> #include "ups.h" #include "symtab.h" #include "ci.h" #include "st.h" #include "ao_dwarf.h" #include "ao_syms.h" #include "ao_dwftype.h" #include "ao_dwfname.h" #include "ao_dwfutil.h" /* * Given a type declaration find its definition. * * A class/struct/union/enum type may only have a declaration in a CU and * no definition. In UPS this will show up as e.g. "undefined struct xyz". * With C++ classes users really do want to be able to look at the members. * As there is no DWARF info to link the declaration back to the definition * in a different CU we have to go by the type (i.e. class) name. * * Where this occurs it seemed easiest just to go off and do the types in the * 'other' CU rather than extending the lookup/save/fixup done for each CU. * * We hope that duplicate names just means that the definition appears in * more than one CU. This is not necessarily so, but preferring a definition * in the current 'stf' before any other helps. */ type_t * dwf_find_alt_type_defn(dbg, die, stf) Dwarf_Debug dbg; Dwarf_Die die; stf_t *stf; { Dwarf_Die spec_die; char *name; typename_t *tn; symtab_t *st; alloc_pool_t *ap; if (!find_types_by_name()) return (type_t *)NULL; /* * This DIE is a definition, return NULL so caller will * process it. */ if (! dwf_has_attribute(dbg, die, DW_AT_declaration)) return (type_t *)NULL; st = stf->stf_symtab; ap = st->st_apool; /* * Do we have a 'typename' entry for this type ? */ spec_die = dwf_find_spec_die(dbg, die); if (! dwf_has_attribute(dbg, spec_die, DW_AT_name)) return (type_t *)NULL; name = dwf_get_string(dbg, ap, spec_die, DW_AT_name); if ((tn = dwf_find_typename(st, stf, name)) == NULL) return (type_t *)NULL; /* * Load the types of the other CU. */ if (stf != tn->tn_stf) dwf_do_cu_types(st, tn->tn_stf); /* * Look for the type in the other CU. */ return dwf_find_type(tn->tn_stf, tn->tn_offset); } /* * Make a 'type name' and save it. */ typename_t * dwf_save_typename(dbg, die, st, stf) Dwarf_Debug dbg; Dwarf_Die die; symtab_t *st; stf_t *stf; { typename_t *tn, *prev_tn; hashtab_t *ht; char *name; alloc_pool_t *ap; if ((ht = AO_STDATA(st)->st_type_names) == NULL) return (typename_t *)NULL; if (! dwf_has_attribute(dbg, die, DW_AT_name)) return (typename_t *)NULL; ap = st->st_apool; /* * If type already defined elsewhere then add to list on '->tn_next'. */ name = dwf_get_string(dbg, ap, die, DW_AT_name); if ((prev_tn = dwf_find_typename(st, stf, name)) != NULL) { if (prev_tn->tn_stf == stf) { errf("Already saved typename %s in this CU <%ld>", name, (long)stf->stf_cu_hdr_offset); return prev_tn; } } /* * dwarfTODO: perhaps dwf_offset_of_die() would be better ? */ tn = (typename_t *)alloc(ap, sizeof(typename_t)); tn->tn_offset = dwf_cu_offset_of_die (dbg, die); tn->tn_name = dwf_get_string(dbg, ap, die, DW_AT_name); tn->tn_stf = stf; if (prev_tn) { tn->tn_next = prev_tn->tn_next; prev_tn->tn_next = tn; } else { tn->tn_next = NULL; hash_enter(ht, name, strlen(name), (hash_value_t)tn); } return tn; } /* * Find a 'typename' given a name. Prefer the current 'stf' to others. */ typename_t * dwf_find_typename(st, stf, name) symtab_t *st; stf_t *stf; const char *name; { hashtab_t *ht; typename_t *tn, *tn2; if ((ht = AO_STDATA(st)->st_type_names) == NULL) return (typename_t *)NULL; if ((tn = (typename_t *)hash_lookup(ht, name, strlen(name))) == NULL) return tn; tn2 = tn; while (tn2 != NULL) { if (tn2->tn_stf == stf) return tn2; tn2 = tn2->tn_next; } return tn; } /* * Query and optionally set 'resolve_by_name' flag. */ static int dwf_types_by_name(int which) { static int resolve_by_name = TRUE; if (which == 0) resolve_by_name = FALSE; else if (which == 1) resolve_by_name = TRUE; return resolve_by_name; } /* * Return value of 'resolve_by_name' flag. */ int find_types_by_name() { return dwf_types_by_name(-1); } /* * Set the 'resolve_by_name' flag FALSE if 'val' is zero, otherwise TRUE */ int set_find_types_by_name(int val) { return dwf_types_by_name(val ? 1 : 0); } #endif /* WANT_DWARF */ --- NEW FILE: ao_dwfname.h --- /* ao_dwfname.h - routine definitions for ao_dwfname.c */ /* Copyright (C) 2002 Ian Edwards * All Rights Reserved. * * This file is part of UPS. * * UPS is free software; you can redistribute it and/or modify it under * the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * UPS is distributed in the hope that it will be useful, but WITHOUT ANY * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more * details. * * You should have received a copy of the GNU General Public License along * with UPS; if not, write to the Free Software Foundation, Inc., 59 Temple * Place, Suite 330, Boston, MA 02111-1307 USA */ /* $Id: ao_dwfname.h,v 1.1 2002/10/31 17:47:51 ianedwards Exp $ */ #if WANT_DWARF int find_types_by_name PROTO((void)); type_t * dwf_find_alt_type_defn PROTO((Dwarf_Debug dbg, Dwarf_Die die, stf_t *stf)); typename_t * dwf_save_typename PROTO((Dwarf_Debug dbg, Dwarf_Die die, symtab_t *st, stf_t *stf)); typename_t * dwf_find_typename PROTO((symtab_t *st, stf_t *stf, const char *name)); #endif /* WANT_DWARF */ Index: Makefile.in =================================================================== RCS file: /cvsroot/ups/ups/ups/Makefile.in,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** Makefile.in 26 Oct 2002 13:06:44 -0000 1.1.1.1 --- Makefile.in 31 Oct 2002 17:47:49 -0000 1.2 *************** *** 124,128 **** ao_elfread.o ao_elfsym.o ao_elflib.o ao_aflist.o \ ao_dwarf.o ao_dwfsyms.o ao_dwftext.o ao_dwftype.o ao_dwfutil.o \ ! ao_te.o ao_text.o ao_stack.o ${ASOBJS} AOSRCS = ao_target.c ao_procfs.c ao_core.c \ ao_ptrace.c ao_pt_regs.c ao_pt_uarea.c \ --- 124,128 ---- ao_elfread.o ao_elfsym.o ao_elflib.o ao_aflist.o \ ao_dwarf.o ao_dwfsyms.o ao_dwftext.o ao_dwftype.o ao_dwfutil.o \ ! ao_dwfname.o ao_te.o ao_text.o ao_stack.o ${ASOBJS} AOSRCS = ao_target.c ao_procfs.c ao_core.c \ ao_ptrace.c ao_pt_regs.c ao_pt_uarea.c \ *************** *** 131,135 **** ao_elfread.c ao_elfsym.c ao_elflib.c ao_aflist.c \ ao_dwarf.c ao_dwfsyms.c ao_dwftext.c ao_dwftype.c ao_dwfutil.c \ ! ao_te.c ao_text.c ao_stack.c ${ASSRCS} GDB_OBJS = gd_gdb.o gd_ups.o tops-native.o gd_main.o --- 131,135 ---- ao_elfread.c ao_elfsym.c ao_elflib.c ao_aflist.c \ ao_dwarf.c ao_dwfsyms.c ao_dwftext.c ao_dwftype.c ao_dwfutil.c \ ! ao_dwfname.c ao_te.c ao_text.c ao_stack.c ${ASSRCS} GDB_OBJS = gd_gdb.o gd_ups.o tops-native.o gd_main.o *************** *** 200,205 **** CURSORS = cu_dead cu_dead_mask cu_display cu_display_mask cu_drag_box cu_drag_box_mask cu_menu cu_menu_mask cu_sbar cu_sbar_mask cu_sc_pressed cu_sc_pressed_mask cu_scroll_down cu_scroll_down_mask cu_scroll_up cu_scroll_up_mask cu_wait cu_wait_mask cu_line cu_line_mask cu_dragbox cu_dragbox_mask ! HDRS = ao.h ao_aflist.h ao_aout.h ao_asm.h ao_core.h \ ! ao_dwarf.h ao_dwfsyms.h ao_dwftext.h ao_dwftype.h ao_dwfutil.h \ ao_elfcore.h ao_elflib.h ao_elfpriv.h ao_elfread.h ao_elfsym.h \ ao_execinfo.h ao_ifdefs.h ao_procfs.h ao_ptrace.h ao_shlib.h \ --- 200,205 ---- CURSORS = cu_dead cu_dead_mask cu_display cu_display_mask cu_drag_box cu_drag_box_mask cu_menu cu_menu_mask cu_sbar cu_sbar_mask cu_sc_pressed cu_sc_pressed_mask cu_scroll_down cu_scroll_down_mask cu_scroll_up cu_scroll_up_mask cu_wait cu_wait_mask cu_line cu_line_mask cu_dragbox cu_dragbox_mask ! HDRS = ao.h ao_aflist.h ao_aout.h ao_asm.h ao_core.h ao_dwarf.h \ ! ao_dwfname.h ao_dwfsyms.h ao_dwftext.h ao_dwftype.h ao_dwfutil.h \ ao_elfcore.h ao_elflib.h ao_elfpriv.h ao_elfread.h ao_elfsym.h \ ao_execinfo.h ao_ifdefs.h ao_procfs.h ao_ptrace.h ao_shlib.h \ *************** *** 551,555 **** ${CCLINE}ao_dwarf.c ao_dwfsyms.o: develhdrs/mtrprog/ifdefs.h ao_dwfsyms.c \ ! ao_dwarf.h ao_dwfsyms.h ao_dwftype.h ao_dwfutil.h ups.h symtab.h ci.h st.h \ ao_syms.h ao_symscan.h ${CCLINE}ao_dwfsyms.c --- 551,555 ---- ${CCLINE}ao_dwarf.c ao_dwfsyms.o: develhdrs/mtrprog/ifdefs.h ao_dwfsyms.c \ ! ao_dwarf.h ao_dwfsyms.h ao_dwfname.h ao_dwftype.h ao_dwfutil.h ups.h symtab.h ci.h st.h \ ao_syms.h ao_symscan.h ${CCLINE}ao_dwfsyms.c *************** *** 558,563 **** ao_syms.h ao_symscan.h ${CCLINE}ao_dwftext.c ao_dwftype.o: develhdrs/mtrprog/ifdefs.h ao_dwftype.c \ ! ao_dwarf.h ao_dwftype.h ups.h symtab.h ci.h st.h \ ao_syms.h ${CCLINE}ao_dwftype.c --- 558,567 ---- ao_syms.h ao_symscan.h ${CCLINE}ao_dwftext.c + ao_dwfname.o: develhdrs/mtrprog/ifdefs.h ao_dwfname.c \ + ao_dwarf.h ao_dwfname.h ao_dwftype.h ao_dwfutil.h ups.h symtab.h ci.h st.h \ + ao_syms.h + ${CCLINE}ao_dwfname.c ao_dwftype.o: develhdrs/mtrprog/ifdefs.h ao_dwftype.c \ ! ao_dwarf.h ao_dwfname.h ao_dwftype.h ao_dwfutil.h ups.h symtab.h ci.h st.h \ ao_syms.h ${CCLINE}ao_dwftype.c Index: ao_dwfsyms.c =================================================================== RCS file: /cvsroot/ups/ups/ups/ao_dwfsyms.c,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** ao_dwfsyms.c 31 Oct 2002 16:21:48 -0000 1.7 --- ao_dwfsyms.c 31 Oct 2002 17:47:52 -0000 1.8 *************** *** 39,42 **** --- 39,43 ---- #include "ao_syms.h" #include "ao_symscan.h" + #include "ao_dwfname.h" #include "ao_dwfsyms.h" #include "ao_dwftype.h" *************** *** 445,448 **** --- 446,451 ---- alloc_pool_t *ap; dtype_t *dt; + type_t *type; + typename_t *tn; bool is_static; char *name; *************** *** 472,476 **** } - /* Offset in CU is very useful when debugging. */ rel_offset = (long)dwf_cu_offset_of_die(dbg, die); --- 475,478 ---- *************** *** 562,566 **** case DW_TAG_base_type: if (dw_what & DWL_BASE_TYPES) { - type_t *type; typecode_t typecode; int nbytes; --- 564,567 ---- *************** *** 700,703 **** --- 701,711 ---- v = dwf_make_variable(dbg, die, ap, stf, &(ae->ae_aggr_members), dw_level, hint); + if (dwf_has_attribute(dbg, die, DW_AT_artificial)) { + /* + * GCC virtual function table ? + */ + if (v->va_name && (strncmp (v->va_name, "_vptr$", 6) == 0)) + v->va_flags = VA_VTBLPTR; + } } break; *************** *** 708,711 **** --- 716,720 ---- /* * A base class the current class inherits from. + * Base class name set in dwf_finish_class(). */ ae = parent_dt->dt_type->ty_aggr_or_enum; *************** *** 713,717 **** dw_level, CL_MOS); v->va_flags = VA_BASECLASS; - ci_make_baseclass_name(v); } break; --- 722,725 ---- *************** *** 732,781 **** * GCC seems to use DW_TAG_structure_type :-( */ ! if (dw_what & DWL_ANY_TYPES) { ! typecode_t typecode; ! typecode = TY_STRUCT; ! dw_what_next = DWL_STRUCT_MEMBERS | DWL_CLASS_MEMBERS; ! descend = TRUE; ! dt = dwf_make_ae_type(dbg, die, ap, stf, typecode, parent_bl); } break; - case DW_TAG_enumeration_type: - case DW_TAG_structure_type: case DW_TAG_union_type: if (dw_what & DWL_ANY_TYPES) { - typecode_t typecode; - /* ! * Aggregate type (class/enum/struct/union) ! * ! * Assume we have a definition; dwf_finish_aggregate() ! * will change the typecode if it turns out to have been ! * just a declaration. */ ! if (tag == DW_TAG_enumeration_type) ! typecode = TY_ENUM; ! else if (tag == DW_TAG_structure_type) ! typecode = TY_STRUCT; ! else if (tag == DW_TAG_union_type) ! typecode = TY_UNION; /* * Determine which child DIEs we need to process. - * For C++ the "struct" may really be a "class", - * and also contain nested types. */ ! if (tag == DW_TAG_enumeration_type) ! dw_what_next = DWL_ENUM_MEMBERS; ! else if (tag == DW_TAG_union_type) ! dw_what_next = DWL_STRUCT_MEMBERS; ! else if (stf->stf_language == LANG_CC) ! dw_what_next = DWL_STRUCT_MEMBERS | DWL_CLASS_MEMBERS | DWL_ANY_TYPES; ! else ! dw_what_next = DWL_STRUCT_MEMBERS; descend = TRUE; ! dt = dwf_make_ae_type(dbg, die, ap, stf, typecode, parent_bl); } break; --- 740,830 ---- * GCC seems to use DW_TAG_structure_type :-( */ ! /* DROPTHROUGH */ ! case DW_TAG_structure_type: ! if (dw_what & DWL_SKIM_TYPES) { ! /* ! * If it looks like a definition, save it. ! */ ! if (! dwf_has_attribute(dbg, die, DW_AT_declaration)) ! dwf_save_typename(dbg, die, st, stf); ! ! } else if (dw_what & DWL_ANY_TYPES) { ! /* ! * Structure type (class/struct) ! * Is it a definition or just a declaration ? ! */ ! if (dwf_has_attribute(dbg, die, DW_AT_declaration)) { ! /* ! * Just a declaration - check to see if we have seen a ! * definition elsewhere. ! */ ! if ((type = dwf_find_alt_type_defn(dbg, die, stf)) == NULL) { ! /* ! * No definition - make an 'undefined struct' ! */ ! dt = dwf_make_struct_type(dbg, die, ap, stf, TY_U_STRUCT, parent_bl); ! } else { ! /* ! * Have a definition - use it. ! */ ! dt = dwf_make_dtype(dbg, die, ap, stf, DT_IS_TYPE, NULL, type); ! } ! ! /* ! * Determine which child DIEs we need to process. ! * For C++ the "struct" may really be a class, ! * and contain type definitions, which can get referenced ! * from a higher level, so we have to descend :-( ! */ ! if (stf->stf_language == LANG_CC) { ! dw_what_next = DWL_ANY_TYPES; ! descend = TRUE; ! } ! ! } else { ! /* ! * A definition - dwf_finish_aggregate() will change ! * the typecode if it turns out to have no members. ! */ ! ! /* ! * Determine which child DIEs we need to process. ! * For C++ the "struct" may really be a "class", ! * and contain type definitions. ! */ ! dw_what_next = DWL_STRUCT_MEMBERS; ! if (stf->stf_language == LANG_CC) ! dw_what_next |= DWL_CLASS_MEMBERS | DWL_ANY_TYPES; ! descend = TRUE; ! ! dt = dwf_make_struct_type(dbg, die, ap, stf, TY_STRUCT, parent_bl); ! } } break; case DW_TAG_union_type: if (dw_what & DWL_ANY_TYPES) { /* ! * Union type. ! * Determine which child DIEs we need to process. */ ! dw_what_next = DWL_STRUCT_MEMBERS; ! descend = TRUE; + dt = dwf_make_ae_type(dbg, die, ap, stf, TY_UNION, parent_bl); + } + break; + + case DW_TAG_enumeration_type: + if (dw_what & DWL_ANY_TYPES) { /* + * Enumerated type. * Determine which child DIEs we need to process. */ ! dw_what_next = DWL_ENUM_MEMBERS; descend = TRUE; ! dt = dwf_make_ae_type(dbg, die, ap, stf, TY_ENUM, parent_bl); } break; *************** *** 855,862 **** /* ! * Done ? */ if (stf->stf_fil->fi_flags & FI_DONE_TYPES) return; /* --- 904,914 ---- /* ! * Already done or being done ? */ if (stf->stf_fil->fi_flags & FI_DONE_TYPES) return; + if (stf->stf_fil->fi_flags & FI_DOING_TYPES) + return; + stf->stf_fil->fi_flags |= FI_DOING_TYPES; /* *************** *** 874,877 **** --- 926,930 ---- (dtype_t *)NULL, cu_die, dw_what, dw_level, 0); + stf->stf_fil->fi_flags &= ~FI_DOING_TYPES; stf->stf_fil->fi_flags |= FI_DONE_TYPES; #if WANT_DEBUG *************** *** 994,998 **** --- 1047,1058 ---- */ dw_level = 1; /* Follow 'dwarfdump' comvention. */ + + /* + * Gather functions, global and file-scope variable names, + * and, for C++, class names. + */ dw_what = DWL_TOP_FUNCS | DWL_SKIM_VARS; + if ((stf->stf_language == LANG_CC) && find_types_by_name()) + dw_what |= DWL_SKIM_TYPES; dwf_load_from_die(st, stf, p_flist, (func_t *)NULL, *************** *** 1177,1180 **** --- 1237,1242 ---- stf->stf_objpath_hint = comp_dir; st->st_sfiles = ao_make_fil(stf, rootblock, comp_dir, st->st_sfiles); + if ((*cu_name != '\0') && (ast->st_type_names == NULL)) + ast->st_type_names = hash_create_tab(ap, 1000); stf->stf_fil = st->st_sfiles; Index: ao_dwfsyms.h =================================================================== RCS file: /cvsroot/ups/ups/ups/ao_dwfsyms.h,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ao_dwfsyms.h 28 Oct 2002 10:04:24 -0000 1.2 --- ao_dwfsyms.h 31 Oct 2002 17:47:53 -0000 1.3 *************** *** 37,41 **** #define DWL_GLOBAL_TYPES 0x000200 /* File scope types. */ #define DWL_LOCAL_TYPES 0x000400 /* Local types. */ ! #define DWL_SKIM_CLASSES 0x000800 /* Just save names. */ #define DWL_LEXICAL_BLOCKS 0x001000 /* Lexical blocks. */ #define DWL_SUBRANGES 0x002000 /* Subranges, e.g. array dimensions. */ --- 37,41 ---- #define DWL_GLOBAL_TYPES 0x000200 /* File scope types. */ #define DWL_LOCAL_TYPES 0x000400 /* Local types. */ ! #define DWL_SKIM_TYPES 0x000800 /* Just save names. */ #define DWL_LEXICAL_BLOCKS 0x001000 /* Lexical blocks. */ #define DWL_SUBRANGES 0x002000 /* Subranges, e.g. array dimensions. */ Index: ao_dwftype.c =================================================================== RCS file: /cvsroot/ups/ups/ups/ao_dwftype.c,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** ao_dwftype.c 31 Oct 2002 16:21:50 -0000 1.5 --- ao_dwftype.c 31 Oct 2002 17:47:53 -0000 1.6 *************** *** 44,47 **** --- 44,48 ---- #include "ao_dwarf.h" #include "ao_syms.h" + #include "ao_dwfname.h" #include "ao_dwftype.h" #include "ao_dwfutil.h" *************** *** 660,664 **** /* ! * Make a 'type_t' for an aggregate type (struct/union/enum). * Also creates the corresponding 'dtype_t'. */ --- 661,681 ---- /* ! * Make a 'type_t' for a class/struct type. ! * Also creates the corresponding 'dtype_t'. ! */ ! dtype_t * ! dwf_make_struct_type(dbg, die, ap, stf, typecode, bl) ! Dwarf_Debug dbg; ! Dwarf_Die die; ! stf_t *stf; ! alloc_pool_t *ap; ! typecode_t typecode; ! block_t *bl; ! { ! return dwf_make_ae_type(dbg, die, ap, stf, typecode, bl); ! } ! ! /* ! * Make a 'type_t' for an aggregate type (class/struct/union/enum). * Also creates the corresponding 'dtype_t'. */ *************** *** 701,704 **** --- 718,734 ---- ae->ae_lexinfo = type->ty_lexinfo; + /* + * Finish off undefined enum/struct/union here as will not be calling + * dwf_finish_aggregate(). + */ + if ((typecode == TY_U_STRUCT) || (typecode == TY_U_UNION) || (typecode == TY_U_ENUM)) { + ae->ae_size = type->ty_size; + ae->ae_alignment = -1; + ae->ae_is_complete = AE_COMPLETE; + } + + /* + * Link it in. + */ ae->ae_next = bl->bl_aggr_or_enum_defs; bl->bl_aggr_or_enum_defs = ae; *************** *** 867,870 **** --- 897,901 ---- * * Also sort out any dummy types we created. + * Also fix base class names in inherited classes. */ int *************** *** 902,905 **** --- 933,937 ---- errf("\bDWARF type incomplete, offset <%ld>", (long)dt->dt_base_offset); #if WANT_DEBUG + if (recursed == 0) fprintf(stderr, "level %d incomplete type, offset <%ld>\n", recursed, (long)dt->dt_base_offset); #endif *************** *** 985,988 **** --- 1017,1021 ---- /* * Look for struct/union to fix. + * Also does base class names. */ if ((dt->dt_base_offset == (off_t)0) && (dt->dt_is == DT_IS_TYPE)) { *************** *** 991,997 **** --- 1024,1043 ---- if (recursed == 0) { aggr_or_enum_def_t *ae = dest->ty_aggr_or_enum; + var_t *v; + /* + * Should be able to work out struct alignment. + */ ae->ae_alignment = dwf_guess_ae_alignment(ae); if (ae->ae_alignment <= 0) errf("No alignment on %s", ae->ae_tag ? ae->ae_tag : "NULL"); + /* + * Should now have base class name. + */ + v = ae->ae_aggr_members; + while (v != NULL) { + if ((v->va_flags & VA_BASECLASS) && (v->va_type != NULL)) + ci_make_baseclass_name(v); + v = v->va_next; + } } } *************** *** 1001,1004 **** --- 1047,1054 ---- } + #if WANT_DEBUG + if (recursed == 0) + fprintf(stderr, "recursed %d - %d incomplete type, %d bad type\n", recursed, incomplete, bad_dummy); + #endif return incomplete + bad_dummy; } *************** *** 1006,1011 **** /* * Finish up an aggregate type we have just got the members of. - * - * dwarfTODO: should 'undefined' structure be marked AE_COMPLETE ? */ void --- 1056,1059 ---- *************** *** 1075,1083 **** /* * Fix class members. ! * Should now have base class name. */ v = ae->ae_aggr_members; while (v != NULL) { ! if (v->va_flags & VA_BASECLASS) ci_make_baseclass_name(v); v = v->va_next; --- 1123,1131 ---- /* * Fix class members. ! * If possible set base class name. */ v = ae->ae_aggr_members; while (v != NULL) { ! if ((v->va_flags & VA_BASECLASS) && (v->va_type != NULL)) ci_make_baseclass_name(v); v = v->va_next; Index: ao_dwftype.h =================================================================== RCS file: /cvsroot/ups/ups/ups/ao_dwftype.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ao_dwftype.h 30 Oct 2002 12:52:21 -0000 1.3 --- ao_dwftype.h 31 Oct 2002 17:47:54 -0000 1.4 *************** *** 46,49 **** --- 46,52 ---- alloc_pool_t *ap, stf_t *stf, typecode_t typecode)); + dtype_t * dwf_make_struct_type PROTO((Dwarf_Debug dbg, Dwarf_Die die, + alloc_pool_t *ap, stf_t *stf, + typecode_t typecode, block_t *bl)); dtype_t * dwf_make_ae_type PROTO((Dwarf_Debug dbg, Dwarf_Die die, alloc_pool_t *ap, stf_t *stf, Index: ao_dwfutil.c =================================================================== RCS file: /cvsroot/ups/ups/ups/ao_dwfutil.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ao_dwfutil.c 31 Oct 2002 16:21:51 -0000 1.3 --- ao_dwfutil.c 31 Oct 2002 17:47:55 -0000 1.4 *************** *** 111,115 **** * * 'cu_die' is the compilation unit DIE ! * See .../lib/libdwarf/dwarf.h */ language_t --- 111,116 ---- * * 'cu_die' is the compilation unit DIE ! * See .../lib/libdwarf/dwarf.h for list of languages. ! * dwarfTODO: environment variable UPS_LANGUAGE ? */ language_t *************** *** 143,146 **** --- 144,148 ---- * * 'cu_die' is the compilation unit DIE + * dwarfTODO: environment variable UPS_LANGUAGE ? */ Compiler_type *************** *** 156,159 **** --- 158,162 ---- /* * dwarfTODO: find out other values of 'producer' + * dwarfTODO: if used C++ on a C file may want to change language */ if (strncmp (producer, "GNU C ", 6) == 0) |
From: <th...@us...> - 2002-10-31 16:21:57
|
Update of /cvsroot/ups/ups/ups In directory usw-pr-cvs1:/tmp/cvs-serv19345 Modified Files: ao_dwfsyms.c ao_dwftext.c ao_dwftype.c ao_dwfutil.c Log Message: The DWARF code needs to include hash.h as well now that ao_syms.h needs it. Index: ao_dwfsyms.c =================================================================== RCS file: /cvsroot/ups/ups/ups/ao_dwfsyms.c,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** ao_dwfsyms.c 30 Oct 2002 12:52:20 -0000 1.6 --- ao_dwfsyms.c 31 Oct 2002 16:21:48 -0000 1.7 *************** *** 29,32 **** --- 29,33 ---- #include <local/ukcprog.h> #include <mtrprog/utils.h> + #include <mtrprog/hash.h> #include <limits.h> Index: ao_dwftext.c =================================================================== RCS file: /cvsroot/ups/ups/ups/ao_dwftext.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ao_dwftext.c 28 Oct 2002 10:04:24 -0000 1.2 --- ao_dwftext.c 31 Oct 2002 16:21:50 -0000 1.3 *************** *** 29,32 **** --- 29,33 ---- #include <local/ukcprog.h> #include <mtrprog/utils.h> + #include <mtrprog/hash.h> #include <local/wn.h> Index: ao_dwftype.c =================================================================== RCS file: /cvsroot/ups/ups/ups/ao_dwftype.c,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ao_dwftype.c 30 Oct 2002 12:52:21 -0000 1.4 --- ao_dwftype.c 31 Oct 2002 16:21:50 -0000 1.5 *************** *** 35,38 **** --- 35,39 ---- #include <local/ukcprog.h> #include <mtrprog/utils.h> + #include <mtrprog/hash.h> #include <limits.h> Index: ao_dwfutil.c =================================================================== RCS file: /cvsroot/ups/ups/ups/ao_dwfutil.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ao_dwfutil.c 28 Oct 2002 10:04:24 -0000 1.2 --- ao_dwfutil.c 31 Oct 2002 16:21:51 -0000 1.3 *************** *** 29,32 **** --- 29,33 ---- #include <local/ukcprog.h> #include <mtrprog/utils.h> + #include <mtrprog/hash.h> #include <limits.h> |
From: <ian...@us...> - 2002-10-31 15:36:13
|
Update of /cvsroot/ups/ups/ups In directory usw-pr-cvs1:/tmp/cvs-serv24353 Modified Files: ao_elfsym.c Log Message: whoops - undo unwanted change to 1.2 Index: ao_elfsym.c =================================================================== RCS file: /cvsroot/ups/ups/ups/ao_elfsym.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ao_elfsym.c 31 Oct 2002 15:20:31 -0000 1.2 --- ao_elfsym.c 31 Oct 2002 15:36:10 -0000 1.3 *************** *** 634,647 **** if ( langString ) { - #if 1 - if (langString < nextopt || nextopt==NULL) - { - /* Treat C put through a C++ compiler as C++ */ - compiler_type = CT_CC; - if (language && - ((*language == LANG_UNKNOWN) || (*language == LANG_C))) - *language = LANG_CC; - } - #else if (langString < nextopt || nextopt==NULL) { --- 634,637 ---- *************** *** 650,654 **** *language = LANG_CC; } - #endif } else { --- 640,643 ---- |
Update of /cvsroot/ups/ups/ups In directory usw-pr-cvs1:/tmp/cvs-serv13758 Modified Files: ao_elfsym.c ao_text.c ao_symscan.c ao_stack.c ao_elflib.c ao_symcb.c ao_symparse.c ao_symload.c ao_symread.c st_debug.c Log Message: Change to ao_syms.h (1.2) means we need to include <mtrprog/hash.h>. Index: ao_elfsym.c =================================================================== RCS file: /cvsroot/ups/ups/ups/ao_elfsym.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** ao_elfsym.c 26 Oct 2002 13:05:12 -0000 1.1.1.1 --- ao_elfsym.c 31 Oct 2002 15:20:31 -0000 1.2 *************** *** 634,637 **** --- 634,647 ---- if ( langString ) { + #if 1 + if (langString < nextopt || nextopt==NULL) + { + /* Treat C put through a C++ compiler as C++ */ + compiler_type = CT_CC; + if (language && + ((*language == LANG_UNKNOWN) || (*language == LANG_C))) + *language = LANG_CC; + } + #else if (langString < nextopt || nextopt==NULL) { *************** *** 640,643 **** --- 650,654 ---- *language = LANG_CC; } + #endif } else { Index: ao_text.c =================================================================== RCS file: /cvsroot/ups/ups/ups/ao_text.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ao_text.c 28 Oct 2002 10:04:24 -0000 1.2 --- ao_text.c 31 Oct 2002 15:20:32 -0000 1.3 *************** *** 49,52 **** --- 49,53 ---- #include <local/ukcprog.h> #include <mtrprog/utils.h> + #include <mtrprog/hash.h> #include "ups.h" *************** *** 245,248 **** --- 246,250 ---- #if WANT_DWARF + ast->st_type_names = NULL; if (st_is == ST_DWARF) st = make_symtab(ap, textpath, (fil_t *)NULL, (func_t *)NULL, Index: ao_symscan.c =================================================================== RCS file: /cvsroot/ups/ups/ups/ao_symscan.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** ao_symscan.c 26 Oct 2002 13:05:10 -0000 1.1.1.1 --- ao_symscan.c 31 Oct 2002 15:20:34 -0000 1.2 *************** *** 47,50 **** --- 47,51 ---- #include <local/ukcprog.h> + #include <mtrprog/hash.h> #include "ups.h" Index: ao_stack.c =================================================================== RCS file: /cvsroot/ups/ups/ups/ao_stack.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** ao_stack.c 26 Oct 2002 13:05:20 -0000 1.1.1.1 --- ao_stack.c 31 Oct 2002 15:20:37 -0000 1.2 *************** *** 75,78 **** --- 75,79 ---- #include <local/ukcprog.h> #include <mtrprog/alloc.h> + #include <mtrprog/hash.h> #include "ups.h" Index: ao_elflib.c =================================================================== RCS file: /cvsroot/ups/ups/ups/ao_elflib.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** ao_elflib.c 26 Oct 2002 13:05:14 -0000 1.1.1.1 --- ao_elflib.c 31 Oct 2002 15:20:38 -0000 1.2 *************** *** 44,47 **** --- 44,48 ---- #include <local/ukcprog.h> #include <mtrprog/utils.h> + #include <mtrprog/hash.h> #include <local/wn.h> #include <mtrprog/io.h> Index: ao_symcb.c =================================================================== RCS file: /cvsroot/ups/ups/ups/ao_symcb.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** ao_symcb.c 26 Oct 2002 13:05:10 -0000 1.1.1.1 --- ao_symcb.c 31 Oct 2002 15:20:40 -0000 1.2 *************** *** 45,48 **** --- 45,49 ---- #include <local/ukcprog.h> + #include <mtrprog/hash.h> #include "ups.h" Index: ao_symparse.c =================================================================== RCS file: /cvsroot/ups/ups/ups/ao_symparse.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** ao_symparse.c 26 Oct 2002 13:05:08 -0000 1.1.1.1 --- ao_symparse.c 31 Oct 2002 15:20:42 -0000 1.2 *************** *** 47,50 **** --- 47,51 ---- #include <local/ukcprog.h> #include <mtrprog/strcache.h> + #include <mtrprog/hash.h> #include "ups.h" Index: ao_symload.c =================================================================== RCS file: /cvsroot/ups/ups/ups/ao_symload.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ao_symload.c 28 Oct 2002 10:04:24 -0000 1.2 --- ao_symload.c 31 Oct 2002 15:20:47 -0000 1.3 *************** *** 48,51 **** --- 48,52 ---- #include <local/ukcprog.h> #include <mtrprog/strcache.h> + #include <mtrprog/hash.h> #include <local/edit/edit.h> Index: ao_symread.c =================================================================== RCS file: /cvsroot/ups/ups/ups/ao_symread.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** ao_symread.c 26 Oct 2002 13:05:04 -0000 1.1.1.1 --- ao_symread.c 31 Oct 2002 15:20:48 -0000 1.2 *************** *** 52,55 **** --- 52,56 ---- #include <mtrprog/strcache.h> #include <mtrprog/utils.h> + #include <mtrprog/hash.h> #include "ups.h" Index: st_debug.c =================================================================== RCS file: /cvsroot/ups/ups/ups/st_debug.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** st_debug.c 26 Oct 2002 13:04:56 -0000 1.1.1.1 --- st_debug.c 31 Oct 2002 15:20:48 -0000 1.2 *************** *** 33,36 **** --- 33,37 ---- #include <local/ukcprog.h> #include <mtrprog/utils.h> + #include <mtrprog/hash.h> #include "ups.h" |
From: <ian...@us...> - 2002-10-31 15:17:35
|
Update of /cvsroot/ups/ups/ups In directory usw-pr-cvs1:/tmp/cvs-serv10234 Modified Files: ao_syms.h Log Message: Add a "name to typename_t" hash table to ao_stdata structure, and define the typename_t structure. Also change #ifdef ST_TE to #if WANT_THIRD_EYE - structure members should be optional only on macros defined in <ifdefs.h> (which everything includes). Index: ao_syms.h =================================================================== RCS file: /cvsroot/ups/ups/ups/ao_syms.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -C2 -d -r1.1.1.1 -r1.2 *** ao_syms.h 26 Oct 2002 13:06:33 -0000 1.1.1.1 --- ao_syms.h 31 Oct 2002 15:17:27 -0000 1.2 *************** *** 54,58 **** int fs_symlim; /* ditto */ long fs_cblist; /* used only in st_cb.c */ ! #ifdef ST_TE /* Fields for extracting line number information. */ int fs_lno_base; --- 54,58 ---- int fs_symlim; /* ditto */ long fs_cblist; /* used only in st_cb.c */ ! #if WANT_THIRD_EYE /* Fields for extracting line number information. */ int fs_lno_base; *************** *** 133,137 **** symio_t *st_text_symio; /* Symio for the a.out file itself */ ! #ifdef ST_TE extsym_t *st_exttab; /* External symbols */ int st_exttab_size; /* # external symbols */ --- 133,137 ---- symio_t *st_text_symio; /* Symio for the a.out file itself */ ! #if WANT_THIRD_EYE extsym_t *st_exttab; /* External symbols */ int st_exttab_size; /* # external symbols */ *************** *** 143,146 **** --- 143,150 ---- #endif + #if WANT_DWARF + hashtab_t *st_type_names; /* Type name -> DIE. */ + #endif + #if WANT_ELF Solib *st_solib; *************** *** 201,208 **** #if WANT_DWARF /* ! * Used to keep track of type information. */ typedef enum { ! DT_IS_TYPE, DT_IS_TYPEDEF, DT_IS_VAR, DT_IS_RANGE, DT_IS_BITFIELD, } dt_is_t; typedef struct dtype_s { --- 205,217 ---- #if WANT_DWARF /* ! * Used to keep track of type etc. information gathered from each ! * compilation unit (CU). */ typedef enum { ! DT_IS_TYPE, ! DT_IS_TYPEDEF, ! DT_IS_VAR, ! DT_IS_RANGE, ! DT_IS_BITFIELD, } dt_is_t; typedef struct dtype_s { *************** *** 214,217 **** --- 223,237 ---- struct dtype_s *dt_next; } dtype_t; + + /* + * Type information saved on initial skim through compilation units. + * Currently only C++ classes are recorded. + */ + typedef struct typename_s { + char *tn_name; /* Name. */ + off_t tn_offset; /* CU relative offset of DIE for this type. */ + struct stf_s *tn_stf; + struct typename_s *tn_next; /* Next with the same name. */ + } typename_t; /* |
From: <ian...@us...> - 2002-10-31 13:37:53
|
Update of /cvsroot/ups/ups/ups/doc In directory usw-pr-cvs1:/tmp/cvs-serv12809 Modified Files: upsman.html ups.man Log Message: Improve the ENVIRONMENT VARIABLES AFFECTING UPS section of the man page. Index: upsman.html =================================================================== RCS file: /cvsroot/ups/ups/ups/doc/upsman.html,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** upsman.html 30 Oct 2002 11:28:10 -0000 1.2 --- upsman.html 31 Oct 2002 13:37:50 -0000 1.3 *************** *** 311,320 **** <p> ! You can see all the symbol table names that are loaded and not loaded by doing a <tt>setenv VERBOSE 1</tt> before calling <i>ups</i>. ! Setting <tt>VERBOSE</tt> to <tt>NOLOAD</tt> causes to list just the libraries that are not loaded. <p> Most software projects of any size develop formal or informal naming conventions that make it possible to specify the desired format for a variable based on the --- 311,357 ---- <p> ! You can see all the symbol table names that are loaded and not loaded by setting ! <tt>VERBOSE</tt> to <tt>1</tt>, <i>e.g.</i> if you use <i>csh(1)</i> by doing <tt>setenv VERBOSE 1</tt> before calling <i>ups</i>. ! Setting <tt>VERBOSE</tt> to <tt>NOLOAD</tt> causes <i>ups</i> to list just the libraries that are not loaded. <p> + The variable <tt>EDITOR</tt> is used, if set, as the editor for source files. + If not set the default is <i>vi(1)</i>. + Unless the editor is <i>emacs(1)</i>, or the name starts with an "x", it will be started + in a new <i>xterm(1)</i> window. + + <p> + You can change the source code language and compiler type that <i>ups</i> + assumes have been used by setting <tt>UPS_LANGUAGE</tt> or <tt>UPS_COMPILER</tt> as appropriate. + Note that these settings will be used for all files. + These might be useful if you use non-standard file extensions, or have + compiled C with a C++ compiler. + <tt>UPS_LANGUAGE</tt> can be <tt>C</tt>, <tt>C++</tt>, <tt>F77</tt> or <tt>F90</tt>. + <br> + <tt>UPS_COMPILER</tt> can be + <blockquote> + <tt>cc </tt> Sun C/C++ compiler + <br> + <tt>gcc </tt> GNU gcc/g++/g77 + <br> + <tt>clcc</tt> Centerline C++ + <br> + <tt>f77 </tt> Sun Fortran + <br> + <tt>f90 </tt> EPCF90 + </blockquote> + + On Sun SPARC systems <tt>UPS_SUNOS_STEP</tt> controls whether + <b>Step</b> + will take you into a routine if it is in a shared library. + If not set, or set to <tt>1</tt>, you can step into shared libraries. + If set to <tt>0</tt> then + <b>Step</b> + will continue to the next statement in the current routine. + + <h3>Default formats for displaying variables</h3> + <p> Most software projects of any size develop formal or informal naming conventions that make it possible to specify the desired format for a variable based on the *************** *** 422,425 **** --- 459,463 ---- are selected. + <h3>Pre-defined strings on function keys</h3> <p> It is possible to insert pre-defined strings when editing text. *************** *** 468,472 **** <p> ! To do this, put the following in your environment : <blockquote> <pre> --- 506,510 ---- <p> ! To do this, if you use <i>csh(1)</i>, put the following in your environment : <blockquote> <pre> *************** *** 479,482 **** --- 517,526 ---- setenv UPS_F7_STR "%b purify_stop_here\n" </pre> + </blockquote> + If your shell is <i>sh(1)</i> or <i>bash(1)</i> then use : + <blockquote> + <tt>export UPS_F1_STR=´$printf("\\n");´</tt> + <br> + <i>etc</i>. </blockquote> </p> Index: ups.man =================================================================== RCS file: /cvsroot/ups/ups/ups/doc/ups.man,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** ups.man 30 Oct 2002 11:28:10 -0000 1.2 --- ups.man 31 Oct 2002 13:37:50 -0000 1.3 *************** *** 800,806 **** command line. .SH "ENVIRONMENT VARIABLES AFFECTING UPS" ! You can see all the symbol table names that are loaded and not loaded by doing a ! "setenv VERBOSE 1" before calling \fIups\fP. Setting VERBOSE to "NOLOAD" causes ! to list just the libraries that are not loaded. .LP Most software projects of any size develop formal or informal naming conventions --- 800,833 ---- command line. .SH "ENVIRONMENT VARIABLES AFFECTING UPS" ! You can see all the symbol table names that are loaded and not loaded by ! setting VERBOSE to 1, e.g. if you use \fIcsh(1)\fP by doing ! "setenv VERBOSE 1" ! before calling \fIups\fP. Setting VERBOSE to "NOLOAD" causes ! \fIups\fP to list just the libraries that are not loaded. ! .LP ! The variable EDITOR is used, if set, as the editor for source files. ! If not set the default is \fIvi(1)\fP. ! Unless the editor is \fIemacs(1)\fP, or the name starts with an "x", it will be started ! in a new \fIxterm(1)\fP window. ! ! .LP ! You can change the source code language and compiler type that \fIups\fP ! assumes have been used by setting UPS_LANGUAGE or UPS_COMPILER as appropriate. ! Note that these settings will be used for all files. ! These might be useful if you use non-standard file extensions, or have ! compiled C with a C++ compiler. ! UPS_LANGUAGE can be "C", "C++", "F77" or "F90". ! UPS_COMPILER can be "cc" (Sun C/C++ compiler), "gcc" (GNU ! gcc/g++/g77), "clcc" (Centerline C++), "f77" (Sun Fortran) or "f90" (EPCF90). ! ! .LP ! On Sun SPARC systems UPS_SUNOS_STEP controls whether ! .Cm Step ! will take you into a routine if it is in a shared library. ! If not set, or set to 1, you can step into shared libraries. ! If set to 0 then ! .Cm Step ! will continue to the next statement in the current routine. ! .LP Most software projects of any size develop formal or informal naming conventions *************** *** 906,925 **** call strcmp for a conditional breakpoint. The F6 string pastes in the X-windows selection and the F7 string sets a breakpoint in purified code. ! ! To do this, put the following in your environment: ! .IP setenv UPS_F1_STR '$printf("\\\\n");' - .IP setenv UPS_F2_STR 'if (strcmp(, ""))' - .IP setenv UPS_F3_STR '@name .next' - .IP setenv UPS_F4_STR "ostream::operator<<" - .IP setenv UPS_F5_STR 'ostream::operator<<(&cout, "");' - .IP setenv UPS_F6_STR "^e^u^y\\n" - .IP setenv UPS_F7_STR "%b purify_stop_here\\n" .SH "INTERACTIVELY ADDING SEARCH PATHS" Search paths can be given to \fIups\fP at any time during debug by --- 933,962 ---- call strcmp for a conditional breakpoint. The F6 string pastes in the X-windows selection and the F7 string sets a breakpoint in purified code. ! .LP ! To do this, if you use \fIcsh(1)\fP, put the following in your environment: ! .Vs ! .ps -2 ! .vs -2 setenv UPS_F1_STR '$printf("\\\\n");' setenv UPS_F2_STR 'if (strcmp(, ""))' setenv UPS_F3_STR '@name .next' setenv UPS_F4_STR "ostream::operator<<" setenv UPS_F5_STR 'ostream::operator<<(&cout, "");' setenv UPS_F6_STR "^e^u^y\\n" setenv UPS_F7_STR "%b purify_stop_here\\n" + .ps +2 + .vs +2 + .Ve + .LP + If your shell is \fIsh(1)\fP or \fIbash(1)\fP then use: + .Vs + .ps -2 + .vs -2 + export UPS_F1_STR='$printf("\\\\n");' + \fIetc\fP + .ps +2 + .vs +2 + .Ve + .SH "INTERACTIVELY ADDING SEARCH PATHS" Search paths can be given to \fIups\fP at any time during debug by |