|  |  |  |  |  |  | 
					            
						            
							            
								            |  | 
	Windows内核调试帖子发起人: pch   发起时间: 2008-10-09 12:39 下午   回复: 7
 
	 
		
			| 
					
						|         | 
						      
						        | 帖子排序: |  |  |  |  
				
					| 
							
								| 
										
											|  2008-10-09, 12:39 下午 |  
											| 
													 pch 
 
   注册: 2008-08-26
 发 贴: 28
 |  |  
											| 
													
														|   | 
																
																	| 最近在读wrk内核代码,实时提取线程调度信息,现在用dbgprint向windbg输出数据,由于添加的dgbprint语句过多,使得系统运行很慢,可否有其它的方法?想在内核代码中申请一段内存,然后把所需信息保存在这里,然后用dbgprint集中输出,内核中如何申请内存空间? 
 |  |  
														|  | IP 地址: 已记录 | 报告 |  |  |  |  
				
					| 
							
								| 
										
											|  2008-10-09, 14:23 下午 |  
											| 
													 格蠹老雷 
 
   注册: 2005-12-19
 发 贴: 1,303
 |  |  
											| 
													
														|   | 
																
																	| Windows的ETW(Event Trace for Windows)正是基于这样的想法而设计的。因此,你可以使用ETW。 
 |  |  
														|  | IP 地址: 已记录 | 报告 |  |  |  |  
				
					| 
							
								| 
										
											|  2008-10-09, 22:40 下午 |  
											| 
													 Coding 
 
   注册: 2008-05-31
 发 贴: 103
 |  |  
											| 
													
														|   | 
																
																	| ETW很好很强大,用来做log的话,首选这个。 有时候为了debug目的,也可以用ExAllocatePool来分配一段内存保存一些中间数据。用Windbg很容易得去查看这些数据,记住地址就可以了。
 
 
 |  |  
														|  | IP 地址: 已记录 | 报告 |  |  |  |  
				
					| 
							
								| 
										
											|  2008-11-05, 17:02 下午 |  
											| 
													 pch 
 
   注册: 2008-08-26
 发 贴: 28
 |  |  
											| 
													
														|   | 
																
																	| Raymond,你好!我想仔细研究下Event Trace for Windows,请问哪里能找到相关资料。 
 |  |  
														|  | IP 地址: 已记录 | 报告 |  |  |  |  
				
					| 
							
								| 
										
											|  2008-11-05, 18:10 下午 |  
											| 
													 格蠹老雷 
 
   注册: 2005-12-19
 发 贴: 1,303
 |  |  
											| 
													
														|   | 
																
																	| 《软件调试》的第16章用一整章的篇幅做了介绍。如果你没有《软件调试》,那么SDK和DDK中有一些介绍。请查看如下这些关键字:OpenTrace,ProcessTrace,WPP等。 
 |  |  
														|  | IP 地址: 已记录 | 报告 |  |  |  |  
				
					| 
							
								| 
										
											|  2008-11-05, 19:05 下午 |  
											| 
													 Coding 
 
   注册: 2008-05-31
 发 贴: 103
 |  |  
											| 
													
														|   | 
																
																	| 《软件调试》的一个参考书目也很不错 MS的文档 Getting Started with software Tracing in Windows Drivers 
 |  |  
														|  | IP 地址: 已记录 | 报告 |  |  |  |  
				
					| 
							
								| 
										
											|  2008-11-06, 09:31 上午 |  
											| 
													 pch 
 
   注册: 2008-08-26
 发 贴: 28
 |  |  
											| 
													
														|   | 
																
																	| 非常感谢Raymond,Coding.软件调试的第16章,我正在看。哪里能找到关于etw的更多应用实例啊? 
 |  |  
														|  | IP 地址: 已记录 | 报告 |  |  |  |  
				
					| 
							
								| 
										
											|  2008-11-06, 12:20 下午 |  
											| 
													 格蠹老雷 
 
   注册: 2005-12-19
 发 贴: 1,303
 |  |  
											| 
													
														|   | 
																
																	| 表16-5列出了十几个ETW工具/实例,P432给出了DDK中WPP的例子位置,P428中有SDK中例子程序的位置。 
 |  |  
														|  | IP 地址: 已记录 | 报告 |  |  |  |  
		
			| 高端调试 » 软件调试 » Windows内核调试 » Re: 请教:关于内存申请的问题 |  |  
 |  |  |  |