|  |  |  |  |  |  | 
					            
						            
							            
								            |  | 
	C/C++本地代码调试帖子发起人: Abstr   发起时间: 2015-03-05 17:18 下午   回复: 5
 
	 
		
			| 
					
						|         | 
						      
						        | 帖子排序: |  |  |  |  
				
					| 
							
								| 
										
											|  2015-03-05, 17:55 下午 |  
											| 
													 Bombs 
 
   注册: 2014-01-16
 发 贴: 15
 |  |  
											| 
													
														|   | 
																
																	| use windbg to debug ur debugger. 
 |  |  
														|  | IP 地址: 已记录 | 报告 |  |  |  |  
				
					| 
							
								| 
										
											|  2015-03-09, 15:37 下午 |  
											| 
													 Abstr 
 
   注册: 2014-11-05
 发 贴: 22
 |  |  
											| 
													
														|   | 
																
																	| 多谢张老师,确实是要使用到调试器相关知识处理问题。 上面说的问题,我已经有点眉目了。 
 简单的说下问题: 我在DllMain位置下断, 1、第一次接收到调试事件后返回DBG_NOT_HANDLED 2、异常返回程序执行SEH的处理代码 3、第二次接收到调试事件恢复断点 
 问题就出在第2和第3步之间,我用windbg反汇编了DllMain代码,发现__DllMainCRTStartup调用DllMain之前使用了__try包裹这段代码,之所以我在DllMain设置的断点和其他位置的断点表现的差异,应该出在SEH处理代码这里,有可能__DllMainCRTStartup捕获了这个异常,没作处理然后又抛了另外一个异常出来。这就导致我没受到DllMain断点第二次命中事件之前,就收到了另外一个异常,最后导致堆破坏错误。 
 请张老师看下,我说的是否有问题。 
 |  |  
														|  | IP 地址: 已记录 | 报告 |  |  |  |  
		
			| 高端调试 » 软件调试 » C/C++本地代码调试 » Re: 调试dll程序总是收到访问违规异常 |  |  
 |  |  |  |