<?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>ASP.NET Debugging : Chat</title><link>http://blogs.msdn.com/tom/archive/tags/Chat/default.aspx</link><description>Tags: Chat</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>BLOG CHAT RECAP: SQL Injection</title><link>http://blogs.msdn.com/tom/archive/2008/07/21/blog-chat-recap-sql-injection.aspx</link><pubDate>Mon, 21 Jul 2008 22:44:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8762451</guid><dc:creator>Tom</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/tom/comments/8762451.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tom/commentrss.aspx?PostID=8762451</wfw:commentRss><wfw:comment>http://blogs.msdn.com/tom/rsscomments.aspx?PostID=8762451</wfw:comment><description>&lt;P&gt;We had a good chat on Friday and I think we got most, if not all, of the questions answered in regards to SQL Injection.&lt;/P&gt;
&lt;P&gt;For those of you that missed the chat, check out the transcript &lt;A class="" href="http://msdn.microsoft.com/en-us/chats/cc752951.aspx" mce_href="http://msdn.microsoft.com/en-us/chats/cc752951.aspx"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;If there is anything that we missed, please feel free to let me know.&amp;nbsp; Hope that everyone enjoyed the chat and we will look at having another one in the future on another topic.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8762451" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/tom/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.msdn.com/tom/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/tom/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://blogs.msdn.com/tom/archive/tags/Chat/default.aspx">Chat</category><category domain="http://blogs.msdn.com/tom/archive/tags/SQL+Injection/default.aspx">SQL Injection</category></item><item><title>BLOG CHAT: SQL Injection – Today</title><link>http://blogs.msdn.com/tom/archive/2008/07/18/blog-chat-sql-injection-today.aspx</link><pubDate>Fri, 18 Jul 2008 17:25:56 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8749471</guid><dc:creator>Tom</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/tom/comments/8749471.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tom/commentrss.aspx?PostID=8749471</wfw:commentRss><wfw:comment>http://blogs.msdn.com/tom/rsscomments.aspx?PostID=8749471</wfw:comment><description>&lt;p&gt;&lt;/p&gt;  &lt;p&gt;Just a quick reminder that our blog chat on SQL Injection is today at 2:00 PM EST or 11:00 AM PST.&amp;#160; Hope to see everyone there.&amp;#160; You can get to the chat here: &lt;a title="MSDN Online Chat" href="http://msdn.microsoft.com/en-us/chats/default.aspx"&gt;MSDN Online Chat&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Or you can add the Outlook reminder: &lt;a href="http://www.microsoft.com/communities/chats/vcs/08_0718_msdn_SQL.ics"&gt;Add to Calendar&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Look forward to talking to everyone.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8749471" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/tom/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.msdn.com/tom/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/tom/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://blogs.msdn.com/tom/archive/tags/Chat/default.aspx">Chat</category><category domain="http://blogs.msdn.com/tom/archive/tags/SQL+Injection/default.aspx">SQL Injection</category></item><item><title>BLOG CHAT: SQL Injection</title><link>http://blogs.msdn.com/tom/archive/2008/07/11/blog-chat-sql-injection.aspx</link><pubDate>Fri, 11 Jul 2008 17:16:06 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8721345</guid><dc:creator>Tom</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/tom/comments/8721345.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tom/commentrss.aspx?PostID=8721345</wfw:commentRss><wfw:comment>http://blogs.msdn.com/tom/rsscomments.aspx?PostID=8721345</wfw:comment><description>&lt;p&gt;So finally all the details have been worked out.&amp;#160; We are going to have this chat on Friday July 18th.&amp;#160; At 2:00 PM EST.&amp;#160; That is 11:00 AM PST.&lt;/p&gt;  &lt;p&gt;Shortly I will have a link where you can add a reminder to your calendar about this chat.&amp;#160; It will be handled a little different from the last one.&amp;#160; Since I am anticipating a lot of people to want to join this chat, I am going to use the &lt;a href="http://msdn.microsoft.com/en-us/chats/default.aspx"&gt;MSDN Online Chat&lt;/a&gt;.&amp;#160; This is a bit different from the last one, but I don’t think we will have any problems using it.&amp;#160; It is a very nice chat interface.&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="400" border="1"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="400"&gt;         &lt;p&gt;&lt;a name="08_0718_msdn_SQL"&gt;&lt;/a&gt;&lt;b&gt;SQL Injection and What To Do About It&lt;/b&gt;            &lt;br /&gt;SQL Injection is a rather hot topic currently, this chat is designed to answer the questions people have and help people to avoid the problem. We hope to cover best practices and offer advice to help ease any pain being seen. This is meant to answer as a question/answer chat so please bring your questions to us. &lt;/p&gt;          &lt;p&gt;&lt;a href="http://www.microsoft.com/communities/chats/vcs/08_0718_msdn_SQL.ics"&gt;&lt;b&gt;Add to Calendar&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/communities/chats/vcs/08_0718_msdn_SQL.ics"&gt;&lt;b&gt;&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I will update this post as soon as I have the link to add this to your calendar.&amp;#160; But you can go to the link above and find the chat on the 18th even without the reminder.&lt;/p&gt;  &lt;p&gt;Hope to see you there !&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblogs.msdn.com%2ftom%2farchive%2f2008%2f07%2f11%2fblog-chat-sql-injection.aspx"&gt;&lt;img alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblogs.msdn.com%2ftom%2farchive%2f2008%2f07%2f11%2fblog-chat-sql-injection.aspx" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8721345" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/tom/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.msdn.com/tom/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.msdn.com/tom/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://blogs.msdn.com/tom/archive/tags/Chat/default.aspx">Chat</category><category domain="http://blogs.msdn.com/tom/archive/tags/SQL+Injection/default.aspx">SQL Injection</category></item><item><title>Blog Chat: What would you like to talk about?</title><link>http://blogs.msdn.com/tom/archive/2008/06/19/blog-chat-what-would-you-like-to-talk-about.aspx</link><pubDate>Thu, 19 Jun 2008 17:19:30 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8621845</guid><dc:creator>Tom</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.msdn.com/tom/comments/8621845.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tom/commentrss.aspx?PostID=8621845</wfw:commentRss><wfw:comment>http://blogs.msdn.com/tom/rsscomments.aspx?PostID=8621845</wfw:comment><description>&lt;p&gt;I am thinking of having another chat in the coming weeks and wanted to see if there were any topics that you really wanted to talk about.&amp;#160; We seemed to get a lot of discussion going around SQL Injection so I thought that may be a good topic.&amp;#160; Are there any other suggestions?&amp;#160; I would like to try to have a focused chat on something but if there isn’t that much demand for one topic, we can always open it up to any topic that is discussed on this blog.&lt;/p&gt;  &lt;p&gt;So let me know what you would like to see.&amp;#160; If we do talk about SQL Injection, I am going to make sure some of the SQL experts from Microsoft join the chat as well.&lt;/p&gt;  &lt;p&gt;Look forward to hearing what you want to chat about.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblogs.msdn.com%2ftom%2farchive%2f2008%2f06%2f19%2fblog-chat-what-would-you-like-to-talk-about.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblogs.msdn.com%2ftom%2farchive%2f2008%2f06%2f19%2fblog-chat-what-would-you-like-to-talk-about.aspx" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8621845" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/tom/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.msdn.com/tom/archive/tags/Debugging/default.aspx">Debugging</category><category domain="http://blogs.msdn.com/tom/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.msdn.com/tom/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/tom/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://blogs.msdn.com/tom/archive/tags/Chat/default.aspx">Chat</category></item><item><title>Chat Question: Why do we see an exception on the heap, but it isn’t on a stack?</title><link>http://blogs.msdn.com/tom/archive/2008/04/21/chat-question-why-do-we-see-an-exception-on-the-heap-but-it-isn-t-on-a-stack.aspx</link><pubDate>Mon, 21 Apr 2008 17:06:14 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8414641</guid><dc:creator>Tom</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/tom/comments/8414641.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tom/commentrss.aspx?PostID=8414641</wfw:commentRss><wfw:comment>http://blogs.msdn.com/tom/rsscomments.aspx?PostID=8414641</wfw:comment><description>&lt;p&gt;So there is a common issue that people run across when they start trying to debug managed code.&amp;#160; How does the heap compare to the current threads that are running?&lt;/p&gt;  &lt;p&gt;For example, here is an exception that we have found in the managed heap running &lt;strong&gt;!dumpheap –stat&lt;/strong&gt;:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/tom/WindowsLiveWriter/bea440e49d63_11B34/MissingException_2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" title="MissingException" border="0" alt="MissingException" src="http://blogs.msdn.com/blogfiles/tom/WindowsLiveWriter/bea440e49d63_11B34/MissingException_thumb.png" width="444" height="234" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;But if we try to search for this exception on our callstacks using &lt;strong&gt;!gcroot&lt;/strong&gt;, all we see is:&lt;/p&gt;  &lt;div style="overflow: scroll"&gt;   &lt;pre class="code"&gt;0:066&amp;gt; !gcroot 11c11a44
Note: Roots found on stacks may be false positives. Run &amp;quot;!help gcroot&amp;quot; for
more info.
Scan Thread 18 OSThread be4
Scan Thread 24 OSThread 2e0
Scan Thread 25 OSThread 358
Scan Thread 26 OSThread fc
Scan Thread 27 OSThread 5c4
Scan Thread 28 OSThread c84
Scan Thread 13 OSThread dd4
Scan Thread 15 OSThread b80
Scan Thread 17 OSThread d84
Scan Thread 16 OSThread 724
Scan Thread 8 OSThread 624
Scan Thread 7 OSThread ef4
Scan Thread 6 OSThread db0
Scan Thread 9 OSThread 5e4
Scan Thread 29 OSThread 6b0
Scan Thread 30 OSThread 8b4
Scan Thread 31 OSThread 260
Scan Thread 32 OSThread 1a4
Scan Thread 33 OSThread 420
Scan Thread 34 OSThread 900
Scan Thread 35 OSThread ef8
Scan Thread 36 OSThread eb0
Scan Thread 37 OSThread f90
Scan Thread 38 OSThread f8c
Scan Thread 39 OSThread df0
Scan Thread 40 OSThread de0
Scan Thread 41 OSThread bc0
Scan Thread 42 OSThread 710
Scan Thread 43 OSThread 87c
Scan Thread 44 OSThread 5c8
Scan Thread 45 OSThread 638
Scan Thread 46 OSThread 550
Scan Thread 47 OSThread 73c
Scan Thread 48 OSThread e4
Scan Thread 49 OSThread ba4
Scan Thread 50 OSThread 504
Scan Thread 51 OSThread 8bc
Scan Thread 52 OSThread c08
Scan Thread 53 OSThread ac4
Scan Thread 54 OSThread e88
Scan Thread 55 OSThread e00
Scan Thread 56 OSThread 8f4
Scan Thread 57 OSThread c68
Scan Thread 58 OSThread fb0
Scan Thread 59 OSThread f50
Scan Thread 60 OSThread 36c
Scan Thread 61 OSThread 378
Scan Thread 62 OSThread d64
Scan Thread 63 OSThread 690
Scan Thread 64 OSThread 90c
Scan Thread 65 OSThread dd0&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;So this object is not on a thread or referenced in any global.&amp;#160; Why are we seeing it in the heap?&lt;/p&gt;

&lt;p&gt;The answer is that it was on a thread, but that thread has since completed executing, but the GC (Garbage Collector) hasn’t run yet to clean up this object.&amp;#160; So the object will remain in the managed heap until the GC runs the next time.&amp;#160; The GC can run against the different generations, so if it runs against the generation that contains this Exception object, then it will be cleaned up and removed from the heap.&amp;#160; You can look &lt;a href="http://blogs.msdn.com/tess/archive/2008/04/17/how-does-the-gc-work-and-what-are-the-sizes-of-the-different-generations.aspx"&gt;here&lt;/a&gt; for more information on the generations of the managed heap.&lt;/p&gt;

&lt;p&gt;Keep checking the &lt;a href="http://blogs.msdn.com/tom/archive/2008/04/02/recap-asp-net-blog-chat.aspx"&gt;RECAP- ASP.NET Blog Chat&lt;/a&gt; to see other topics that &lt;a href="http://blogs.msdn.com/Tess"&gt;Tess&lt;/a&gt; or I write about.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblogs.msdn.com%2ftom%2farchive%2f2008%2f04%2f21%2fchat-question-why-do-we-see-an-exception-on-the-heap-but-it-isn-t-on-a-stack.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblogs.msdn.com%2ftom%2farchive%2f2008%2f04%2f21%2fchat-question-why-do-we-see-an-exception-on-the-heap-but-it-isn-t-on-a-stack.aspx" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8414641" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/tom/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.msdn.com/tom/archive/tags/Debugging/default.aspx">Debugging</category><category domain="http://blogs.msdn.com/tom/archive/tags/Chat/default.aspx">Chat</category></item><item><title>Chat Question: What extension to use in what situation</title><link>http://blogs.msdn.com/tom/archive/2008/04/18/chat-question-what-extension-to-use-in-what-situation.aspx</link><pubDate>Fri, 18 Apr 2008 18:34:13 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8408068</guid><dc:creator>Tom</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/tom/comments/8408068.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tom/commentrss.aspx?PostID=8408068</wfw:commentRss><wfw:comment>http://blogs.msdn.com/tom/rsscomments.aspx?PostID=8408068</wfw:comment><description>&lt;p&gt;So we have a bunch of debugger extensions that we need to use depending on the situation.&amp;#160; So here are the extensions that can depend on various situations and when to use which.&amp;#160; The first thing to decide is to load the right DLL for the Framework version and Process version:&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="1" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="133"&gt;&lt;strong&gt;Extension&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="133"&gt;&lt;strong&gt;Process Version&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="133"&gt;&lt;strong&gt;Framework Version&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;clr10\sos.dll&lt;/td&gt;        &lt;td valign="top" width="133"&gt;any 32-bit process&lt;/td&gt;        &lt;td valign="top" width="133"&gt;.NET 1.0/.NET 1.1&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;Framework\v2.0.50727\sos.dll&lt;/td&gt;        &lt;td valign="top" width="133"&gt;any 32-bit process&lt;/td&gt;        &lt;td valign="top" width="133"&gt;.NET 2.0/.NET 3.0/.NET 3.5&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;Framework64\v2.0.50727\sos.dll&lt;/td&gt;        &lt;td valign="top" width="133"&gt;any 64-bit process&lt;/td&gt;        &lt;td valign="top" width="133"&gt;.NET 2.0/.NET 3.0/.NET 3.5&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;IISInfo.dll&lt;/td&gt;        &lt;td valign="top" width="133"&gt;any 32-bit process&lt;/td&gt;        &lt;td valign="top" width="133"&gt;N/A – IIS extension&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Keep in mind that you can run a 32-bit process on a 64-bit operating system.&amp;#160; You would still use the 32-bit files to debug it.&lt;/p&gt;  &lt;p&gt;If you are dealing with a crash, a good starting point is always to run &lt;strong&gt;!analyze -v&lt;/strong&gt;.&amp;#160; This will check for known issues and help to narrow down where the problem is for a crash.&amp;#160; It isn’t perfect for .NET, but will do a great job getting you something to go on.&lt;/p&gt;  &lt;p&gt;Once you have the right extension loaded, then you can start troubleshooting things.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Note: In the future, I hope to have a new extension that will run on top of SOS.dll and allow you to do some more advanced functions.&amp;#160; This will give similar results to the clr10\sos.dll extension.&amp;#160; But it will be able to run against all versions of the framework.&amp;#160; I am still flushing things out on that, feel free to give me your comments &lt;a href="http://blogs.msdn.com/tom/archive/2008/03/25/asp-net-and-sos.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Keep checking the &lt;a href="http://blogs.msdn.com/tom/archive/2008/04/02/recap-asp-net-blog-chat.aspx"&gt;RECAP- ASP.NET Blog Chat&lt;/a&gt; to see other topics that &lt;a href="http://blogs.msdn.com/Tess"&gt;Tess&lt;/a&gt; or I write about.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblogs.msdn.com%2ftom%2farchive%2f2008%2f04%2f18%2fchat-question-what-extension-to-use-in-what-situation.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblogs.msdn.com%2ftom%2farchive%2f2008%2f04%2f18%2fchat-question-what-extension-to-use-in-what-situation.aspx" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8408068" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/tom/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.msdn.com/tom/archive/tags/Debugging/default.aspx">Debugging</category><category domain="http://blogs.msdn.com/tom/archive/tags/High+Memory/default.aspx">High Memory</category><category domain="http://blogs.msdn.com/tom/archive/tags/Chat/default.aspx">Chat</category></item><item><title>Chat Question: Memory Limits for 32-bit and 64-bit processes</title><link>http://blogs.msdn.com/tom/archive/2008/04/10/chat-question-memory-limits-for-32-bit-and-64-bit-processes.aspx</link><pubDate>Thu, 10 Apr 2008 18:00:24 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8375076</guid><dc:creator>Tom</dc:creator><slash:comments>13</slash:comments><comments>http://blogs.msdn.com/tom/comments/8375076.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tom/commentrss.aspx?PostID=8375076</wfw:commentRss><wfw:comment>http://blogs.msdn.com/tom/rsscomments.aspx?PostID=8375076</wfw:comment><description>&lt;p&gt;During our recent blog chat, there were a number of topics that were asked about and I am going to expand on some of them.&amp;#160; The first one is the memory limits for different processes.&lt;/p&gt;  &lt;p&gt;This really depends on a few different things.&amp;#160; The architecture of the process (32-bit or 64-bit) and also the architecture of the Operating System the process is running on.&amp;#160; For 32-bit it also depends if you use the &lt;a href="http://technet.microsoft.com/en-us/library/bb124810.aspx"&gt;/3GB switch&lt;/a&gt; or not.&lt;/p&gt;  &lt;p&gt;So I broke this up based on these things into the table below, this is the maximum amount of memory available for the process assuming you have that much RAM and Pagefile space.&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="1" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="133"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="133"&gt;&lt;strong&gt;32-bit OS&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="133"&gt;&lt;strong&gt;64-bit OS&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;&lt;strong&gt;32-bit process&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="133"&gt;2 GB&lt;/td&gt;        &lt;td valign="top" width="133"&gt;4 GB&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;&lt;strong&gt;32-bit process with /3GB&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="133"&gt;3 GB&lt;/td&gt;        &lt;td valign="top" width="133"&gt;N/A&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="133"&gt;&lt;strong&gt;64-bit process&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="133"&gt;N/A&lt;/td&gt;        &lt;td valign="top" width="133"&gt;16 TB&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;These process numbers are contingent on how much RAM and disk space you have, so if you have 4 GB of RAM and 4 GB Pagefile, the total memory of all running processes can&amp;#8217;t be greater then 8 GB.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Note: If you let Windows manage your Pagefile size, when you hit this limit, Windows will try to grow your Pagefile as long as there is disk space available.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;For the amount a .NET application will use before we can expect to see out of memory, those numbers are:&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="1" width="400"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="131"&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="134"&gt;&lt;strong&gt;32-bit OS&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="133"&gt;&lt;strong&gt;64-bit OS&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="131"&gt;&lt;strong&gt;32-bit process&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="134"&gt;800-1200 MB&lt;/td&gt;        &lt;td valign="top" width="133"&gt;2800 MB&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="131"&gt;&lt;strong&gt;32-bit process with /3GB&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="134"&gt;1800 MB&lt;/td&gt;        &lt;td valign="top" width="133"&gt;N/A&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="131"&gt;&lt;strong&gt;64-bit process&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="134"&gt;N/A&lt;/td&gt;        &lt;td valign="top" width="133"&gt;2800 MB if using a 4 GB process or more if more RAM (around 70% of RAM + Pagefile)&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Keep in mind that although a .NET process can grow this large, if the process is multiple GB in size, it can become very difficult for the Garage Collector to keep up with the memory as Generation 2 will become very large.&amp;#160; I&amp;#8217;ll talk about the generations more in an upcoming post.&lt;/p&gt;  &lt;p&gt;Hopefully that will clear up how much memory each one uses.&lt;/p&gt;  &lt;p&gt;Keep checking the &lt;a title="RECAP- ASP.NET Blog Chat" href="http://blogs.msdn.com/tom/archive/2008/04/02/recap-asp-net-blog-chat.aspx"&gt;RECAP- ASP.NET Blog Chat&lt;/a&gt; to see other topics that &lt;a href="http://blogs.msdn.com/tess"&gt;Tess&lt;/a&gt; or I write about.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblogs.msdn.com%2ftom%2farchive%2f2008%2f04%2f10%2fchat-question-memory-limits-for-32-bit-and-64-bit-processes.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblogs.msdn.com%2ftom%2farchive%2f2008%2f04%2f10%2fchat-question-memory-limits-for-32-bit-and-64-bit-processes.aspx" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8375076" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/tom/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.msdn.com/tom/archive/tags/Debugging/default.aspx">Debugging</category><category domain="http://blogs.msdn.com/tom/archive/tags/High+Memory/default.aspx">High Memory</category><category domain="http://blogs.msdn.com/tom/archive/tags/Chat/default.aspx">Chat</category></item><item><title>RECAP: ASP.NET Blog Chat</title><link>http://blogs.msdn.com/tom/archive/2008/04/02/recap-asp-net-blog-chat.aspx</link><pubDate>Wed, 02 Apr 2008 18:36:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8351690</guid><dc:creator>Tom</dc:creator><slash:comments>7</slash:comments><comments>http://blogs.msdn.com/tom/comments/8351690.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tom/commentrss.aspx?PostID=8351690</wfw:commentRss><wfw:comment>http://blogs.msdn.com/tom/rsscomments.aspx?PostID=8351690</wfw:comment><description>&lt;p&gt;Thanks to everyone that attended the chat we had today on &lt;a href="http://blogs.msdn.com/Tess" mce_href="http://blogs.msdn.com/Tess"&gt;Tess&lt;/a&gt; and my pages.&amp;#160; I think it went really well and we are going to continue these in the future and hopefully get to some more topics.&lt;/p&gt;  &lt;p&gt;I just wanted to let everyone know that we are going to be posting more information about the topics that were discussed in the chat.&amp;#160; Going into more detail and explaining things better.&amp;#160; But I wanted to give a quick summary of the topics that we discussed:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://blogs.msdn.com/tom/archive/2008/04/06/asp-net-tips-how-to-capture-a-dump.aspx"&gt;Basics of debugging, how to capture a dump&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Orphaned worker processes with IIS &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/tom/archive/tags/High+Memory/default.aspx"&gt;High memory in ASP.NET&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a class="" href="http://blogs.msdn.com/tom/archive/2008/04/10/chat-question-memory-limits-for-32-bit-and-64-bit-processes.aspx" mce_href="http://blogs.msdn.com/tom/archive/2008/04/10/chat-question-memory-limits-for-32-bit-and-64-bit-processes.aspx"&gt;Memory limits for 32-bit and 64-bit processes&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;If dumps are different from different tools &lt;/li&gt;    &lt;li&gt;Preemptive GC and how that is handled &lt;/li&gt;    &lt;li&gt;managed and native resources being leaked &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/tess/archive/2008/04/17/how-does-the-gc-work-and-what-are-the-sizes-of-the-different-generations.aspx"&gt;GC Gen sizes including the Large Object Heap&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;!locks taking a parameter &lt;/li&gt;    &lt;li&gt;Setting a breakpoint in managed code &lt;/li&gt;    &lt;li&gt;When do we see ObjectDisposedException &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/tom/archive/2008/03/25/asp-net-and-sos.aspx"&gt;future/schedule of SOS.dll&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Problem with !pe and !soe leaking memory &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/tom/archive/2008/03/25/asp-net-and-sos.aspx"&gt;Functions would like to see added to 2.0 version of sos&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;How to debug a web farm at the same time &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/tom/archive/2008/04/21/chat-question-why-do-we-see-an-exception-on-the-heap-but-it-isn-t-on-a-stack.aspx"&gt;Seeing an exception in the heap, but not on a stack&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;!savemodule on a dynamic assembly failing &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/tom/archive/2008/04/18/chat-question-what-extension-to-use-in-what-situation.aspx"&gt;What extension to use in what situation&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;GC threads waiting in join &lt;/li&gt;    &lt;li&gt;&lt;a href="http://blogs.msdn.com/tom/archive/2008/04/12/recommended-reading.aspx"&gt;Good books around .NET debugging&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;64-bit DebugDiag &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I hope the people that attended enjoyed it.&amp;#160; And we would really like to get your feedback on the chat.&amp;#160; &lt;a href="http://blogs.msdn.com/Tess" mce_href="http://blogs.msdn.com/Tess"&gt;Tess&lt;/a&gt; and I will be posting on some of these topics above to go into more detail with them.&lt;/p&gt;  &lt;p&gt;Thanks&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblogs.msdn.com%2ftom%2farchive%2f2008%2f04%2f02%2frecap-asp-net-blog-chat.aspx" mce_href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblogs.msdn.com%2ftom%2farchive%2f2008%2f04%2f02%2frecap-asp-net-blog-chat.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblogs.msdn.com%2ftom%2farchive%2f2008%2f04%2f02%2frecap-asp-net-blog-chat.aspx" mce_src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblogs.msdn.com%2ftom%2farchive%2f2008%2f04%2f02%2frecap-asp-net-blog-chat.aspx" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8351690" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/tom/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.msdn.com/tom/archive/tags/Debugging/default.aspx">Debugging</category><category domain="http://blogs.msdn.com/tom/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.msdn.com/tom/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://blogs.msdn.com/tom/archive/tags/Chat/default.aspx">Chat</category></item><item><title>ASP.NET Blog Chat</title><link>http://blogs.msdn.com/tom/archive/2008/04/02/asp-net-blog-chat.aspx</link><pubDate>Wed, 02 Apr 2008 16:56:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8348597</guid><dc:creator>Tom</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/tom/comments/8348597.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tom/commentrss.aspx?PostID=8348597</wfw:commentRss><wfw:comment>http://blogs.msdn.com/tom/rsscomments.aspx?PostID=8348597</wfw:comment><description>&lt;p&gt;Welcome to the first blog chat for ASP.NET Debugging.&amp;#160; I hope you enjoy this and please let me know your comments on the experience.&amp;#160; I am planning on posting a recap of the conversation (or question and answers) after we are done to the blog so that others can see what was discussed.&amp;#160; If it gets busy and your question doesn't get answered, I will be reviewing the chat and will get an answer posted in the recap.&amp;#160; This chat will last an hour.&lt;/p&gt;  &lt;h2&gt;UPDATE&lt;/h2&gt;  &lt;p&gt;Thank you everyone who attended this chat.&amp;#160; It went really well and we will be doing more of these in the future.&amp;#160; Look for a post shortly with a recap of the chat we had today.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblogs.msdn.com%2ftom%2farchive%2f2008%2f04%2f02%2fasp-net-blog-chat.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblogs.msdn.com%2ftom%2farchive%2f2008%2f04%2f02%2fasp-net-blog-chat.aspx" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8348597" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/tom/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.msdn.com/tom/archive/tags/Debugging/default.aspx">Debugging</category><category domain="http://blogs.msdn.com/tom/archive/tags/IIS/default.aspx">IIS</category><category domain="http://blogs.msdn.com/tom/archive/tags/Chat/default.aspx">Chat</category></item><item><title>Blog chat on Wednesday about ASP.NET and Debugging</title><link>http://blogs.msdn.com/tom/archive/2008/03/28/blog-chat-on-wednesday-about-asp-net-and-debugging.aspx</link><pubDate>Fri, 28 Mar 2008 17:57:56 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8341845</guid><dc:creator>Tom</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/tom/comments/8341845.aspx</comments><wfw:commentRss>http://blogs.msdn.com/tom/commentrss.aspx?PostID=8341845</wfw:commentRss><wfw:comment>http://blogs.msdn.com/tom/rsscomments.aspx?PostID=8341845</wfw:comment><description>&lt;p&gt;This coming Wednesday, April 2nd, &lt;a href="http://blogs.msdn.com/Tess"&gt;Tess&lt;/a&gt; and I am going to be co-hosting a chat in our blogs.&amp;#160; For this first one, you will be able to ask any questions you may have around ASP.NET and Debugging.&amp;#160; We are going to be running the chat at 10:00 AM EST (Eastern Standard Time)/4:00 PM CET (Central European Time).&lt;/p&gt;  &lt;p&gt;In order to attend, all you have to do is come to either of our blogs, &lt;a href="http://blogs.msdn.com/tom"&gt;http://blogs.msdn.com/tom&lt;/a&gt; or &lt;a href="http://blogs.msdn.com/tess"&gt;http://blogs.msdn.com/tess&lt;/a&gt; and you will see a post where you can join in.&amp;#160; We are planning on running the chat for an hour.&lt;/p&gt;  &lt;p&gt;And so you know, the chat is going to be the same one on both blogs, so just come to either one and check it out.&amp;#160; And ask any questions you may have.&lt;/p&gt;  &lt;p&gt;We understand that this time isn't ideal for everyone and so we are considering having them at other times to better support other areas.&amp;#160; So please leave a comment and let either of us know if you are interested in attending a future chat and when would be a better time for you.&lt;/p&gt;  &lt;p&gt;We look forward to chatting with you.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fblogs.msdn.com%2ftom%2farchive%2f2008%2f03%2f28%2fblog-chat-on-wednesday-about-asp-net-and-debugging.aspx"&gt;&lt;img border="0" alt="kick it on DotNetKicks.com" src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fblogs.msdn.com%2ftom%2farchive%2f2008%2f03%2f28%2fblog-chat-on-wednesday-about-asp-net-and-debugging.aspx" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8341845" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/tom/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.msdn.com/tom/archive/tags/Debugging/default.aspx">Debugging</category><category domain="http://blogs.msdn.com/tom/archive/tags/Chat/default.aspx">Chat</category></item></channel></rss>