GBLSEC$SDA,UTILITIES, a SDA extension to display info about a global section GBLSEC$SDA is a SDA extension (using the API first documented for VMS V7.2) which displays information about a global section including the name of the file associated with it and the processes mapped to it. GBLSEC$SDA can be used to look at a crash dump or at a running system. INSTALLATION ------------ Either copy GBLSEC$SDA.EXE to SYS$SHARE or define a logical name GBLSEC$SDA as the current location. $ DEFINE GBLSEC$SDA DISK:[DIR.SUBDIR]GBLSEC$SDA.EXE TO USE ------ When analyzing a crash dump or the current running system using SDA enter the command GBLSEC (at the SDA> prompt) followed by the global section name and information will be displayed about the global section. Global section names containing lower case letters have to be specified in quotes e.g "DnsClerkCache". To look at a system global section GBLSEC section-name To look at a group global section GBLSEC section-name /GROUP=n where n is the group number in octal. If the group number is not specified the first group global section with the specified name is displayed. To look at delete pending global sections GBLSEC section-name /DELETE_PENDING If GBLSEC there is a file associated with the global section e.g the global section is the result of installing a file then GBLSEC obtains the device name and file id from the internal data structures and translates this to a filename using LIB$FID_TO_NAME. There are two issues with this 1. you could be looking at a crash dump from another system 2. you could be looking at the live system and a file system lock could block the lookup of the file name. Therefore there is a /FID_ONLY qualifier which, if specified on the command line, prevents GBLSEC from looking up the filename. In this case the device name and FID is displayed. Specify /NOGSD to supress display of the global section descriptor. Specify /NOGSTE to supress display of the Global Section Table Entry. Specify /NOUSERS to not look for processes using this global section. GBLSEC searches for all global sections with the specified name (there may be more than one. They may have different idents) To stop after finding the first one specify /NOALL. GBLSEC creates some symbols in the SDA symbol table to aid futher investigations which contain the addresses of various data structures. These symbols are GSD, GSTE, FCB, WCB, UCB, GPTE and NGPTE (number of NGPTE); To find the processes using a particular installed file then use the INSTALL LIST filespec/GLOBAL command to find the names of the global sections created by installing the file. Then use GBLSEC/NOGSD/NOGPTE/USE for each global section. Example ! looking at crash $ ANALYZE/CRASH SYS$SYSTEM:SYSDUMP.DMP SDA> GBLSEC SMG$TERMTABLE GBLSEC V1.0 (c) 2005, Ian Miller (miller@encompasserve.org) built on VMS V7.3-2 GSD: Global Section Descriptor GSName: SMG$TERMTABLE PCBUIC: [1,4] FILUIC: [1,4] ORB: 81402788 GSTX: 00000127 PROT: 0000FFFF IDENT: 00000000 IPID/RGSTX: 00000000 FLAGS: 0082C3C1 WRTMOD = USER, AMOD = USER, GBL PERM SYS File: DISK$ALPHASYS:[VMS$COMMON.SYSEXE]TERMTABLE.EXE;1 GSTE: Global Section Table Entry GSD: 81F35270 PFC: 0. WINDOW: 8144D640 VBN: 1 REFCNT: 11. UNITCNT: 170. VPX: 3376. FLAGS: 0082C3C1 WRTMOD = USER, AMOD = USER, GBL PERM SYS searching for processes mapped to this global section PID 000003B9 _FTA9: 1 processes found to be mapped to this global section AUTHOR ------ This program was written by Ian Miller. Bug reports and comments to miller@encompasserve.org CHANGES ------- V0.1 Initial version looked at system global sections only V0.2 Add support for group and delete pending sections and improve displays. Implement FID lookup. V0.3 Find all global sections matching the name. Add more qualifers. V0.4 Add creation of useful symbols. V0.5 Various small improvments. Fix build on I64 and VMS V7.2. Message file. V1.0 First public release V1.1 Search dynamic regions. Various bug fixes. V1.2 Bug fixes to allow repeated use in same SDA session. Handle gaps in P1 region. TO BUILD -------- A C compiler is required. I usually use DEC C V7.1 on OpenVMS Alpha V7.3-2 GBLSEC does build on OpenVMS Alpha V7.2 to V8.2 and OpenVMS I64 V8.2 to V8.2-1 @B_GBLSEC$SDA.COM COPYRIGHT NOTICE ---------------- This software is COPYRIGHT © 2005, Ian Miller. ALL RIGHTS RESERVED. This software is released under the licence defined below. LICENSE ------- The Artistic License Preamble The intent of this document is to state the conditions under which a Package may be copied, such that the Copyright Holder maintains some semblance of artistic control over the development of the package, while giving the users of the package the right to use and distribute the Package in a more-or-less customary fashion, plus the right to make reasonable modifications. Definitions: * "Package" refers to the collection of files distributed by the Copyright Holder, and derivatives of that collection of files created through textual modification. * "Standard Version" refers to such a Package if it has not been modified, or has been modified in accordance with the wishes of the Copyright Holder. * "Copyright Holder" is whoever is named in the copyright or copyrights for the package. * "You" is you, if you're thinking about copying or distributing this Package. * "Reasonable copying fee" is whatever you can justify on the basis of media cost, duplication charges, time of people involved, and so on. (You will not be required to justify it to the Copyright Holder, but only to the computing community at large as a market that must bear the fee.) * "Freely Available" means that no fee is charged for the item itself, though there may be fees involved in handling the item. It also means that recipients of the item may redistribute it under the same conditions they received it. 1. You may make and give away verbatim copies of the source form of the Standard Version of this Package without restriction, provided that you duplicate all of the original copyright notices and associated disclaimers. 2. You may apply bug fixes, portability fixes and other modifications derived from the Public Domain or from the Copyright Holder. A Package modified in such a way shall still be considered the Standard Version. 3. You may otherwise modify your copy of this Package in any way, provided that you insert a prominent notice in each changed file stating how and when you changed that file, and provided that you do at least ONE of the following: a) place your modifications in the Public Domain or otherwise make them Freely Available, such as by posting said modifications to Usenet or an equivalent medium, or placing the modifications on a major archive site such as ftp.uu.net, or by allowing the Copyright Holder to include your modifications in the Standard Version of the Package. b) use the modified Package only within your corporation or organization. c) rename any non-standard executables so the names do not conflict with standard executables, which must also be provided, and provide a separate manual page for each non-standard executable that clearly documents how it differs from the Standard Version. d) make other distribution arrangements with the Copyright Holder. 4. You may distribute the programs of this Package in object code or executable form, provided that you do at least ONE of the following: a) distribute a Standard Version of the executables and library files, together with instructions (in the manual page or equivalent) on where to get the Standard Version. b) accompany the distribution with the machine-readable source of the Package with your modifications. c) accompany any non-standard executables with their corresponding Standard Version executables, giving the non-standard executables non-standard names, and clearly documenting the differences in manual pages (or equivalent), together with instructions on where to get the Standard Version. d) make other distribution arrangements with the Copyright Holder. 5. You may charge a reasonable copying fee for any distribution of this Package. You may charge any fee you choose for support of this Package. You may not charge a fee for this Package itself. However, you may distribute this Package in aggregate with other (possibly commercial) programs as part of a larger (possibly commercial) software distribution provided that you do not advertise this Package as a product of your own. 6. The scripts and library files supplied as input to or produced as output from the programs of this Package do not automatically fall under the copyright of this Package, but belong to whomever generated them, and may be sold commercially, and may be aggregated with this Package. 7. C or perl subroutines supplied by you and linked into this Package shall not be considered part of this Package. 8. The name of the Copyright Holder may not be used to endorse or promote products derived from this software without specific prior written permission. 9. THIS PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. The End.