home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 11 Util / 11-Util.zip / dx1.zip / DX.DOC next >
Text File  |  1989-11-30  |  3KB  |  67 lines

  1. Path: dvinci!alberta!ubc-cs!uw-beaver!mit-eddie!mintaka!think!samsung!uunet!mcsun!ukc!stl!stc!datlog!mor
  2. From: mor@datlog.co.uk ( Mike O'Reilly )
  3. Newsgroups: comp.os.os2
  4. Subject: OS/2 programmers utility (DX) posted
  5. Keywords: simple analysis tool
  6. Message-ID: <2313@dlvax2.datlog.co.uk>
  7. Date: 23 Nov 89 14:04:14 GMT
  8. Organization: Data Logic Ltd, Queens House, Greenhill Way, Harrow, London.
  9. Lines: 56
  10.  
  11.  
  12.  
  13. I have posted a uuencoded binary file DX.EXE to comp.os.os2. 
  14. DX is a programmer's tool, described below, which can be very useful
  15. for observing unfamiliar EXE and DLL files on OS/2. The binary is
  16. now in the PUBLIC DOMAIN.
  17.  
  18. The DX.EXE file size is approx 22Kb and runs only in protected mode.
  19. The USENET posting containing the uuencoded file is approx 30Kb or 494 lines. 
  20. To get the executable, save the posting, strip off the email header then 
  21. uudecode the file to produce DX.EXE.
  22.  
  23.  
  24. The rest of this note describes DX ; this information is also available
  25. by typing dx -help .
  26.  
  27. DX.EXE shows makeup and dependency information about OS/2 EXE & DLL modules.
  28. It is a programmer's tool which complements Microsoft's EXEHDR.EXE program.
  29. You can use it for simple analysis of unfamiliar packages on OS/2.
  30.  
  31. Dx displays a re-constructed DEF file (module definition file) for each 
  32. argument module, showing the IMPORT and EXPORT lists as well as other
  33. standard DEF file information.
  34.  
  35. Here is a explanation of the IMPORT and EXPORT information from DX.
  36.  
  37. A module can EXPORT functions by NAME and/or by ORDINAL, for example:
  38. EXPORTS
  39.     KBDCHARIN        ; export by name (ordinal not specified)
  40.     KBDCHARIN @4        ; export by ordinal
  41.     KBDCHARIN @4 RESIDENTNAME    ; export by ordinal AND by name
  42.  
  43. DX always shows the export ordinal, so it appends "RESIDENTNAME"
  44. if the function has also been exported by name.
  45.  
  46. A module can IMPORT functions by NAME or by ORDINAL, for example:
  47. IMPORTS
  48.     KBDCALLS.KBDCHARIN    ; import by name
  49.     KBDCHARIN = KBDCALLS.4    ; import by ordinal
  50.  
  51. DX uses both of the above IMPORT formats, depending on whether the function is
  52. imported by ordinal or by name. If it is imported by name, DX adds the ordinal
  53. number as a comment.
  54.  
  55. Thus, DX shows you the name, DLL and ordinal for each function imported by
  56. the argument module.
  57.  
  58. DX generates names for code and data segments because it works
  59. at executable level rather than at object code level. 
  60.  
  61. We are working on enhancements to DX to show the stack parameter for exported
  62. IOPL functions and a module patching facility.
  63. We will release these when time allows.
  64. -------------------------------------------------------------------------
  65. -- 
  66. -mike (mor@datlog.co.uk). DISCLAIMER: I speak for myself, not my employer.
  67.