home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.os.vms
- Path: sparky!uunet!zaphod.mps.ohio-state.edu!saimiri.primate.wisc.edu!usenet.coe.montana.edu!decwrl!pa.dec.com!engage.pko.dec.com!nntpd.lkg.dec.com!gauche.zko.dec.com!jnelson
- From: jnelson@gauche.zko.dec.com (Jeff E. Nelson)
- Subject: Re: PCA limitation / Unix "strip" for VMS
- Message-ID: <1993Jan26.120534.15379@nntpd.lkg.dec.com>
- Keywords: PCA,strip
- Lines: 54
- Sender: usenet@nntpd.lkg.dec.com (USENET News System)
- Reply-To: jnelson@gauche.zko.dec.com (Jeff E. Nelson)
- Organization: Digital Equipment Corporation
- References: <418@ittc.wec.com>
- Date: Tue, 26 Jan 1993 12:05:34 GMT
-
-
- In article <418@ittc.wec.com>, fitch@ittc.wec.com (Ken Fitch) writes:
- |>The DECset Performance & Coverage Analyzer (PCA) is having trouble
- |>digesting an executable with a large number of debug symbols.
- |>When run it gives the message:
- |>
- |>%PCA-E-INCDST, incorrect DST nesting in module RPDINIT. Datafile not set.
- |>
- |>The description of this error in the documentation says to submit
- |>an SPR to DEC if the same module works with the regular debugger.
- |>It seems to (I can "set module" to the module PCA complains about
- |>if I use the normal debugger)...
-
- Given this description, then in all probability you've run into a bug in PCA.
- Especially since the debugger is able to understand the DST for the module.
-
- |>What I'd like to find out is:
- |>
- |> - is there a known workaround for the PCA problem?
-
- No, other than to compile this particular module /NOTRACE.
-
- |> - is there something I can specify to LINK to tell it
- |> to ignore debug symbols for a _subset_ of library modules?
-
- No, sorry.
-
- |> - is there a VMS equivalent of the Unix "strip" command
- |> that I can apply to object files?
-
- No, but you can recompile the modules /NOTRACE.
-
- |> - could I create my own equivalent of "strip" by somehow
- |> setting the count of debug symbols in the object module
- |> header (or wherever) to zero?
-
- There is no such count. An object module contains a series of object records.
- As Jerry Leichter (leichter@lrw.com) suggests, you could write a program
- to read an object module and throw out the records you don't want.
-
- The object module records are defined in STARLET by $OBJDEF. If you decide to
- write this program, the records to skip are the ones whose OBJ$B_RECTYP field
- is either OBJ$C_TBT or OBJ$C_DBG. OBJ$C_TBT contains traceback records
- (module definitions, routine definitions, line numbers); OBJ$C_DBG contains
- data symbol definitions. Please note that such a program may produce an
- invalid object module. The fastest and supported method is to compile the
- module /NOTRACE.
-
- Hope this helps.
-
- -Jeff E. Nelson
- -OpenVMS Debug
- -Digital Equipment Corporation
- -Internet: jnelson@gauche.zko.dec.com
-