Debugging capabilities of Delphi with interface pointers

If you check the interface pointer in a Delphi popup Evaluate/Modify(Ctrl-F7), it will say something similar to this:

Pointer ($ 656E84) as an IConnectionPoint

My question is where does the debugger get “like IConnectionPoint” or something else, iow

a) How does he know what type of interface the pointer indicates; and

b) Where (and by which process) the debugger receives the text of its description, for example. IConnectionPoint?

I was wondering if this debugger is somehow managing the request for the interface that holds the pointer. But IInterface(this is what the debugger tells IUnknownas), it only has QueryInterface, _AddRefand _Release methods, and I don’t see how the information can be obtained from any of them. In the same way, I don’t see how the debugger can get information from the "history" of the pointer, because the object in which it refers was not originally created in the Delphi application.

+4
source share
1 answer

How does he know what type of interface the pointer points to?

The debugger has access to debugging information.

Where (and by what process) does the debugger get the text of its description?

, ( .map).
exe. debug exe , exe exe.

/ ().
.
, ; , , .map, .

(, dcu exe), exe, .map.
Project-> options -> Linking

enter image description here

project -> Options... -> Compiling.

enter image description here

[] [...] , ?

. - , .
, - .


, , , Evaluate/modify .

/Modify
Evaluate - .

enter image description here


: debug -> add watch at cursor. Watch . , edit watch...
.

enter image description here

+4

All Articles