PPUDump
English · Français
From FreePascal User's Manual:
ppudump is a program, which shows the contents of a Free Pascal unit. It is distributed with the compiler. You can just issue the following command
ppudump [options] foo.pputo display the contents of the foo.ppu unit. You can specify multiple files on the command line.
The options can be used to change the verbosity of the display. By default, all available information is displayed. You can set the verbosity level using the -Vxxx option. Here, xxx is a combination of the following letters:
h: show header info.
i: show interface information.
m: show implementation information.
d: show only (interface) definitions.
s: show only (interface) symbols.
b: show browser info.
a: show everything (default if no -V option is present).
example output
ppudump unit1.ppu
PPU-Analyser Version 3.1.1
Copyright (c) 1998-2013 by the Free Pascal Development TeamAnalyzing unit1.ppu (v195)Header
-------
Compiler version : 3.1.1
Target processor : x86_64
Target operating system : Linux-x86-64
Unit flags : init, static_linked, little_endian, has_debug_info, dwarf_debug_info, local_symtable
FileSize (w/o header) : 97855
Checksum : 52269C9E
Interface Checksum : 8B95EA98
Indirect Checksum : DA0A4D1C
Definitions stored : 312
Symbols stored : 960Interface section
------------------
Module Name: Unit1Source file 1 : unit1.pas 2017/10/19 12:04:48
Source file 2 : unit1.lrs 2017/10/19 11:26:00
Uses unit: System (Crc: 0071642B, IntfcCrc: 675CDF65, IndCrc: 3EF9017F)
Uses unit: objpas (Crc: 0C0DE648, IntfcCrc: 8F0C59F0, IndCrc: 09D16E16)
Uses unit: Classes (Crc: 2BD4311F, IntfcCrc: FEC1B15D, IndCrc: A2A74441)
Uses unit: sysutils (Crc: 673DB7A8, IntfcCrc: FB3278AD, IndCrc: 029F2F57)
Uses unit: FileUtil (Crc: DDDF8F2E, IntfcCrc: 91946678, IndCrc: 773AB234)
Uses unit: LResources (Crc: B1B5CBCA, IntfcCrc: BD6404C3, IndCrc: 07FAEA28)
Uses unit: Forms (Crc: 7BD93F9B, IntfcCrc: 4CED5DD1, IndCrc: 5876762D)
Uses unit: Controls (Crc: B19F0092, IntfcCrc: 748FCEC1, IndCrc: 7E2DABAF)
Uses unit: Graphics (Crc: 047DF96C, IntfcCrc: 7F769B7A, IndCrc: 25206CE8)
Uses unit: Dialogs (Crc: F3CCBFDB, IntfcCrc: BA984012, IndCrc: 64641653)
Uses unit: StdCtrls (Crc: C7C6F1A3, IntfcCrc: 320098AF, IndCrc: D6382504)
Uses unit: uCmdBox (Crc: 63BFCCE9, IntfcCrc: FA038A54, IndCrc: 7A21D263)
Uses unit: GifAnim (Crc: 75FA8DA5, IntfcCrc: EB25FB6B, IndCrc: 65C55C81)
Link unit object file: unit1.o (static )
DerefMapsize: 15
DerefMap[0] = SYSTEM
DerefMap[1] = FORMS
DerefMap[2] = CONTROLS
DerefMap[3] = CLASSES
DerefMap[4] = STDCTRLS
DerefMap[5] = LCLCLASSES
DerefMap[6] = WSLCLCLASSES
DerefMap[7] = TYPES
DerefMap[8] = LCLTYPE
DerefMap[9] = LMESSAGES
DerefMap[10] = GRAPHTYPE
DerefMap[11] = MENUS
DerefMap[12] = GRAPHICS
DerefMap[13] = OBJPAS
DerefMap[14] = LRESOURCES
Derefdata length: 18605Interface symtable
----------------------
Symtable options: noneInterface definitions
----------------------
** Definition Id 0 **
Object/Class definition
Type symbol : (0) SymId 2
DefOptions :
DefStates : VMT Written, RTTITable Used, InitTable Used, RTTITable Written, InitTable Written, Dwarf DbgInfo Written
Name of Class : TForm1
Import lib/pkg :
Options : HasVirtual, HasPrivate, HasProtected, HasConstructor, HasDestructor, HasVMT, CanHavePublished
Type : class
Helper Type : none
External name :
DataSize : 1904
PaddingSize : 0
FieldAlign : 0
RecordAlign : 8
RecordAlignMin : 0
VmtField : (8) Unit 0, SymId 4244
Ancestor Class : (17) Unit 1, DefId 1093
Abstract methods : 0
VMT entries: 307
(129) Unit 1, DefId 864
Visibility: public
(138) Unit 5, DefId 10
Visibility: public
(147) Unit 0, DefId 749
Visibility: public
(156) Unit 3, DefId 1586
Visibility: public
----... lots of info
From the Free Pascal wiki, page "PPUDump", as it stood on 2019-08-28 after a change by Polluks, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.
Talk about this page
Nobody has opened a bench for this page yet. Sign in to open one.
