Naga
Naga

Reputation: 327

How to get GDI objects associated to a process

I am investigating GDI leaks issue in one of our smart-client application. I am looking for a tool (like tasklist) to get the GDI objects associated to a process. I can see the GDI objects in taskmanager, But my requirement to capture it periodically somewhere. For example in a text file.

Upvotes: 14

Views: 13012

Answers (3)

Reputation:

The totally free Process Explorer ( http://www.sysinternals.com ) allows you to graphically inspect this and a zillion other aspects related to running processes. Add GDI Objects to the columns to display and you're off and running. The column GDI Objects can be found in the Process Memory tab in the Select Columns dialog.

NOTE: Microsoft acquired their tools and I believe Mark Russinovich now works for Microsoft. Sysinternals tools don't typically require any installation other than to copy them to somewhere convenient and should be in your toolbox if they aren't already.

Upvotes: 8

user290924
user290924

Reputation: 41

Use GDIView, a free tool from NirSoft.

Their description:

GDIView is a unique tool that displays the list of GDI handles (brushes, pens, fonts, bitmaps, and others) opened by every process. It displays the total count for each type of GDI handle, as well as detailed information about each handle. This tool can be useful for developers that need to trace GDI resources leak in their software.

You can save the list of GDI counters as regular, tab-delimited, comma-delimited, and tabular text files, as well as horizontal or vertical HTML file or an XML file.

Upvotes: 4

ChrisN
ChrisN

Reputation: 16933

It should be quite straightforward to write a program to periodically log the number of GDI handles in use by a process, using the GetGuiResources API function.

Upvotes: 8

Related Questions