Update help doc with some missing aliases.
Set-StrictMode -Version Latest
$ErrorActionPreference="Stop"
-$RuntimeVersion11="1.1.13"
+function Get-Latest-Version([string]$channel, [string]$runtime = "", [bool]$coherent = $false) {
+
+ $VersionFileUrl = $null
+ if ($runtime -eq "dotnet") {
+ $VersionFileUrl = "$UncachedFeed/Runtime/$channel/latest.version"
+ }
+ elseif ($runtime -eq "aspnetcore") {
+ $VersionFileUrl = "$UncachedFeed/aspnetcore/Runtime/$channel/latest.version"
+ }
+ elseif ($runtime -eq "") {
+ if ($coherent) {
+ $VersionFileUrl = "$UncachedFeed/Sdk/$Channel/latest.coherent.version"
+ }
+ else {
+ $VersionFileUrl = "$UncachedFeed/Sdk/$Channel/latest.version"
+ }
+ }
+ else {
+ throw "Invalid value for $runtime"
+ }
+
+ $VersionFile = Join-Path -Path $TempDir latest.version
+
+ try {
+ Invoke-WebRequest $VersionFileUrl -OutFile $VersionFile
+ }
+ catch {
+ return ""
+ }
+
+ if (Test-Path $VersionFile) {
+ $VersionText = cat $VersionFile
+ $Data = @($VersionText.Split([char[]]@(), [StringSplitOptions]::RemoveEmptyEntries));
+ return $Data[1].Trim()
+ }
+
+ return ""
+}
+
+$ConfigFile = Join-Path -Path $DotNetDir Debugger.Tests.Versions.txt
+
$RuntimeVersion21="2.1.12"
-$RuntimeVersion22="2.2.6"
+$AspNetCoreVersion21="2.1.12"
$RuntimeVersion30="3.0.0"
$AspNetCoreVersion30="3.0.0"
-$DailyTestText="true"
+$RuntimeVersion31="3.1.0"
+$AspNetCoreVersion31="3.1.0"
+$RuntimeVersionLatest=""
+$AspNetCoreVersionLatest=""
-# Always install 2.1 for the daily test (scheduled builds) scenario because xunit needs it
-. $DotNetDir\dotnet-install.ps1 -Version $RuntimeVersion21 -Architecture $BuildArch -SkipNonVersionedFiles -Runtime dotnet -InstallDir $DotNetDir
-. $DotNetDir\dotnet-install.ps1 -Version $RuntimeVersion21 -Architecture $BuildArch -SkipNonVersionedFiles -Runtime aspnetcore -InstallDir $DotNetDir
-
-# Install the other versions of .NET Core runtime we are going to test. 1.1.x, 2.1.x, 2.2.x, 3.0.x
-# and latest. Only install the latest master for daily jobs and leave the RuntimeVersion*
-# config properties blank.
+$DailyTestText="true"
if (!$DailyTest) {
$DailyTestText="false"
- . $DotNetDir\dotnet-install.ps1 -Version $RuntimeVersion11 -Architecture $BuildArch -SkipNonVersionedFiles -Runtime dotnet -InstallDir $DotNetDir
- . $DotNetDir\dotnet-install.ps1 -Version $RuntimeVersion22 -Architecture $BuildArch -SkipNonVersionedFiles -Runtime dotnet -InstallDir $DotNetDir
- . $DotNetDir\dotnet-install.ps1 -Version $RuntimeVersion22 -Architecture $BuildArch -SkipNonVersionedFiles -Runtime aspnetcore -InstallDir $DotNetDir
}
-. $DotNetDir\dotnet-install.ps1 -Channel $Branch -Version latest -Architecture $BuildArch -SkipNonVersionedFiles -Runtime dotnet -InstallDir $DotNetDir
-. $DotNetDir\dotnet-install.ps1 -Channel $Branch -Version latest -Architecture $BuildArch -SkipNonVersionedFiles -Runtime aspnetcore -InstallDir $DotNetDir
-
-# Now download the latest runtime version and create a config file containing it
-$VersionFileUrl = "$UncachedFeed/Runtime/$Branch/latest.version"
-$VersionFile = Join-Path -Path $TempDir latest.version
-$ConfigFile = Join-Path -Path $DotNetDir Debugger.Tests.Versions.txt
+# Get the latest runtime versions for master and create a config file containing it
+try {
+ $RuntimeVersionLatest = Get-Latest-Version $Branch dotnet
+ $AspNetCoreVersionLatest = Get-Latest-Version $Branch aspnetcore
+ Write-Host "Latest $Branch runtime: $RuntimeVersionLatest aspnetcore: $AspNetCoreVersionLatest"
+}
+catch {
+ Write-Host "Could not download latest $Branch runtime version"
+}
-Invoke-WebRequest $VersionFileUrl -OutFile $VersionFile
+# Install the other versions of .NET Core runtime we are going to test. 2.1.x, 3.0.x, 3.1.x and latest.
+. $DotNetDir\dotnet-install.ps1 -Version $RuntimeVersion21 -Architecture $BuildArch -SkipNonVersionedFiles -Runtime dotnet -InstallDir $DotNetDir
+. $DotNetDir\dotnet-install.ps1 -Version $AspNetCoreVersion21 -Architecture $BuildArch -SkipNonVersionedFiles -Runtime aspnetcore -InstallDir $DotNetDir
-if (Test-Path $VersionFile) {
- $VersionText = cat $VersionFile
- $Data = @($VersionText.Split([char[]]@(), [StringSplitOptions]::RemoveEmptyEntries));
- $RuntimeVersionLatest = $Data[1].Trim()
+. $DotNetDir\dotnet-install.ps1 -Version $RuntimeVersion31 -Architecture $BuildArch -SkipNonVersionedFiles -Runtime dotnet -InstallDir $DotNetDir
+. $DotNetDir\dotnet-install.ps1 -Version $AspNetCoreVersion31 -Architecture $BuildArch -SkipNonVersionedFiles -Runtime aspnetcore -InstallDir $DotNetDir
- Write-Host "Latest $Branch version: $RuntimeVersionLatest"
+. $DotNetDir\dotnet-install.ps1 -Version $RuntimeVersionLatest -Architecture $BuildArch -SkipNonVersionedFiles -Runtime dotnet -InstallDir $DotNetDir
+. $DotNetDir\dotnet-install.ps1 -Version $AspNetCoreVersionLatest -Architecture $BuildArch -SkipNonVersionedFiles -Runtime aspnetcore -InstallDir $DotNetDir
- '<Configuration>
-<DailyTest>' + $DailyTestText +'</DailyTest>
-<RuntimeVersion11>' + $RuntimeVersion11 + '</RuntimeVersion11>
-<RuntimeVersion21>' + $RuntimeVersion21 + '</RuntimeVersion21>
-<RuntimeVersion22>' + $RuntimeVersion22 + '</RuntimeVersion22>
-<RuntimeVersion30>' + $RuntimeVersion30 + '</RuntimeVersion30>
-<AspNetCoreVersion30>' + $AspNetCoreVersion30 + '</AspNetCoreVersion30>
-<RuntimeVersionLatest>' + $RuntimeVersionLatest + '</RuntimeVersionLatest>
+'<Configuration>
+ <DailyTest>' + $DailyTestText +'</DailyTest>
+ <RuntimeVersion21>' + $RuntimeVersion21 + '</RuntimeVersion21>
+ <AspNetCoreVersion21>' + $AspNetCoreVersion21 + '</AspNetCoreVersion21>
+ <RuntimeVersion30>' + $RuntimeVersion30 + '</RuntimeVersion30>
+ <AspNetCoreVersion30>' + $AspNetCoreVersion30 + '</AspNetCoreVersion30>
+ <RuntimeVersion31>' + $RuntimeVersion31 + '</RuntimeVersion31>
+ <AspNetCoreVersion31>' + $AspNetCoreVersion31 + '</AspNetCoreVersion31>
+ <RuntimeVersionLatest>' + $RuntimeVersionLatest + '</RuntimeVersionLatest>
+ <AspNetCoreVersionLatest>' + $AspNetCoreVersionLatest + '</AspNetCoreVersionLatest>
</Configuration>' | Set-Content $ConfigFile
-
-}
-else {
- Write-Host "Could not download latest runtime version file"
-}
branch="master"
uncached_feed="https://dotnetcli.blob.core.windows.net/dotnet"
-runtime_version_11="1.1.13"
-runtime_version_21="2.1.12"
-runtime_version_22="2.2.6"
-runtime_version_30="3.0.0"
-aspnetcore_version_30="3.0.0"
+# args:
+# channel - $1
+# runtime - $2 (dotnet, aspnetcore, "")
+# coherent - $3
+get_latest_version_info() {
+ eval $invocation
+
+ local channel="$1"
+ local runtime="$2"
+ local coherent="$3"
+
+ local version_file="$temp_dir/latest.version"
+ local version_file_url=null
+ local version_latest=""
+
+ if [[ "$runtime" == "dotnet" ]]; then
+ version_file_url="$uncached_feed/Runtime/$channel/latest.version"
+ elif [[ "$runtime" == "aspnetcore" ]]; then
+ version_file_url="$uncached_feed/aspnetcore/Runtime/$channel/latest.version"
+ elif [ -z "$runtime" ]; then
+ if [ "$coherent" = true ]; then
+ version_file_url="$uncached_feed/Sdk/$channel/latest.coherent.version"
+ else
+ version_file_url="$uncached_feed/Sdk/$channel/latest.version"
+ fi
+ else
+ echo "Invalid value for $runtime"
+ return 1
+ fi
+
+ # Use curl if available, otherwise use wget
+ if command -v curl > /dev/null; then
+ curl "$version_file_url" -sSL --retry 10 --create-dirs -o "$version_file"
+ else
+ wget -q -O "$version_file" "$version_file_url"
+ fi
+
+ if [ -f "$version_file" ]; then
+ version_latest="$(cat $version_file | tail -n 1 | tr -d "\r")"
+ else
+ echo "Could not download latest runtime version file"
+ return 1
+ fi
+
+ echo "$version_latest"
+ return 0
+}
while [ $# -ne 0 ]; do
name=$1
shift
done
-daily_test_text="true"
+runtime_version_21="2.1.14"
+aspnetcore_version_21="2.1.14"
+runtime_version_30="3.0.0"
+aspnetcore_version_30="3.0.0"
+runtime_version_31="3.1.0"
+aspnetcore_version_31="3.1.0"
+runtime_version_latest=""
+aspnetcore_version_latest=""
-# Always install 2.1 for the daily test (scheduled builds) scenario because xunit needs it
-bash "$dotnet_dir/dotnet-install.sh" --version "$runtime_version_21" --architecture "$build_arch" --skip-non-versioned-files --runtime dotnet --install-dir "$dotnet_dir"
+config_file="$dotnet_dir/Debugger.Tests.Versions.txt"
-# Install the other versions of .NET Core runtime we are going to test. 1.1.x, 2.1.x, 2.2.x, 3.0.x
-# and latest. Only install the latest master for daily jobs and leave the RuntimeVersion*
-# config properties blank.
+daily_test_text="true"
if [ $daily_test == 0 ]; then
daily_test_text="false"
- bash "$dotnet_dir/dotnet-install.sh" --version "$runtime_version_11" --architecture "$build_arch" --skip-non-versioned-files --runtime dotnet --install-dir "$dotnet_dir"
- bash "$dotnet_dir/dotnet-install.sh" --version "$runtime_version_22" --architecture "$build_arch" --skip-non-versioned-files --runtime dotnet --install-dir "$dotnet_dir"
fi
-bash "$dotnet_dir/dotnet-install.sh" --channel $branch --version latest --architecture "$build_arch" --skip-non-versioned-files --runtime dotnet --install-dir "$dotnet_dir"
-bash "$dotnet_dir/dotnet-install.sh" --channel $branch --version latest --architecture "$build_arch" --skip-non-versioned-files --runtime aspnetcore --install-dir "$dotnet_dir"
-
-# Now download the latest runtime version and create a config file containing it
-version_file_url="$uncached_feed/Runtime/$branch/latest.version"
-version_file="$temp_dir/latest.version"
-config_file="$dotnet_dir/Debugger.Tests.Versions.txt"
+runtime_version_latest="$(get_latest_version_info $branch dotnet false)"
+aspnetcore_version_latest="$(get_latest_version_info $branch aspnetcore false)"
+echo "Latest $branch runtime: $runtime_version_latest aspnetcore: $aspnetcore_version_latest"
-# Use curl if available, otherwise use wget
-if command -v curl > /dev/null; then
- curl "$version_file_url" -sSL --retry 10 --create-dirs -o "$version_file"
-else
- wget -q -O "$version_file" "$version_file_url"
-fi
+# Install the other versions of .NET Core runtime we are going to test. 2.1.x, 3.0.x, 3.1.x and latest.
+bash "$dotnet_dir/dotnet-install.sh" --version "$runtime_version_21" --architecture "$build_arch" --skip-non-versioned-files --runtime dotnet --install-dir "$dotnet_dir"
+bash "$dotnet_dir/dotnet-install.sh" --version "$aspnetcore_version_21" --architecture "$build_arch" --skip-non-versioned-files --runtime aspnetcore --install-dir "$dotnet_dir"
-if [ -f "$version_file" ]; then
- runtime_version_latest=$(cat $version_file | tail -n 1 | tr -d "\r")
+bash "$dotnet_dir/dotnet-install.sh" --version "$runtime_version_31" --architecture "$build_arch" --skip-non-versioned-files --runtime dotnet --install-dir "$dotnet_dir"
+bash "$dotnet_dir/dotnet-install.sh" --version "$aspnetcore_version_31" --architecture "$build_arch" --skip-non-versioned-files --runtime aspnetcore --install-dir "$dotnet_dir"
- echo "Latest $branch version: '$runtime_version_latest'"
+bash "$dotnet_dir/dotnet-install.sh" --version "$runtime_version_latest" --architecture "$build_arch" --skip-non-versioned-files --runtime dotnet --install-dir "$dotnet_dir"
+bash "$dotnet_dir/dotnet-install.sh" --version "$aspnetcore_version_latest" --architecture "$build_arch" --skip-non-versioned-files --runtime aspnetcore --install-dir "$dotnet_dir"
- echo "<Configuration>
-<DailyTest>$daily_test_text</DailyTest>
-<RuntimeVersion11>$runtime_version_11</RuntimeVersion11>
-<RuntimeVersion21>$runtime_version_21</RuntimeVersion21>
-<RuntimeVersion22>$runtime_version_22</RuntimeVersion22>
-<RuntimeVersion30>$runtime_version_30</RuntimeVersion30>
-<AspNetCoreVersion30>$aspnetcore_version_30</AspNetCoreVersion30>
-<RuntimeVersionLatest>$runtime_version_latest</RuntimeVersionLatest>
+echo "<Configuration>
+ <DailyTest>$daily_test_text</DailyTest>
+ <RuntimeVersion21>$runtime_version_21</RuntimeVersion21>
+ <AspNetCoreVersion21>$aspnetcore_version_21</AspNetCoreVersion21>
+ <RuntimeVersion30>$runtime_version_30</RuntimeVersion30>
+ <AspNetCoreVersion30>$aspnetcore_version_30</AspNetCoreVersion30>
+ <RuntimeVersion31>$runtime_version_31</RuntimeVersion31>
+ <AspNetCoreVersion31>$aspnetcore_version_31</AspNetCoreVersion31>
+ <RuntimeVersionLatest>$runtime_version_latest</RuntimeVersionLatest>
+ <AspNetCoreVersionLatest>$aspnetcore_version_latest</AspNetCoreVersionLatest>
</Configuration>" > $config_file
-
-else
- echo "Could not download latest runtime version file"
-fi
<RuntimeFrameworkVersion>$(RuntimeVersionLatest)</RuntimeFrameworkVersion>
</Option>
<Option>
+ <!-- The debuggee built for 3.0 but run it on 3.1 -->
<BuildProjectFramework>netcoreapp3.0</BuildProjectFramework>
- <RuntimeFrameworkVersion>$(RuntimeVersion30)</RuntimeFrameworkVersion>
+ <RuntimeFrameworkVersion>$(RuntimeVersion31)</RuntimeFrameworkVersion>
</Option>
<Option Condition="'$(DailyTest)' != 'true'">
- <!-- The debuggee built for 2.1 but run it on 2.2 -->
- <BuildProjectFramework>netcoreapp2.1</BuildProjectFramework>
- <RuntimeFrameworkVersion>$(RuntimeVersion22)</RuntimeFrameworkVersion>
+ <BuildProjectFramework>netcoreapp3.0</BuildProjectFramework>
+ <RuntimeFrameworkVersion>$(RuntimeVersion30)</RuntimeFrameworkVersion>
</Option>
<Option Condition="'$(DailyTest)' != 'true'">
<BuildProjectFramework>netcoreapp2.1</BuildProjectFramework>
<RuntimeFrameworkVersion>$(RuntimeVersion21)</RuntimeFrameworkVersion>
</Option>
- <Option Condition="Exists('$(RepoRootDir)/.dotnet/shared/Microsoft.NETCore.App/$(RuntimeVersion11)')">
- <BuildProjectFramework>netcoreapp1.1</BuildProjectFramework>
- <RuntimeFrameworkVersion>$(RuntimeVersion11)</RuntimeFrameworkVersion>
- <!-- createdump doesn't exists in 1.1 -->
- <GenerateDumpWithGDB>true</GenerateDumpWithGDB>
- <!-- SOS needs at least 2.0 to run. The default without this is to use the runtime being debuggged to host SOS.NETCore -->
- <SOSHostRuntime>$(RepoRootDir)/.dotnet/shared/Microsoft.NETCore.App/$(RuntimeVersion21)</SOSHostRuntime>
- </Option>
<!--
SOS.StackAndOtherTests (cli because tested with embedded and portable PDBs)
-->
<TestName>SOS.StackAndOtherTests</TestName>
<Options>
<Option>
+ <!-- Build the debuggee for 3.0 but run it on latest -->
<BuildProjectFramework>netcoreapp3.0</BuildProjectFramework>
<BuildProjectMicrosoftNetCoreAppVersion>$(RuntimeVersion30)</BuildProjectMicrosoftNetCoreAppVersion>
- <RuntimeFrameworkVersion>$(RuntimeVersion30)</RuntimeFrameworkVersion>
+ <RuntimeFrameworkVersion>$(RuntimeVersionLatest)</RuntimeFrameworkVersion>
</Option>
<Option>
- <!-- Build the debuggee for 3.0 but run it on latest -->
+ <!-- Build the debuggee for 3.0 but run it on 3.1 -->
<BuildProjectFramework>netcoreapp3.0</BuildProjectFramework>
<BuildProjectMicrosoftNetCoreAppVersion>$(RuntimeVersion30)</BuildProjectMicrosoftNetCoreAppVersion>
- <RuntimeFrameworkVersion>$(RuntimeVersionLatest)</RuntimeFrameworkVersion>
+ <RuntimeFrameworkVersion>$(RuntimeVersion31)</RuntimeFrameworkVersion>
</Option>
<Option Condition="'$(DailyTest)' != 'true'">
- <BuildProjectFramework>netcoreapp2.1</BuildProjectFramework>
- <BuildProjectMicrosoftNetCoreAppVersion>$(RuntimeVersion21)</BuildProjectMicrosoftNetCoreAppVersion>
- <RuntimeFrameworkVersion>$(RuntimeVersion21)</RuntimeFrameworkVersion>
+ <BuildProjectFramework>netcoreapp3.0</BuildProjectFramework>
+ <BuildProjectMicrosoftNetCoreAppVersion>$(RuntimeVersion30)</BuildProjectMicrosoftNetCoreAppVersion>
+ <RuntimeFrameworkVersion>$(RuntimeVersion30)</RuntimeFrameworkVersion>
</Option>
<Option Condition="'$(DailyTest)' != 'true'">
- <!-- The debuggee built for 2.1 but run it on 2.2 -->
<BuildProjectFramework>netcoreapp2.1</BuildProjectFramework>
<BuildProjectMicrosoftNetCoreAppVersion>$(RuntimeVersion21)</BuildProjectMicrosoftNetCoreAppVersion>
- <RuntimeFrameworkVersion>$(RuntimeVersion22)</RuntimeFrameworkVersion>
- </Option>
- <Option Condition="Exists('$(RepoRootDir)/.dotnet/shared/Microsoft.NETCore.App/$(RuntimeVersion11)')">
- <BuildProjectFramework>netcoreapp1.1</BuildProjectFramework>
- <BuildProjectMicrosoftNetCoreAppVersion>$(RuntimeVersion11)</BuildProjectMicrosoftNetCoreAppVersion>
- <RuntimeFrameworkVersion>$(RuntimeVersion11)</RuntimeFrameworkVersion>
- <!-- createdump doesn't exists in 1.1 -->
- <GenerateDumpWithGDB>true</GenerateDumpWithGDB>
- <!-- SOS needs at least 2.0 to run. The default without this is to use the runtime being debuggged to host SOS.NETCore -->
- <SOSHostRuntime>$(RepoRootDir)/.dotnet/shared/Microsoft.NETCore.App/$(RuntimeVersion21)</SOSHostRuntime>
+ <RuntimeFrameworkVersion>$(RuntimeVersion21)</RuntimeFrameworkVersion>
</Option>
</Options>
</Option>
<!--
- SOS.WebApp3 (runs only on 3.0 aspnetcore)
+ SOS.WebApp3 (runs on 3.0, 3.1 and latest aspnetcore)
-->
<Option>
<TestName>SOS.WebApp3</TestName>
- <BuildProjectFramework>netcoreapp3.0</BuildProjectFramework>
- <RuntimeFrameworkVersion>$(AspNetCoreVersion30)</RuntimeFrameworkVersion>
+ <Options>
+ <!-- Build the debuggee for 3.0 but run it on latest -->
+ <!--
+ <Option>
+ <BuildProjectFramework>netcoreapp3.0</BuildProjectFramework>
+ <RuntimeFrameworkVersion>$(AspNetCoreVersionLatest)</RuntimeFrameworkVersion>
+ </Option>
+ -->
+ <Option>
+ <!-- Build the debuggee for 3.0 but run it on 3.1 -->
+ <BuildProjectFramework>netcoreapp3.0</BuildProjectFramework>
+ <RuntimeFrameworkVersion>$(AspNetCoreVersion31)</RuntimeFrameworkVersion>
+ </Option>
+ <Option Condition="'$(DailyTest)' != 'true'">
+ <BuildProjectFramework>netcoreapp3.0</BuildProjectFramework>
+ <RuntimeFrameworkVersion>$(AspNetCoreVersion30)</RuntimeFrameworkVersion>
+ </Option>
+ </Options>
</Option>
</Options>
<RuntimeFrameworkVersion>$(RuntimeVersionLatest)</RuntimeFrameworkVersion>
</Option>
<Option>
+ <!-- The debuggee built for 3.0 but run it on 3.1 -->
<BuildProjectFramework>netcoreapp3.0</BuildProjectFramework>
- <RuntimeFrameworkVersion>$(RuntimeVersion30)</RuntimeFrameworkVersion>
+ <RuntimeFrameworkVersion>$(RuntimeVersion31)</RuntimeFrameworkVersion>
</Option>
<Option Condition="'$(DailyTest)' != 'true'">
- <!-- The debuggee built for 2.1 but run it on 2.2 -->
- <BuildProjectFramework>netcoreapp2.1</BuildProjectFramework>
- <RuntimeFrameworkVersion>$(RuntimeVersion22)</RuntimeFrameworkVersion>
+ <BuildProjectFramework>netcoreapp3.0</BuildProjectFramework>
+ <RuntimeFrameworkVersion>$(RuntimeVersion30)</RuntimeFrameworkVersion>
</Option>
<Option Condition="'$(DailyTest)' != 'true'">
<BuildProjectFramework>netcoreapp2.1</BuildProjectFramework>
<RuntimeFrameworkVersion>$(RuntimeVersion21)</RuntimeFrameworkVersion>
</Option>
- <Option Condition="'$(DailyTest)' != 'true'">
- <BuildProjectFramework>netcoreapp1.1</BuildProjectFramework>
- <RuntimeFrameworkVersion>$(RuntimeVersion11)</RuntimeFrameworkVersion>
- <!-- SOS needs at least 2.0 to run. The default without this is to use the runtime being debuggged to host SOS.NETCore -->
- <SOSHostRuntime>$(HostRuntimeDir)</SOSHostRuntime>
- </Option>
<!--
SOS.StackAndOtherTests (cli because tested with full, embedded and portable PDBs)
-->
<TestName>SOS.StackAndOtherTests</TestName>
<Options>
<Option>
+ <!-- Build the debuggee for 3.0 but run it on latest -->
<BuildProjectFramework>netcoreapp3.0</BuildProjectFramework>
<BuildProjectMicrosoftNetCoreAppVersion>$(RuntimeVersion30)</BuildProjectMicrosoftNetCoreAppVersion>
- <RuntimeFrameworkVersion>$(RuntimeVersion30)</RuntimeFrameworkVersion>
+ <RuntimeFrameworkVersion>$(RuntimeVersionLatest)</RuntimeFrameworkVersion>
</Option>
<Option>
- <!-- Build the debuggee for 3.0 but run it on latest -->
+ <!-- Build the debuggee for 3.0 but run it on 3.1 -->
<BuildProjectFramework>netcoreapp3.0</BuildProjectFramework>
<BuildProjectMicrosoftNetCoreAppVersion>$(RuntimeVersion30)</BuildProjectMicrosoftNetCoreAppVersion>
- <RuntimeFrameworkVersion>$(RuntimeVersionLatest)</RuntimeFrameworkVersion>
+ <RuntimeFrameworkVersion>$(RuntimeVersion31)</RuntimeFrameworkVersion>
</Option>
<Option Condition="'$(DailyTest)' != 'true'">
- <BuildProjectFramework>netcoreapp2.1</BuildProjectFramework>
- <BuildProjectMicrosoftNetCoreAppVersion>$(RuntimeVersion21)</BuildProjectMicrosoftNetCoreAppVersion>
- <RuntimeFrameworkVersion>$(RuntimeVersion21)</RuntimeFrameworkVersion>
+ <BuildProjectFramework>netcoreapp3.0</BuildProjectFramework>
+ <BuildProjectMicrosoftNetCoreAppVersion>$(RuntimeVersion30)</BuildProjectMicrosoftNetCoreAppVersion>
+ <RuntimeFrameworkVersion>$(RuntimeVersion30)</RuntimeFrameworkVersion>
</Option>
<Option Condition="'$(DailyTest)' != 'true'">
- <!-- The debuggee built for 2.1 but run it on 2.2 -->
<BuildProjectFramework>netcoreapp2.1</BuildProjectFramework>
<BuildProjectMicrosoftNetCoreAppVersion>$(RuntimeVersion21)</BuildProjectMicrosoftNetCoreAppVersion>
- <RuntimeFrameworkVersion>$(RuntimeVersion22)</RuntimeFrameworkVersion>
- </Option>
- <Option Condition="'$(DailyTest)' != 'true'">
- <BuildProjectFramework>netcoreapp1.1</BuildProjectFramework>
- <BuildProjectMicrosoftNetCoreAppVersion>$(RuntimeVersion11)</BuildProjectMicrosoftNetCoreAppVersion>
- <RuntimeFrameworkVersion>$(RuntimeVersion11)</RuntimeFrameworkVersion>
- <!-- SOS needs at least 2.0 to run. The default without this is to use the runtime being debuggged to host SOS.NETCore -->
- <SOSHostRuntime>$(HostRuntimeDir)</SOSHostRuntime>
+ <RuntimeFrameworkVersion>$(RuntimeVersion21)</RuntimeFrameworkVersion>
</Option>
</Options>
</Option>
-->
<Option Condition="'$(DailyTest)' != 'true'">
<TestName>SOS.WebApp</TestName>
+ <BuildProjectFramework>netcoreapp2.1</BuildProjectFramework>
+ <RuntimeFrameworkVersion>$(AspNetCoreVersion21)</RuntimeFrameworkVersion>
+ </Option>
+ <!--
+ SOS.WebApp3 (runs on 3.0, 3.1 and latest aspnetcore)
+ -->
+ <Option>
+ <TestName>SOS.WebApp3</TestName>
<Options>
+ <!-- Build the debuggee for 3.0 but run it on latest -->
+ <!--
<Option>
- <BuildProjectFramework>netcoreapp2.1</BuildProjectFramework>
- <RuntimeFrameworkVersion>$(RuntimeVersion22)</RuntimeFrameworkVersion>
+ <BuildProjectFramework>netcoreapp3.0</BuildProjectFramework>
+ <RuntimeFrameworkVersion>$(AspNetCoreVersionLatest)</RuntimeFrameworkVersion>
</Option>
+ -->
<Option>
- <BuildProjectFramework>netcoreapp2.1</BuildProjectFramework>
- <RuntimeFrameworkVersion>$(RuntimeVersion21)</RuntimeFrameworkVersion>
+ <!-- Build the debuggee for 3.0 but run it on 3.1 -->
+ <BuildProjectFramework>netcoreapp3.0</BuildProjectFramework>
+ <RuntimeFrameworkVersion>$(AspNetCoreVersion31)</RuntimeFrameworkVersion>
+ </Option>
+ <Option Condition="'$(DailyTest)' != 'true'">
+ <BuildProjectFramework>netcoreapp3.0</BuildProjectFramework>
+ <RuntimeFrameworkVersion>$(AspNetCoreVersion30)</RuntimeFrameworkVersion>
</Option>
</Options>
</Option>
- <!--
- SOS.WebApp3 (runs only on 3.0 aspnetcore)
- -->
- <Option>
- <TestName>SOS.WebApp3</TestName>
- <BuildProjectFramework>netcoreapp3.0</BuildProjectFramework>
- <RuntimeFrameworkVersion>$(AspNetCoreVersion30)</RuntimeFrameworkVersion>
- </Option>
</Options>
<HostExe>$(RepoRootDir)\.dotnet\dotnet.exe</HostExe>
\\
+COMMAND: soe.
COMMAND: stoponexception.
!StopOnException [-derived]
[-create | -create2]
run against a minidump.
\\
+COMMAND: do.
COMMAND: dumpobj.
!DumpObj [-nofields] <object address>
String
\\
+COMMAND: da.
COMMAND: dumparray.
!DumpArray
[-start <startIndex>]
\\
+COMMAND: fq.
COMMAND: finalizequeue.
!FinalizeQueue [-detail] | [-allReady] [-short]
\\
+COMMAND: ao.
COMMAND: analyzeoom.
!AnalyzeOOM
\\
+COMMAND: lno.
COMMAND: listnearobj.
!ListNearObj <object address>
>> I have a chicken and egg problem. I want to use SOS commands, but the CLR
isn't loaded yet. What can I do?
-There currently isn't any way to get lldb to stop on libcoreclr.so module load.
+There currently isn't any way to get lldb to stop on libcoreclr.so module load, but
+you can now set a breakpoint on Main with "bpmd".
+
+ (lldb) bpmd Foo.dll Program.Main
>> I got the following error message. Now what?
any other tasks.
\\
+COMMAND: dso.
COMMAND: dumpstackobjects.
DumpStackObjects [-verify] [top stack [bottom stack]]
Failed to Start
Detached
\\
+
COMMAND: threads.
COMMAND: clrthreads.
Threads [-live] [-special]