From: David Ching on
"linuxfedora" <linuxfedora(a)yahoo.com.hk> wrote in message
news:e23fb821-f01a-4ff1-ae02-4a8e83cc230a(a)d9g2000prh.googlegroups.com...
> Thanks
>
> have used Process Explorer, it show
>
> Process myProgramName.exe(5800)
> Process myProgramName.exe(5800)
> Process myProgramName.exe(5800)
> Process myProgramName.exe(5800)
> Process myProgramName.exe(5800)
> .

I don't understand. It shows the same process 5 times (with the process id
5800)? I've never seen that. If you click on the Process column header
(the leftmost one) it will cycle through a mode that indents the processes
showing the parent hierarchy (i.e. which process started them.) Maybe you
could look at that to figure out what process is starting all these
processes.

-- David


From: "Check Abdoul" checkabodul at mvps dot on
Take a look at the following link that explains how to use !htrace command
in Windbg to detect handle leaks.

http://channel9.msdn.com/posts/jeff_dailey/Understanding-handle-leaks-and-how-to-use-htrace-to-find-them/

Also you should be able to use AppVerifier to detect handle and memory leaks
http://technet.microsoft.com/en-us/library/bb457063.aspx

Cheers
Check Abdoul


"linuxfedora" <linuxfedora(a)yahoo.com.hk> wrote in message
news:49e89e61-65d2-4d71-8c5a-895f14e09ee3(a)h14g2000pri.googlegroups.com...
> Hi All,
>
> My program is written by MFC with many thread created for processing.
>
> And i found that the Handle count in the Task manager of my program
> will increase after a long run. And i have tried to use WinDbg to
> check what kind of handle is increasing, and it was Process, but in my
> source code, i cannot find any function call like CreateProcess, and
> since my program is quite big, so i would like to know what kinds of
> API will create Process handle to make me more easy to find the
> problem.
>
> And i have checked that when the handle is increasing, no CreateThread
> is called. So any sugguestion for me. Thanks
>
> Thanks.
>
> Best regards,
> FAI


From: linuxfedora on
On 12月19日, 下午11時00分, "Check Abdoul" <checkabodul at mvps dot org>
wrote:
> Take a look at the following link that explains how to use !htrace command
> in Windbg to detect handle leaks.
>
>    http://channel9.msdn.com/posts/jeff_dailey/Understanding-handle-leaks...
>
> Also you should be able to use AppVerifier to detect handle and memory leaks
>    http://technet.microsoft.com/en-us/library/bb457063.aspx
>
> Cheers
> Check Abdoul
>
> "linuxfedora" <linuxfed...(a)yahoo.com.hk> wrote in message
>
> news:49e89e61-65d2-4d71-8c5a-895f14e09ee3(a)h14g2000pri.googlegroups.com...
>
> > Hi All,
>
> > My program is written by MFC with many thread created for processing.
>
> > And i found that the Handle count in the Task manager of my program
> > will increase after a long run. And i have tried to use WinDbg to
> > check what kind of handle is increasing, and it was Process, but in my
> > source code, i cannot find any function call like CreateProcess, and
> > since my program is quite big, so i would like to know what kinds of
> > API will create Process handle to make me more easy to find the
> > problem.
>
> > And i have checked that when the handle is increasing, no CreateThread
> > is called. So any sugguestion for me. Thanks
>
> > Thanks.
>
> > Best regards,
> > FAI
>
>

I dont understand what are their meaning..

!handle 0 ff Process

Handle 65fc
Type Process
Attributes 0
GrantedAccess 0x1f0fff:
Delete,ReadControl,WriteDac,WriteOwner,Synch

Terminate,CreateThread,,VMOp,VMRead,VMWrite,DupHandle,CreateProcess,SetQuota,SetInfo,QueryInfo,SetPort
HandleCount 1287
PointerCount 1943
Name <none>
Object Specific Information
Process Id 5408
Parent Process 1640
Base Priority 8

!handle -diff
Handle = 0x00005de0 - OPEN
Thread ID = 0x00001040, Process ID = 0x00001520

0x771031d2: oleaut32!DllGetClassObject+0x000009a5
0x77102cac: oleaut32!DllGetClassObject+0x0000047f
0x769de342: ole32!CoUnmarshalInterface+0x00000b4e
0x769ddfc3: ole32!CoUnmarshalInterface+0x000007cf
--------------------------------------
Handle = 0x000053d8 - OPEN
Thread ID = 0x00001040, Process ID = 0x00001520

0x771031d2: oleaut32!DllGetClassObject+0x000009a5
0x77102cac: oleaut32!DllGetClassObject+0x0000047f
0x769de342: ole32!CoUnmarshalInterface+0x00000b4e
0x769ddfc3: ole32!CoUnmarshalInterface+0x000007cf
--------------------------------------
Handle = 0x0000574c - OPEN
Thread ID = 0x00001040, Process ID = 0x00001520

0x771031d2: oleaut32!DllGetClassObject+0x000009a5
0x77102cac: oleaut32!DllGetClassObject+0x0000047f
0x769de342: ole32!CoUnmarshalInterface+0x00000b4e
0x769ddfc3: ole32!CoUnmarshalInterface+0x000007cf
From: linuxfedora on
On 12月19日, 下午11時00分, "Check Abdoul" <checkabodul at mvps dot org>
wrote:
> Take a look at the following link that explains how to use !htrace command
> in Windbg to detect handle leaks.
>
>    http://channel9.msdn.com/posts/jeff_dailey/Understanding-handle-leaks...
>
> Also you should be able to use AppVerifier to detect handle and memory leaks
>    http://technet.microsoft.com/en-us/library/bb457063.aspx
>
> Cheers
> Check Abdoul
>
> "linuxfedora" <linuxfed...(a)yahoo.com.hk> wrote in message
>
> news:49e89e61-65d2-4d71-8c5a-895f14e09ee3(a)h14g2000pri.googlegroups.com...
>
> > Hi All,
>
> > My program is written by MFC with many thread created for processing.
>
> > And i found that the Handle count in the Task manager of my program
> > will increase after a long run. And i have tried to use WinDbg to
> > check what kind of handle is increasing, and it was Process, but in my
> > source code, i cannot find any function call like CreateProcess, and
> > since my program is quite big, so i would like to know what kinds of
> > API will create Process handle to make me more easy to find the
> > problem.
>
> > And i have checked that when the handle is increasing, no CreateThread
> > is called. So any sugguestion for me. Thanks
>
> > Thanks.
>
> > Best regards,
> > FAI
>
>

!handle 0 ff Process

Handle 65fc
Type Process
Attributes 0
GrantedAccess 0x1f0fff:
Delete,ReadControl,WriteDac,WriteOwner,Synch

Terminate,CreateThread,,VMOp,VMRead,VMWrite,DupHandle,CreateProcess,SetQuota,SetInfo,QueryInfo,SetPort
HandleCount 1287
PointerCount 1943
Name <none>
Object Specific Information
Process Id 5408
Parent Process 1640
Base Priority 8

!handle -diff
Handle = 0x00005de0 - OPEN
Thread ID = 0x00001040, Process ID = 0x00001520

0x771031d2: oleaut32!DllGetClassObject+0x000009a5
0x77102cac: oleaut32!DllGetClassObject+0x0000047f
0x769de342: ole32!CoUnmarshalInterface+0x00000b4e
0x769ddfc3: ole32!CoUnmarshalInterface+0x000007cf
--------------------------------------
Handle = 0x000053d8 - OPEN
Thread ID = 0x00001040, Process ID = 0x00001520

0x771031d2: oleaut32!DllGetClassObject+0x000009a5
0x77102cac: oleaut32!DllGetClassObject+0x0000047f
0x769de342: ole32!CoUnmarshalInterface+0x00000b4e
0x769ddfc3: ole32!CoUnmarshalInterface+0x000007cf
--------------------------------------
Handle = 0x0000574c - OPEN
Thread ID = 0x00001040, Process ID = 0x00001520

0x771031d2: oleaut32!DllGetClassObject+0x000009a5
0x77102cac: oleaut32!DllGetClassObject+0x0000047f
0x769de342: ole32!CoUnmarshalInterface+0x00000b4e
0x769ddfc3: ole32!CoUnmarshalInterface+0x000007cf