From Free Pascal wiki
Jump to: navigation, search

English (en) français (fr)

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.ppu

to 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 Team

Analyzing unit1.ppu (v195)


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  : 960

Interface section

Module Name: Unit1

Source 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: 18605

Interface symtable

Symtable options: none

Interface 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