Run these on the crash dump to get a listing of all CLR threads at the moment of the dump.
.loadby sos clr
~*e!clrstack
| /* Gist for minimal repro for NHibernate issues | |
| * | |
| * 1. Create new (e.g. .NET 4.5.1) class library; | |
| * 2. Add NHibernate (e.g. 4.0.3) via NuGet; | |
| * 3. Add FluentNHibernate (e.g. 2.0.1) via NuGet; | |
| * 4. Add NUnit (e.g. 2.6.4) via NuGet; | |
| * 5. Create database "NhTestDb" on Sql Server "localhost" (or adjust for your specific situation); | |
| * 6. Compile; | |
| * 7. Run tests (should be green). | |
| * |
| using NUnit.Framework; | |
| using System; | |
| using System.Collections; | |
| using System.Collections.Generic; | |
| using System.Linq; | |
| using System.Reflection; | |
| namespace MyProject.Dto.Tests | |
| { | |
| [TestFixture] |
| // This regex is a basic check to find all Catch{} blocks | |
| // where a suspect throw statement is found (e.g. a state- | |
| // ment that mucks up the call stack by doing `throw ex;` | |
| // instead of `throw;`. | |
| // | |
| // It'll probably give false positives and have misses too. | |
| catch[^{]*\{[^{]*throw[^;][^}]*} |
| // CC-BY-SA 3.0, implementation by @LBushkin from http://stackoverflow.com/a/2776689/419956 | |
| public static class StringExtensions | |
| { | |
| public static string Truncate(this string value, int maxLength) | |
| { | |
| if (maxLength < 0) throw new ArgumentOutOfRangeException("maxLength"); | |
| if (string.IsNullOrEmpty(value)) return value; | |
| return value.Length <= maxLength ? value : value.Substring(0, maxLength); | |
| } | |
| } |
Run these on the crash dump to get a listing of all CLR threads at the moment of the dump.
.loadby sos clr
~*e!clrstack
| namespace DoubleVsDecimal | |
| { | |
| using System; | |
| using NUnit.Framework; | |
| [TestFixture] | |
| public class RangeTests | |
| { | |
| static readonly decimal[] interestingDecimals = new decimal[] { | |
| decimal.MinValue, |
| <# | |
| # It can be called like this: | |
| $url ="http://localhost:12345/home/upload" | |
| $form = @{ description = "Test 123." } | |
| $pwd = ConvertTo-SecureString "s3cr3t" -AsPlainText -Force | |
| $creds = New-Object System.Management.Automation.PSCredential ("john", $pwd) | |
| Get-ChildItem *.txt | Send-MultiPartFormToApi $url $form $creds -Verbose -WhatIf | |
| #> |
| using System; | |
| using System.ServiceModel; | |
| using System.ServiceModel.Description; | |
| using System.Threading.Tasks; | |
| namespace WcfMinimalTest | |
| { | |
| // WARNING! This minimal repro does no cleanup or error handling whatsoever!! | |
| // Loosely based on http://stackoverflow.com/a/7833188/419956 by @Anuraj |
| # Normal, colored prompt: | |
| #function Prompt | |
| #{ | |
| # $promptString = "PS " + $(Get-Location) + ">" | |
| # Write-Host $promptString -NoNewline -ForegroundColor Yellow | |
| # return " " | |
| #} | |
| # Posh-Git prompt | |
| function prompt { |
| /* | |
| * Create a new Class Library and copy/paste this file over the class1.cs file. | |
| * | |
| * On Package Mananager Console: | |
| * | |
| * @("MSTest.TestFramework","MSTest.TestAdapter","EntityFramework") | foreach { Install-Package $_ } | |
| * | |
| * Run `sqllocaldb c soquestion` to create the instance. | |
| * Afterwards create database `TestDb` e.g. with SSMS on that instance. | |
| */ |