<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>.NET Debugging Demos Lab 3: Memory</title><link>http://blogs.msdn.com/tess/archive/2008/02/15/net-debugging-demos-lab-3-memory.aspx</link><description>TGIF, almost time for the weekend... but before you leave, here is lab 3. Todays debugging puzzle will be a Memory investigation. This time we are going to stress the BuggyBits site to create a high memory usage situation and figure out what caused it.</description><dc:language>sv-SE</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Link Listing - February 15, 2008</title><link>http://blogs.msdn.com/tess/archive/2008/02/15/net-debugging-demos-lab-3-memory.aspx#7734264</link><pubDate>Sat, 16 Feb 2008 16:01:34 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7734264</guid><dc:creator>Christopher Steen</dc:creator><description>&lt;p&gt;MSBuild The custom MSBuild task cookbook [Via: bart ] ASP.NET Simplifying ASP.NET ListView Control...&lt;/p&gt;
</description></item><item><title>Link Listing - February 15, 2008</title><link>http://blogs.msdn.com/tess/archive/2008/02/15/net-debugging-demos-lab-3-memory.aspx#7734270</link><pubDate>Sat, 16 Feb 2008 16:01:43 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7734270</guid><dc:creator>Christopher Steen</dc:creator><description>&lt;p&gt;Link Listing - February 15, 2008&lt;/p&gt;
</description></item><item><title>Interesting Finds: February 16, 2008</title><link>http://blogs.msdn.com/tess/archive/2008/02/15/net-debugging-demos-lab-3-memory.aspx#7736523</link><pubDate>Sat, 16 Feb 2008 18:45:27 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7736523</guid><dc:creator>Jason Haley</dc:creator><description /></item><item><title>re: .NET Debugging Demos Lab 3: Memory</title><link>http://blogs.msdn.com/tess/archive/2008/02/15/net-debugging-demos-lab-3-memory.aspx#7749004</link><pubDate>Sun, 17 Feb 2008 12:31:48 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7749004</guid><dc:creator>Aaron</dc:creator><description>&lt;p&gt;Say you want to find the contents of a string, so you !do. What if you get an error saying the string it too large to display ? How can you determine the contents of the string ?&lt;/p&gt;
&lt;p&gt;Cheers&lt;/p&gt;
&lt;p&gt;Aaron&lt;/p&gt;</description></item><item><title>re: .NET Debugging Demos Lab 3: Memory</title><link>http://blogs.msdn.com/tess/archive/2008/02/15/net-debugging-demos-lab-3-memory.aspx#7768965</link><pubDate>Mon, 18 Feb 2008 10:29:06 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7768965</guid><dc:creator>Tess</dc:creator><description>&lt;p&gt;if sos deems it too large to display you can do&lt;/p&gt;
&lt;p&gt;dc &amp;lt;address&amp;gt;+0xc &amp;nbsp;&lt;/p&gt;
&lt;p&gt;(which will dump out the characters at an offset 0xc from the string address, this is where the contents of the string start)&lt;/p&gt;
&lt;p&gt;or you can try da &amp;lt;address&amp;gt;+0xc or du &amp;lt;address&amp;gt;+0xc&lt;/p&gt;
&lt;p&gt;da = dump ascii, du = dump unicode&lt;/p&gt;
&lt;p&gt;You can also do &lt;/p&gt;
&lt;p&gt;dc &amp;lt;address&amp;gt;+0xc &amp;lt;address&amp;gt;+&amp;lt;size of string&amp;gt;&lt;/p&gt;
&lt;p&gt;if you want to dump out the whole string, you will get the size from the !do output&lt;/p&gt;
</description></item><item><title>re: .NET Debugging Demos Lab 3: Memory</title><link>http://blogs.msdn.com/tess/archive/2008/02/15/net-debugging-demos-lab-3-memory.aspx#7788201</link><pubDate>Tue, 19 Feb 2008 10:23:36 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7788201</guid><dc:creator>baal</dc:creator><description>&lt;p&gt;on my server, there are 10 w3wp.exe processes, when i add counters, &amp;nbsp;&amp;quot;select instance from list box&amp;quot;,in the list box there are &amp;nbsp;w3wp.exe#1, w3wp.exe#2...., i can't figure out which is i want.&lt;/p&gt;</description></item><item><title>re: .NET Debugging Demos Lab 3: Memory</title><link>http://blogs.msdn.com/tess/archive/2008/02/15/net-debugging-demos-lab-3-memory.aspx#7789138</link><pubDate>Tue, 19 Feb 2008 11:47:37 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7789138</guid><dc:creator>Tess</dc:creator><description>&lt;p&gt;That's quite a few w3wp.exe processes:) &amp;nbsp;you can run &lt;/p&gt;
&lt;p&gt;tlist -c from the debuggers directory to get a list of all processes and their command lines to try to identify the pid and then check which w3wp corresponds to which pid under the process counter...&lt;/p&gt;
&lt;p&gt;but you might as well just add the counters for all w3wp.exe processes and then based on the counters (like memory usage or cpu activity) you can probably figure out which one it is... &lt;/p&gt;
</description></item><item><title>re: .NET Debugging Demos Lab 3: Memory</title><link>http://blogs.msdn.com/tess/archive/2008/02/15/net-debugging-demos-lab-3-memory.aspx#7807662</link><pubDate>Wed, 20 Feb 2008 04:45:48 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7807662</guid><dc:creator>baal</dc:creator><description>&lt;p&gt;add the counters for all w3wp.exe processes&lt;/p&gt;
&lt;p&gt;----there are too many info got, i can't analyze them,it is too dificult for me. your method can't work.&lt;/p&gt;
&lt;p&gt;here i found a article: &lt;a rel="nofollow" target="_new" href="http://support.microsoft.com/kb/922775/en-us"&gt;http://support.microsoft.com/kb/922775/en-us&lt;/a&gt; ,in last ,it write &amp;quot;Multiple CLR performance counters appear that have names that resemble &amp;quot;W3wp#1&amp;quot; &amp;quot; i follow this way, but i can't understand which represent the PID of w3wp.exe. &lt;/p&gt;
&lt;p&gt;identify the pid of w3wp.exe between the .net counters and native counters are different. &amp;nbsp;for native counters , do some modification on key: &amp;nbsp;HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\PerfProc\Performance,&lt;/p&gt;
&lt;p&gt; this is what i found on msdn&lt;/p&gt;</description></item><item><title>re: .NET Debugging Demos Lab 3: Memory</title><link>http://blogs.msdn.com/tess/archive/2008/02/15/net-debugging-demos-lab-3-memory.aspx#7812116</link><pubDate>Wed, 20 Feb 2008 09:59:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7812116</guid><dc:creator>Tess</dc:creator><description>&lt;p&gt;then try tlist and if that doesn't help then then next thing i would suggest is to either shut down the processes and just start one or do something like hit a page repetedly while watching task manager to see which one of them the CPU usage/memory usage moves for to find the pid. &lt;/p&gt;
</description></item><item><title>.NET Debugging Demos Lab 4: High CPU Hang - Review</title><link>http://blogs.msdn.com/tess/archive/2008/02/15/net-debugging-demos-lab-3-memory.aspx#7917189</link><pubDate>Wed, 27 Feb 2008 14:31:28 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7917189</guid><dc:creator>If broken it is, fix it you should</dc:creator><description>&lt;p&gt;Hope you have had a chance to go through the high CPU lab... Some people already commented with the solution&lt;/p&gt;
</description></item><item><title>.NET Debugging Demos</title><link>http://blogs.msdn.com/tess/archive/2008/02/15/net-debugging-demos-lab-3-memory.aspx#7917303</link><pubDate>Wed, 27 Feb 2008 14:47:13 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7917303</guid><dc:creator>Paul Mooney </dc:creator><description>&lt;p&gt;Lab 1: HangLab 2: CrashLab 3: MemoryLab 4: High CPU Hang&lt;/p&gt;
</description></item><item><title>re: .NET Debugging Demos Lab 3: Memory</title><link>http://blogs.msdn.com/tess/archive/2008/02/15/net-debugging-demos-lab-3-memory.aspx#7943241</link><pubDate>Fri, 29 Feb 2008 09:29:40 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7943241</guid><dc:creator>baal</dc:creator><description>&lt;p&gt;&amp;quot; tlist -c &amp;nbsp;&amp;quot; is &amp;nbsp;useless for me! &amp;nbsp; this command output &amp;nbsp;is the same as the tab of processes in &amp;nbsp;Debug Diagnostic tool. i installed &amp;nbsp;Debug Diagnostic tool. I guess my server has native leak. on my server, there are a few w3wp.exe running. I can't stop the process and hit a page repetadly. the serve is production server on internet, many people will acess the web page.&lt;/p&gt;</description></item><item><title>re: .NET Debugging Demos Lab 3: Memory</title><link>http://blogs.msdn.com/tess/archive/2008/02/15/net-debugging-demos-lab-3-memory.aspx#7943903</link><pubDate>Fri, 29 Feb 2008 10:29:37 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7943903</guid><dc:creator>baal</dc:creator><description>&lt;p&gt;i got private bytes, virtual bytes &amp;nbsp;for &amp;nbsp;w3wp_6824 &amp;nbsp;and and #Bytes in all heaps for w3wp#5, w3wp#5 is the no. 6824 process.(i do as &amp;nbsp;&lt;a rel="nofollow" target="_new" href="http://support.microsoft.com/kb/922775/en-us"&gt;http://support.microsoft.com/kb/922775/en-us&lt;/a&gt; 's say.)&lt;/p&gt;
&lt;p&gt;but there are curves for private bytes, virtual bytes. but there is no curve for #Bytes in all heaps of w3wp#5. is it correct? ( the max, min, average value of &amp;nbsp;#Bytes in all heaps of w3wp#5 are the same. no value for last ). the #Bytes in all heaps for _global_ has curve( the max, min, average,last value of &amp;nbsp;#Bytes in all heaps of _global_ are exist and different)&lt;/p&gt;</description></item><item><title>re: .NET Debugging Demos Lab 3: Memory</title><link>http://blogs.msdn.com/tess/archive/2008/02/15/net-debugging-demos-lab-3-memory.aspx#7944422</link><pubDate>Fri, 29 Feb 2008 11:17:42 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7944422</guid><dc:creator>Tess</dc:creator><description>&lt;p&gt;The _global_ counters are not reliable. If you don't get values for #Bytes in all heaps for certain w3wp.exe processes it either means that you are not running the log as an admin (or someone with debug priviledges for the process) or the process is not serving .net content (most likely cause is probably a perms issue)&lt;/p&gt;
</description></item><item><title>re: .NET Debugging Demos Lab 3: Memory</title><link>http://blogs.msdn.com/tess/archive/2008/02/15/net-debugging-demos-lab-3-memory.aspx#7996963</link><pubDate>Mon, 03 Mar 2008 10:20:15 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7996963</guid><dc:creator>baal</dc:creator><description>&lt;p&gt;yes,it is the priviledges problem, I set Change the &amp;quot;Run As:&amp;quot; from &amp;quot;&amp;lt;Default&amp;gt;&amp;quot; to administrator ,but no data collect, I set to &amp;quot;&amp;lt;Default&amp;gt;&amp;quot; &amp;nbsp;is ok.&lt;/p&gt;</description></item><item><title>re: .NET Debugging Demos Lab 3: Memory</title><link>http://blogs.msdn.com/tess/archive/2008/02/15/net-debugging-demos-lab-3-memory.aspx#8571205</link><pubDate>Tue, 03 Jun 2008 11:21:44 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8571205</guid><dc:creator>Michal</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Is there away to get the value of a .Net variable from a memory dump?&lt;/p&gt;
&lt;p&gt;I known it's name, it is of type string and when running &lt;/p&gt;
&lt;p&gt;!dumpheap -stat &lt;/p&gt;
&lt;p&gt;I see that there are ~6000 strings on the heap...&lt;/p&gt;
&lt;p&gt;Thank's.&lt;/p&gt;</description></item><item><title>re: .NET Debugging Demos Lab 3: Memory</title><link>http://blogs.msdn.com/tess/archive/2008/02/15/net-debugging-demos-lab-3-memory.aspx#8571274</link><pubDate>Tue, 03 Jun 2008 12:22:15 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8571274</guid><dc:creator>Tess</dc:creator><description>&lt;p&gt;Hi Michal,&lt;/p&gt;
&lt;p&gt;You can't really search by variable name or even retreive the variable name from a memory dump in most cases, since once you compile the variable names are usually no longer in the process, they are only relevant for you as a coder. &amp;nbsp;I.e. to the process what is relevant is addresses and instructions.&lt;/p&gt;
&lt;p&gt;If however, you know that this is a member variable of another object, or you know that it is on a stack somewhere you might be able to get to it by dumping the stackobjects, dumping out all the statics, dumping out session variables or dumping out the parent class&lt;/p&gt;
</description></item><item><title>.NET 调试实例 - 信息和安装说明 (原创翻译)</title><link>http://blogs.msdn.com/tess/archive/2008/02/15/net-debugging-demos-lab-3-memory.aspx#8703093</link><pubDate>Mon, 07 Jul 2008 20:42:40 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8703093</guid><dc:creator>Justin</dc:creator><description>&lt;p&gt;.NET调试实例&lt;/p&gt;
&lt;p&gt;这是一个系列的调式实例，目的是为了帮助你在调式.NET应用程序中最常见的挂起(Hang)、性能(performance)、内存(memory)和系统崩溃(crash)方面获得一些...&lt;/p&gt;
</description></item><item><title>re: .NET Debugging Demos Lab 3: Memory</title><link>http://blogs.msdn.com/tess/archive/2008/02/15/net-debugging-demos-lab-3-memory.aspx#8957426</link><pubDate>Thu, 18 Sep 2008 18:25:16 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8957426</guid><dc:creator>J.W.</dc:creator><description>&lt;p&gt;Hi, Tess,&lt;/p&gt;
&lt;p&gt;Get a memory dump&lt;/p&gt;
&lt;p&gt;1. Open a command prompt and move to the debuggers directory and type in &amp;quot;adplus -hang -pn w3wp.exe -quiet&amp;quot; and hit enter&lt;/p&gt;
&lt;p&gt;Do we run it after tinyget returns or before tinyget returns?&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;</description></item><item><title>re: .NET Debugging Demos Lab 3: Memory</title><link>http://blogs.msdn.com/tess/archive/2008/02/15/net-debugging-demos-lab-3-memory.aspx#8958307</link><pubDate>Fri, 19 Sep 2008 09:33:25 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8958307</guid><dc:creator>Tess</dc:creator><description>&lt;p&gt;in this one you can wait until tinyget returns&lt;/p&gt;
</description></item><item><title>re: .NET Debugging Demos Lab 3: Memory</title><link>http://blogs.msdn.com/tess/archive/2008/02/15/net-debugging-demos-lab-3-memory.aspx#9256706</link><pubDate>Tue, 30 Dec 2008 09:45:50 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9256706</guid><dc:creator>JanIvan Qian</dc:creator><description>&lt;p&gt;Hi Tess, I'm using Vista Enterprise. But I couldn't follow you after running perfmon.exe in section &amp;quot;Set up a performance monitor log&amp;quot;. I guess there may be some difference in Vista. &lt;/p&gt;
&lt;p&gt;I have no idea how to move on cause I'm not familiar with performance counters. Could you please show me some light? Thanks :)&lt;/p&gt;</description></item><item><title>re: .NET Debugging Demos Lab 3: Memory</title><link>http://blogs.msdn.com/tess/archive/2008/02/15/net-debugging-demos-lab-3-memory.aspx#9287066</link><pubDate>Wed, 07 Jan 2009 12:10:47 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9287066</guid><dc:creator>Tess</dc:creator><description>&lt;p&gt;In Vista you would create a new data collector set instead. &amp;nbsp;In perfmon this is located under data collector sets/user defined, &amp;nbsp;right-click to create a new one and follow the wizard&lt;/p&gt;
&lt;p&gt;HTH&lt;/p&gt;
&lt;p&gt;Tess&lt;/p&gt;
</description></item><item><title>Debug Diag script for troubleshooting .NET 2.0 Memory leaks</title><link>http://blogs.msdn.com/tess/archive/2008/02/15/net-debugging-demos-lab-3-memory.aspx#9606668</link><pubDate>Tue, 12 May 2009 12:56:23 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9606668</guid><dc:creator>If broken it is, fix it you should</dc:creator><description>&lt;p&gt;I have put together a quick and dirty debug diag script for troubleshooting .net memory leaks. (attached&lt;/p&gt;
</description></item><item><title>re: .NET Debugging Demos Lab 3: Memory</title><link>http://blogs.msdn.com/tess/archive/2008/02/15/net-debugging-demos-lab-3-memory.aspx#9854430</link><pubDate>Fri, 31 Jul 2009 17:16:30 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9854430</guid><dc:creator>Chris</dc:creator><description>&lt;p&gt;Great site and great info. &amp;nbsp;My company brought in the win32 native debugging and the advanced .net debugging courses and I took them both. &amp;nbsp;&lt;/p&gt;
&lt;p&gt;I'm looking at a high mem utilization problem, and I'm seeing 181250 finalizable objects in gen 2. &amp;nbsp;I've been through a pretty fair number of dumps and have never seen this many objects in gen2, or any generation for that matter. &amp;nbsp;We just started using WF for our page navigation and the top 10 (by count and mem usage) of finalizable objects are System.Workflow objects&lt;/p&gt;
&lt;p&gt;38079 &amp;nbsp; &amp;nbsp; &amp;nbsp;1675476 System.Workflow.Activities.IfElseBranchActivity&lt;/p&gt;
&lt;p&gt;29112 &amp;nbsp; &amp;nbsp; &amp;nbsp;1048032 System.Workflow.Activities.Rules.RuleConditionReference&lt;/p&gt;
&lt;p&gt;Have you run across anything like this in Workflow scenarios?&lt;/p&gt;</description></item><item><title>re: .NET Debugging Demos Lab 3: Memory</title><link>http://blogs.msdn.com/tess/archive/2008/02/15/net-debugging-demos-lab-3-memory.aspx#9901559</link><pubDate>Thu, 01 Oct 2009 01:52:08 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9901559</guid><dc:creator>Sundar Paranthaman</dc:creator><description>&lt;p&gt;I am looking into the high number of SqlCeCommands in our application, when I dump the contents of SqlCeCommand in our applicaion, I see outputs like this. What does a HANDLE(WekSh) signify. It looks like that this could not cause memory leak, since the handle is weak it could be garbage collected based on the need.&lt;/p&gt;
&lt;p&gt;DOMAIN(00000000000E5970):HANDLE(WeakSh):a425a8:Root:00000000032aef20(System.Data.SqlServerCe.SqlCeCommand)&lt;/p&gt;</description></item></channel></rss>