  | 
					  | 
					  |  
					
					
	
    
 | 
                  
                    | 
                    | 					
				  
				            
					            
						            
							            
								            | 
									            
								             | 
            								
								            
									            
	Windows内核调试
	帖子发起人: jlflyfox   发起时间: 2009-05-13 16:50 下午   回复: 4
	
	
 
 
	 
		
			
				
					
						
							
							   
							
   
							
							
						 | 
						
						    
						      
						        | 
							          帖子排序: 
							            
						         | 
						        
							          
							          
						         | 
						       
						     
						 | 
					 
				 
			 | 
		 
	 
	
			
				
					
						
							
								
									
										
											
												
												 
                            2009-05-13, 16:50 下午
                        
											 | 
										 
										
											
												
													 
													
														jlflyfox
													
													
														 
														
  
														 注册: 2008-10-28
														
														 发 贴: 65
														
													
											  | 
											
												
													
														
															
																
																
																	请问如何在windbg分析一个进程dump的时候把一个handle定位到一个具体文件 
																
															
														 | 
													 
													
														| 
														  
														 | 
													 
												 
												
											 | 
										 
										
											
												
													
														
															 
														 | 
														
															
																
																	| 
																		
 我在调试一个进程阻塞的时候,发现它阻塞在WriteFile那里,我用userdump把进程给dump出来,用windbg分析,只能得到handle和buffer等信息,但无法确认是哪个文件。 
1、打印堆栈 
0:019> kv ChildEBP RetAddr  Args to Child               583cb07c 7c827d3b 77e65598 00000120 00000000 ntdll!KiFastSystemCallRet (FPO: [0,0,0]) 583cb080 77e65598 00000120 00000000 00000000 ntdll!NtWriteFile+0xc (FPO: [9,0,0]) 583cb0e0 6d3d4ab3 00000120 583cb124 000000d1 kernel32!WriteFile+0xf7 (FPO: [Non-Fpo]) WARNING: Stack unwind information not available. Following frames may be wrong. 583cb100 6d3d442a 00000120 00000000 583cb124 java_6d3d0000!handleWrite+0x23 583cd130 6d3d20ba 57214114 583cd1bc 583cd1b8 java_6d3d0000!VerifyClassCodesForMajorVersion+0x367 583cd158 0093a27e 00214114 583cd1bc 583cd1b8 java_6d3d0000!Java_java_io_FileOutputStream_writeBytes+0x97
  
2、查看120这个handle 
0:019> !handle 120 f Handle 00000120   Type          File   Attributes    0   GrantedAccess 0x120196:          ReadControl,Synch          Write/Add,Append/SubDir/CreatePipe,WriteEA,ReadAttr,WriteAttr   HandleCount   2   PointerCount  5   No object specific information available 
但我怎么获取这个handle到底指向哪个文件,另外由于情况特殊,无法动态调试,只能在死锁的时候dump出来,而且很不容易复现。 
   
																		 
																	 | 
																 
															 
														 | 
													 
													
														| 
															
														 | 
														
															IP 地址: 已记录  
														 | 
														
															报告
														 | 
													 
												 
											 | 
										 
									 
								 | 
							 
						 
					 | 
				 
			 
		
			
				
					
						
							
								
									
										
											
												
												 
                            2009-05-13, 18:49 下午
                        
											 | 
										 
										
											
												
													 
													
														格蠹老雷
													
													
														 
														
  
														 注册: 2005-12-19
														
														 发 贴: 1,303
														
													
												 
											 | 
											
												
													
														
															
																
																
																	Re: 请问如何在windbg分析一个进程dump的时候把一个handle定位到一个具体文件 
																
															
														 | 
													 
													
														| 
														  
														 | 
													 
												 
												
											 | 
										 
										
											
												
													
														
															 
														 | 
														
															
																
																	
																		
可以用Mark编写的小工具来看:
 http://technet.microsoft.com/en-us/sysinternals/bb896655.aspx
 也可以使用本地内核调试或者系统的转储,也就是观察内核态后的文件对象信息。
																		 
																	 | 
																 
															 
														 | 
													 
													
														| 
															
														 | 
														
															IP 地址: 已记录  
														 | 
														
															报告
														 | 
													 
												 
											 | 
										 
									 
								 | 
							 
						 
					 | 
				 
			 
		
			
				
					
						
							
								
									
										
											
												
												 
                            2009-05-13, 19:19 下午
                        
											 | 
										 
										
											
												
													 
													
														jlflyfox
													
													
														 
														
  
														 注册: 2008-10-28
														
														 发 贴: 65
														
													
											  | 
											
												
													
														
															
																
																
																	Re: 请问如何在windbg分析一个进程dump的时候把一个handle定位到一个具体文件 
																
															
														 | 
													 
													
														| 
														  
														 | 
													 
												 
												
											 | 
										 
										
											
												
													
														
															 
														 | 
														
															
																
																	
																		
谢谢!
 我当时用了这个工具的以前一个版本打印了的,但没有
 我根据代码怀疑是标准输出,是不是这个工具不会有0/1/2那三个文件句柄的输出哦
 
 现在没有环境,明天我再用你给的这个版本尝试下,也许这个版本修复了
																		 
																	 | 
																 
															 
														 | 
													 
													
														| 
															
														 | 
														
															IP 地址: 已记录  
														 | 
														
															报告
														 | 
													 
												 
											 | 
										 
									 
								 | 
							 
						 
					 | 
				 
			 
		
			
				
					
						
							
								
									
										
											
												
												 
                            2009-05-13, 19:35 下午
                        
											 | 
										 
										
											
												
													 
													
														MJ0011
													
													
														 
														
  
														 注册: 2008-04-24
														
														 发 贴: 112
														
													
												 
											 | 
											
												
													
														
															
																
																
																	Re: 请问如何在windbg分析一个进程dump的时候把一个handle定位到一个具体文件 
																
															
														 | 
													 
													
														| 
														  
														 | 
													 
												 
												
											 | 
										 
										
											
												
													
														
															 
														 | 
														
															
														 | 
													 
													
														| 
															
														 | 
														
															IP 地址: 已记录  
														 | 
														
															报告
														 | 
													 
												 
											 | 
										 
									 
								 | 
							 
						 
					 | 
				 
			 
		
			
				
					
						
							
								
									
										
											
												
												 
                            2009-05-13, 19:39 下午
                        
											 | 
										 
										
											
												
													 
													
														jlflyfox
													
													
														 
														
  
														 注册: 2008-10-28
														
														 发 贴: 65
														
													
											  | 
											
												
													
														
															
																
																
																	Re: 请问如何在windbg分析一个进程dump的时候把一个handle定位到一个具体文件 
																
															
														 | 
													 
													
														| 
														  
														 | 
													 
												 
												
											 | 
										 
										
											
												
													
														
															 
														 | 
														
															
																
																	
																		
汗,我错了!
 多好的机会啊,只有看明天了!
 
 谢谢二位啊
																		 
																	 | 
																 
															 
														 | 
													 
													
														| 
															
														 | 
														
															IP 地址: 已记录  
														 | 
														
															报告
														 | 
													 
												 
											 | 
										 
									 
								 | 
							 
						 
					 | 
				 
			 
		
	
	
		
			| 
				高端调试 » 软件调试 » Windows内核调试 » Re: 请问如何在windbg分析一个进程dump的时候把一个handle定位到一个具体文件
			 | 
			
				
			 | 
		 
	 
	
 
								             | 
                                              | 					
								            
									            
								             | 
							             
						             
					             
				             
			          
                     |