|  |  |  |  |  |  | 
					            
						            
							            
								            |  | 
	Windows内核调试帖子发起人: 秋雨落   发起时间: 2008-11-09 20:57 下午   回复: 5
 
	 
		
			| 
					
						|         | 
						      
						        | 帖子排序: |  |  |  |  
				
					| 
							
								| 
										
											|  2008-11-09, 20:57 下午 |  
											| 
													 秋雨落 
 
   注册: 2008-11-03
 发 贴: 4
 |  |  
											| 
													
														|   | 
																
																	| 我在看雪论坛上看到,说用户态调用int 2dh,如果没有调试器就会返回异常,如果有调试器,那就不会返回异常。这个是什么个流程呢? 我在DBGPrint过程中也看到了一直调用到int 2dh,后面就是KiDebugService,然后CommonDispatchException,然后再到KiDispatchException,再到KdpStub或者KdpTrap,可是我怎么也没发现什么时候判断调试器的。
 
 
 |  |  
														|  | IP 地址: 已记录 | 报告 |  |  |  |  
				
					| 
							
								| 
										
											|  2008-11-10, 00:01 上午 |  
											| 
													 秋雨落 
 
   注册: 2008-11-03
 发 贴: 4
 |  |  
											| 
													
														|   | 
																
																	| 就是说用户态调试器如vc调试器或ollydbg也是KdpTrap? 
 |  |  
														|  | IP 地址: 已记录 | 报告 |  |  |  |  
				
					| 
							
								| 
										
											|  2008-11-10, 03:27 上午 |  
											| 
													 秋雨落 
 
   注册: 2008-11-03
 发 贴: 4
 |  |  
											| 
													
														|   | 
																
																	| 我查到的reactos中用户态异常处理的代码: if (FirstChance)
 {
 /* Make sure a debugger is present, and ignore user-mode if requested */
 if ((KiDebugRoutine) &&
 (!(PsGetCurrentProcess()->DebugPort)))
 {
 /* Call the debugger */
 if (KiDebugRoutine(TrapFrame,
 ExceptionFrame,
 ExceptionRecord,
 &Context,
 PreviousMode,
 FALSE))
 {
 /* Exception was handled */
 goto Handled;
 }
 }
 
 /* Forward exception to user mode debugger */
 if (DbgkForwardException(ExceptionRecord, TRUE, FALSE)) goto Exit;
 
 这儿先是判断 if ((KiDebugRoutine) &&
 (!(PsGetCurrentProcess()->DebugPort)))
 就是说DebugPort不为零的话,那么调用KiDebugRoutine,
 否则就直接DbgkForwardException发往调试器。
 
 
 |  |  
														|  | IP 地址: 已记录 | 报告 |  |  |  |  
		
			| 高端调试 » 软件调试 » Windows内核调试 » 请问大家一个关于int 2d的问题 |  |  
 |  |  |  |