D-Peeper 2.0 (on Oct 09 2000)

T & R (VA), Donetsk, Ukraine

  D-Peeper is a Delphi application peeper, which will help you to debug
applications written with Delphi or CBuilder. It lets you extract object
data (published properties and events list, class hierarchy with unit name,
fields, methods, binary data dump, components and controls list) for visual
components at runtime. It's absolutely transparent to the application
being observed.
  At present time you can explore applications, made with Inprise Delphi
(versions 2,3,4,5) and Inprise C++ Builder(versions 1,3,5) development tools.
  

  Historical reference
  ~~~~~~~~~~~~~~~~~~~~
  This program appeared at the moment, when I got tired to construct phrases
like "The third Label Caption from the top in the setup window does not 
comply with TEdit" when writing bug-reports. And the author has certainly 
to puzzle over it thinking what does the beta-tester mean, as the form design
has been already somehow changed to the moment. And it would be much better to 
point out exact coordinates (names) of the subject component and the property
name. Usually authors give sensible names to components when creating their
applications, so they usually don't rename the components if the design is
changed.
  In principle, the contents of the forms can be extracted from the exe-file 
as well, analyzing RCDATA resources. There are some programs for doing this too
(e.g. ResourceExplorer http://batry.hypermart.net/ResXplor.zip).
But this method is not always acceptable (for example, if the executable module
is packed) and, above all, it works with static data, while the offered one
works with a LIVE program.
  And all are pleased now - both the author and beta-tester ;)  

  
  The way it happens
  ~~~~~~~~~~~~~~~~~~
  The basis is a "simple" and banal method of mapping a DLL in the address  area
of the process being observed. Why is the word "simple" quoted?  Because  it  is
not such a simple thing as it seems. I had to  solve  a  number  of  non-trivial
problems when extracting properties values. At the same time I had to  settle  a
row of problems reated to data transmission between the processes. And, of course,
there were piles of small things which are not usually paid  attention  to,  but
which drag themselves out as spiteful  "Access  violation"  in  the  application
being observed.


  Brief instruction
  ~~~~~~~~~~~~~~~~~
  The work with the program is a bit similar to WinSpy. Select
"Spy->Secure one's object" in the menu. The mouse cursor turns into the "sight"
on Delphi-applications. Click on the object you are interested in with the
mouse and then you can see published properties values, events, data of the
class and ClassInfo (hierarchy, fields, methods, properties and events list) in
the opened window.
  You can do it also in alternative way: press Ctrl key that operates as switch
to observe mode, and then act in the same way. Release Ctrl  key  to  come  out
of the observe mode.
  If you want see occupied memory information, press right mouse key
on the object.

  Future projects
  ~~~~~~~~~~~~~~~
  We intentionally don't begin to develop the program as  a  debug-tool  because
we have both no wish and resources to measure  our  strenth  with  monsters  and
whales of computer business ;), although it is not a lot  of  work  to  get  and 
modify not published values of the subject. Moreover it  is  simply  enough  "to
make" Delphi-applications to work in  the  manner  we'd  like  using  the  basis
created. But  it  would  be  hacking  and  is  completely  inadmissible  to  the
authors' ideology. 
  But we have an idea to create a tool for more deep exploration  of  components
in our future projects.
  

  Terms of use
  ~~~~~~~~~~~~
  Active testers can get their free registration of the program (if they  wish),
the authors' gratitude and some professional secrets ;).
  

  Known bugs
  ~~~~~~~~~~
  As you know, the real bugs are yet to come and we'll be grateful  if  you
let us know about them.


  THANKS
  ~~~~~~
 * Eugene Mayevski, mayevski@eldos.org
   for testing the program and suggestions
 * Timour Koutoub-Zahde, tim@mail.primorye.ru
   for testing the program and suggestions
 * YOU MIGHT BE HERE 


  HomePage:
http://batry.hypermart.net/D_Peeper.htm

  The latest version of D-Peeper can be downloaded from:
http://batry.hypermart.net/D_Peeper.zip

  Please, send you suggesstions and bug reports to

mailto:Trunov@dicom.donetsk.ua
mailto:batry@i.am
