diff --git a/.github/workflows/Build-And-Test.yml b/.github/workflows/Build-And-Test.yml
index 9fe5827ac..aec71a4df 100644
--- a/.github/workflows/Build-And-Test.yml
+++ b/.github/workflows/Build-And-Test.yml
@@ -150,7 +150,7 @@ jobs:
path: ${{ github.workspace }}/bin/DebugAdapterProtocolTests/Debug/CppTests/results.trx
osx_build:
- runs-on: macos-12
+ runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v4
@@ -168,8 +168,10 @@ jobs:
- run: |
${{ github.workspace }}/eng/Scripts/CI-Build.sh
- - run: |
- ${{ github.workspace }}/eng/Scripts/CI-Test.sh
+ # Disabling lldb-mi tests since DownloadLldbMI.sh will obtain
+ # an x64 version instead of an arm64 and test will fail.
+ # - run: |
+ # ${{ github.workspace }}/eng/Scripts/CI-Test.sh
- name: 'Upload Test Results'
uses: actions/upload-artifact@v4
diff --git a/README.md b/README.md
index 60b3c3a37..0deed2038 100644
--- a/README.md
+++ b/README.md
@@ -21,8 +21,9 @@ This repo also includes:
### Debug Multiple Platforms
-* Support for debugging C/C++ on [Android](http://blogs.msdn.com/b/vcblog/archive/2014/12/12/debug-jni-android-applications-using-visual-c-cross-platform-mobile.aspx) and [iOS](http://blogs.msdn.com/b/vcblog/archive/2015/04/29/debugging-c-code-on-ios-with-visual-studio-2015.aspx).
-* Debug on any platform that supports GDB, such as Linux and even [Raspberry Pi](http://blogs.msdn.com/b/vcblog/archive/2015/04/29/debug-c-code-on-linux-from-visual-studio.aspx).
+* Support for debugging C/C++ on [Android](http://blogs.msdn.com/b/vcblog/archive/2014/12/12/debug-jni-android-applications-using-visual-c-cross-platform-mobile.aspx) ~~and [iOS](http://blogs.msdn.com/b/vcblog/archive/2015/04/29/debugging-c-code-on-ios-with-visual-studio-2015.aspx).~~
+ * Note: iOS support is not available after Visual Studio 2022.
+* * Debug on any platform that supports GDB, such as Linux and even [Raspberry Pi](http://blogs.msdn.com/b/vcblog/archive/2015/04/29/debug-c-code-on-linux-from-visual-studio.aspx).
### Prerequisites
MIEngine can be built with either [Visual Studio](https://visualstudio.microsoft.com/downloads/) or with the [.NET CLI](https://dotnet.microsoft.com/download/dotnet).
diff --git a/build/Analyzers.targets b/build/Analyzers.targets
index 572fad403..a2074bfd9 100644
--- a/build/Analyzers.targets
+++ b/build/Analyzers.targets
@@ -1,18 +1,8 @@
-
- false
true
..\IDECodeAnalysis.ruleset
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/build/package_versions.settings.targets b/build/package_versions.settings.targets
index 248548b8e..ebddc4a8a 100644
--- a/build/package_versions.settings.targets
+++ b/build/package_versions.settings.targets
@@ -1,14 +1,14 @@
1.0.1
- 17.11.40262
+ 17.13.40008
13.0.3
- 17.2.60629.1
+ 17.14.10225.1
16.7.1
- 2.4.1
- 2.4.3
+ 2.9.2
+ 3.0.0
1.3.0
2.1.2
@@ -25,19 +25,19 @@
17.5.33428.366
17.5.33428.366
17.5.33428.366
- 17.11.40262
- 17.11.40262
- 17.11.20
- 17.11.40262
+ 17.12.40392
+ 17.13.40008
+ 17.13.2
+ 17.13.40008
15.0.26932
15.0.392
15.0.392
- 17.11.40262
+ 17.13.40008
17.3.2093
4.3.0
6.0.1
- 8.0.4
+ 8.0.5
\ No newline at end of file
diff --git a/eng/pipelines/VS-release.yml b/eng/pipelines/VS-release.yml
index d86512dc1..3f5c43f82 100644
--- a/eng/pipelines/VS-release.yml
+++ b/eng/pipelines/VS-release.yml
@@ -1,6 +1,11 @@
---
name: $(Date:yyyMMdd).$(Rev:r)
+trigger:
+ branches:
+ include:
+ - release_mdd
+
variables:
- name: TeamName
value: MDDDebugger
@@ -34,7 +39,11 @@ extends:
mb:
signing:
enabled: true
- signType: real
+ ${{ if eq(variables['Build.Reason'], 'IndividualCI') }}:
+ signType: real
+ signWithProd: true
+ ${{ else }}:
+ signType: test
zipSources: false
localization:
enabled: true
@@ -59,7 +68,7 @@ extends:
Write-Host "##vso[task.setvariable variable=MDDPackageVersion;]$version"
displayName: 'Set MDDPackage Version'
- - task: ms-vseng.MicroBuildShipTasks.55100717-a81d-45ea-a363-b8fe3ec375ad.MicroBuildInsertVsPayload@4
+ - task: ms-vseng.MicroBuildShipTasks.55100717-a81d-45ea-a363-b8fe3ec375ad.MicroBuildInsertVsPayload@5
displayName: 'Insert VS Payload'
inputs:
TargetBranch: $(TargetBranch)
@@ -68,6 +77,6 @@ extends:
DefaultConfigValues: 'VS.Redist.Debugger.MDD.MIEngine=$(MDDPackageVersion)'
RevisionTextFiles: 'src/SetupPackages/VC/IDE/MDD/core/revision.txt,src/SetupPackages/VC/IDE/MDD/res/revision.txt'
InsertionPayloadName: 'MIEngine $(MDDPackageVersion)'
- InsertionDescription: 'Updating MIEngine to $(MDDPackageVersion). See $(Release.Artifacts.MIEngine_MDD.BuildURI)'
+ InsertionDescription: 'Updating MIEngine to $(MDDPackageVersion).'
InsertionReviewers: $(InsertionReviewers)
...
\ No newline at end of file
diff --git a/eng/pipelines/VSCode-release.yml b/eng/pipelines/VSCode-release.yml
index 65912d99a..e1432247b 100644
--- a/eng/pipelines/VSCode-release.yml
+++ b/eng/pipelines/VSCode-release.yml
@@ -1,6 +1,11 @@
---
name: $(Date:yyyMMdd).$(Rev:r)
+trigger:
+ branches:
+ include:
+ - release-cpptools
+
variables:
- name: TeamName
value: MDDDebugger
@@ -33,7 +38,11 @@ extends:
mb:
signing:
enabled: true
- signType: real
+ ${{ if eq(variables['Build.Reason'], 'IndividualCI') }}:
+ signType: real
+ signWithProd: true
+ ${{ else }}:
+ signType: test
zipSources: false
localization:
enabled: true
diff --git a/eng/pipelines/resources/TSAConfig.json b/eng/pipelines/resources/TSAConfig.json
index bc6b0b5ca..797eacded 100644
--- a/eng/pipelines/resources/TSAConfig.json
+++ b/eng/pipelines/resources/TSAConfig.json
@@ -3,7 +3,7 @@
"notificationAliases": ["vsdbgnft@microsoft.com"],
"instanceUrl": "https://devdiv.visualstudio.com",
"projectName": "DevDiv",
- "areaPath": "DevDiv\\VS Diagnostics\\Debugger - XPlat\\Cpp",
+ "areaPath": "DevDiv\\VS Diagnostics\\Debugger\\VSCode and XPlat\\Cpp",
"iterationPath": "DevDiv",
"allTools": true
}
\ No newline at end of file
diff --git a/eng/pipelines/templates/DebuggerTesting-release.template.yml b/eng/pipelines/templates/DebuggerTesting-release.template.yml
index 52ad45a5e..927d7a00f 100644
--- a/eng/pipelines/templates/DebuggerTesting-release.template.yml
+++ b/eng/pipelines/templates/DebuggerTesting-release.template.yml
@@ -29,6 +29,8 @@ steps:
TargetFolders: '$(Build.SourcesDirectory)\bin\DebugAdapterProtocolTests\Release\drop'
- template: ../steps/CopyAndPublishSymbols.yml
+ parameters:
+ SourceFolder: '$(Build.SourcesDirectory)\bin\DebugAdapterProtocolTests\Release\drop'
- template: ../tasks/PublishPipelineArtifact.yml
parameters:
diff --git a/loc/MIDebugEngine.lsproj b/loc/MIDebugEngine.lsproj
deleted file mode 100644
index 18e283fea..000000000
--- a/loc/MIDebugEngine.lsproj
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/loc/OpenFolderSchema.json.lcg b/loc/OpenFolderSchema.json.lcg
deleted file mode 100644
index 6d2c7792d..000000000
--- a/loc/OpenFolderSchema.json.lcg
+++ /dev/null
@@ -1,1008 +0,0 @@
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
- ": "" }' OR '{ "": { "editorPath": "", "useForBreakpoints": true } }'. Example: '{ "/home/user/foo": "C:\foo" }' OR '{ "/home/user/foo": { "editorPath": "c:\foo", "useForBreakpoints": true } }'.]]>
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/loc/lci/OpenFolderSchema.json.lci b/loc/lci/OpenFolderSchema.json.lci
index 2f97d55db..e3d3ac8b4 100644
--- a/loc/lci/OpenFolderSchema.json.lci
+++ b/loc/lci/OpenFolderSchema.json.lci
@@ -2,12 +2,23 @@
-
-
-
+
-
+
+
-
+
+
+
+
+
+
+
+
+
-
-
@@ -32,6 +43,18 @@
+ -
+
+
-
+
+
+
+
+
+
+
+
+
-
@@ -47,6 +70,18 @@
+ -
+
+
-
+
+
+
+
+
+
+
+
+
-
@@ -101,6 +136,24 @@
+ -
+
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
-
@@ -146,6 +199,15 @@
+ -
+
+
+
+
+
+
+
+
-
@@ -191,8 +253,8 @@
- -
-
+
-
+
@@ -200,20 +262,8 @@
- -
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
+
-
+
@@ -223,7 +273,7 @@
-
-
+
@@ -268,7 +318,7 @@
-
-
+
@@ -304,7 +354,7 @@
-
-
+
@@ -322,7 +372,7 @@
-
-
+
@@ -340,15 +390,15 @@
-
-
+
- -
-
+
-
+
@@ -356,8 +406,8 @@
- -
-
+
-
+
@@ -385,7 +435,7 @@
-
-
+
@@ -403,7 +453,7 @@
-
-
+
@@ -421,7 +471,7 @@
-
-
+
@@ -437,9 +487,18 @@
+ -
+
+
+
+
+
+
+
+
-
-
+
@@ -502,7 +561,7 @@
-
-
+
@@ -527,13 +586,13 @@
- -
+
-
-
+
-
+
-
@@ -574,7 +633,7 @@
-
-
+
@@ -592,7 +651,7 @@
-
-
+
@@ -617,18 +676,18 @@
- -
-
-
+
-
+
+
- -
-
-
+
-
+
+
@@ -637,7 +696,7 @@
-
- ": "" }' OR '{ "": { "editorPath": "", "useForBreakpoints": true } }'. Example: '{ "C:\foo": "/home/user/foo" }' OR '{ "/home/user/foo": { "editorPath": "c:\foo", "useForBreakpoints": true } }'.]]>
+ ": "" }' OR '{ "": { "editorPath": "", "useForBreakpoints": true } }'. ]A;Example: '{ "/home/user/foo": "C:\foo" }' OR '{ "/home/user/foo": { "editorPath": "c:\foo", "useForBreakpoints": true } }'.]]>
@@ -653,9 +712,18 @@
+ -
+
+
+
+
+
+
+
+
-
-
+
@@ -671,6 +739,42 @@
+ -
+
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
+ -
+
+
+
+
+
+
+
+
-
@@ -709,34 +813,34 @@
-
-
+
- -
+
-
-
+
- -
+
-
-
+
- -
+
-
-
+
@@ -799,34 +903,34 @@
-
-
+
- -
+
-
-
+
- -
+
-
-
+
- -
+
-
-
+
@@ -842,15 +946,6 @@
- -
-
-
-
-
-
-
-
-
-
diff --git a/loc/lcl/CHS/OpenFolderSchema.json.lcl b/loc/lcl/CHS/OpenFolderSchema.json.lcl
index 1d907d5d2..863e9c30e 100644
--- a/loc/lcl/CHS/OpenFolderSchema.json.lcl
+++ b/loc/lcl/CHS/OpenFolderSchema.json.lcl
@@ -36,12 +36,9 @@
-
-
-
-
+
-
+
-
-
-
@@ -129,12 +126,9 @@
-
-
-
-
+
-
+
-
-
-
@@ -265,21 +259,15 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -331,12 +319,9 @@
- -
-
+
-
+
-
-
-
@@ -604,12 +589,9 @@
- -
-
+
-
+
-
-
-
@@ -697,12 +679,9 @@
- -
-
+
-
+
-
-
-
@@ -793,21 +772,15 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -838,12 +811,9 @@
- -
-
+
-
+
-
-
-
@@ -874,30 +844,21 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -910,12 +871,9 @@
- -
-
+
-
+
-
-
-
@@ -955,12 +913,9 @@
- -
-
+
-
+
-
-
-
@@ -1024,12 +979,9 @@
- -
-
+
-
+
-
-
-
@@ -1051,12 +1003,6 @@
- -
-
-
-
-
-
-
diff --git a/loc/lcl/CHT/OpenFolderSchema.json.lcl b/loc/lcl/CHT/OpenFolderSchema.json.lcl
index 5072a7d00..611048b03 100644
--- a/loc/lcl/CHT/OpenFolderSchema.json.lcl
+++ b/loc/lcl/CHT/OpenFolderSchema.json.lcl
@@ -36,12 +36,9 @@
-
-
-
-
+
-
+
-
-
-
@@ -129,12 +126,9 @@
-
-
-
-
+
-
+
-
-
-
@@ -265,21 +259,15 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -331,12 +319,9 @@
- -
-
+
-
+
-
-
-
@@ -604,12 +589,9 @@
- -
-
+
-
+
-
-
-
@@ -697,12 +679,9 @@
- -
-
+
-
+
-
-
-
@@ -793,21 +772,15 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -838,12 +811,9 @@
- -
-
+
-
+
-
-
-
@@ -874,30 +844,21 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -910,12 +871,9 @@
- -
-
+
-
+
-
-
-
@@ -955,12 +913,9 @@
- -
-
+
-
+
-
-
-
@@ -1024,12 +979,9 @@
- -
-
+
-
+
-
-
-
@@ -1051,12 +1003,6 @@
- -
-
-
-
-
-
-
diff --git a/loc/lcl/CSY/OpenFolderSchema.json.lcl b/loc/lcl/CSY/OpenFolderSchema.json.lcl
index 796e5db74..12c9c67ed 100644
--- a/loc/lcl/CSY/OpenFolderSchema.json.lcl
+++ b/loc/lcl/CSY/OpenFolderSchema.json.lcl
@@ -36,12 +36,9 @@
-
-
-
-
+
-
+
-
-
-
@@ -129,12 +126,9 @@
-
-
-
-
+
-
+
-
-
-
@@ -265,21 +259,15 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -331,12 +319,9 @@
- -
-
+
-
+
-
-
-
@@ -604,12 +589,9 @@
- -
-
+
-
+
-
-
-
@@ -697,12 +679,9 @@
- -
-
+
-
+
-
-
-
@@ -793,21 +772,15 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -838,12 +811,9 @@
- -
-
+
-
+
-
-
-
@@ -874,30 +844,21 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -910,12 +871,9 @@
- -
-
+
-
+
-
-
-
@@ -955,12 +913,9 @@
- -
-
+
-
+
-
-
-
@@ -1024,12 +979,9 @@
- -
-
+
-
+
-
-
-
@@ -1051,12 +1003,6 @@
- -
-
-
-
-
-
-
diff --git a/loc/lcl/DEU/OpenFolderSchema.json.lcl b/loc/lcl/DEU/OpenFolderSchema.json.lcl
index e89c066ea..56d556b1c 100644
--- a/loc/lcl/DEU/OpenFolderSchema.json.lcl
+++ b/loc/lcl/DEU/OpenFolderSchema.json.lcl
@@ -36,12 +36,9 @@
-
-
-
-
+
-
+
-
-
-
@@ -129,12 +126,9 @@
-
-
-
-
+
-
+
-
-
-
@@ -265,21 +259,15 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -331,12 +319,9 @@
- -
-
+
-
+
-
-
-
@@ -604,12 +589,9 @@
- -
-
+
-
+
-
-
-
@@ -697,12 +679,9 @@
- -
-
+
-
+
-
-
-
@@ -793,21 +772,15 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -838,12 +811,9 @@
- -
-
+
-
+
-
-
-
@@ -874,30 +844,21 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -910,12 +871,9 @@
- -
-
+
-
+
-
-
-
@@ -955,12 +913,9 @@
- -
-
+
-
+
-
-
-
@@ -1024,12 +979,9 @@
- -
-
+
-
+
-
-
-
@@ -1051,12 +1003,6 @@
- -
-
-
-
-
-
-
diff --git a/loc/lcl/ESN/OpenFolderSchema.json.lcl b/loc/lcl/ESN/OpenFolderSchema.json.lcl
index 3e06b2806..08dcbb227 100644
--- a/loc/lcl/ESN/OpenFolderSchema.json.lcl
+++ b/loc/lcl/ESN/OpenFolderSchema.json.lcl
@@ -36,12 +36,9 @@
-
-
-
-
+
-
+
-
-
-
@@ -126,12 +123,9 @@
-
-
-
-
+
-
+
-
-
-
@@ -259,21 +253,15 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -325,12 +313,9 @@
- -
-
+
-
+
-
-
-
@@ -571,12 +556,9 @@
- -
-
+
-
+
-
-
-
@@ -658,12 +640,9 @@
- -
-
+
-
+
-
-
-
@@ -748,21 +727,15 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -790,12 +763,9 @@
- -
-
+
-
+
-
-
-
@@ -823,30 +793,21 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -859,12 +820,9 @@
- -
-
+
-
+
-
-
-
@@ -904,12 +862,9 @@
- -
-
+
-
+
-
-
-
@@ -973,12 +928,9 @@
- -
-
+
-
+
-
-
-
@@ -1000,12 +952,6 @@
- -
-
-
-
-
-
-
diff --git a/loc/lcl/FRA/OpenFolderSchema.json.lcl b/loc/lcl/FRA/OpenFolderSchema.json.lcl
index 613cfd697..e6508bd18 100644
--- a/loc/lcl/FRA/OpenFolderSchema.json.lcl
+++ b/loc/lcl/FRA/OpenFolderSchema.json.lcl
@@ -36,12 +36,9 @@
-
-
-
-
+
-
+
-
-
-
@@ -129,12 +126,9 @@
-
-
-
-
+
-
+
-
-
-
@@ -265,21 +259,15 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -331,12 +319,9 @@
- -
-
+
-
+
-
-
-
@@ -604,12 +589,9 @@
- -
-
+
-
+
-
-
-
@@ -697,12 +679,9 @@
- -
-
+
-
+
-
-
-
@@ -793,21 +772,15 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -838,12 +811,9 @@
- -
-
+
-
+
-
-
-
@@ -874,30 +844,21 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -910,12 +871,9 @@
- -
-
+
-
+
-
-
-
@@ -955,12 +913,9 @@
- -
-
+
-
+
-
-
-
@@ -1024,12 +979,9 @@
- -
-
+
-
+
-
-
-
@@ -1051,12 +1003,6 @@
- -
-
-
-
-
-
-
diff --git a/loc/lcl/ITA/OpenFolderSchema.json.lcl b/loc/lcl/ITA/OpenFolderSchema.json.lcl
index 96eae5bef..7cb75e6e3 100644
--- a/loc/lcl/ITA/OpenFolderSchema.json.lcl
+++ b/loc/lcl/ITA/OpenFolderSchema.json.lcl
@@ -36,12 +36,9 @@
-
-
-
-
+
-
+
-
-
-
@@ -129,12 +126,9 @@
-
-
-
-
+
-
+
-
-
-
@@ -265,21 +259,15 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -331,12 +319,9 @@
- -
-
+
-
+
-
-
-
@@ -604,12 +589,9 @@
- -
-
+
-
+
-
-
-
@@ -697,12 +679,9 @@
- -
-
+
-
+
-
-
-
@@ -793,21 +772,15 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -838,12 +811,9 @@
- -
-
+
-
+
-
-
-
@@ -874,30 +844,21 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -910,12 +871,9 @@
- -
-
+
-
+
-
-
-
@@ -955,12 +913,9 @@
- -
-
+
-
+
-
-
-
@@ -1024,12 +979,9 @@
- -
-
+
-
+
-
-
-
@@ -1051,12 +1003,6 @@
- -
-
-
-
-
-
-
diff --git a/loc/lcl/JPN/OpenFolderSchema.json.lcl b/loc/lcl/JPN/OpenFolderSchema.json.lcl
index 07566f91b..4659c48dc 100644
--- a/loc/lcl/JPN/OpenFolderSchema.json.lcl
+++ b/loc/lcl/JPN/OpenFolderSchema.json.lcl
@@ -36,12 +36,9 @@
-
-
-
-
+
-
+
-
-
-
@@ -129,12 +126,9 @@
-
-
-
-
+
-
+
-
-
-
@@ -265,21 +259,15 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -331,12 +319,9 @@
- -
-
+
-
+
-
-
-
@@ -604,12 +589,9 @@
- -
-
+
-
+
-
-
-
@@ -697,12 +679,9 @@
- -
-
+
-
+
-
-
-
@@ -793,21 +772,15 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -838,12 +811,9 @@
- -
-
+
-
+
-
-
-
@@ -874,30 +844,21 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -910,12 +871,9 @@
- -
-
+
-
+
-
-
-
@@ -955,12 +913,9 @@
- -
-
+
-
+
-
-
-
@@ -1024,12 +979,9 @@
- -
-
+
-
+
-
-
-
@@ -1051,12 +1003,6 @@
- -
-
-
-
-
-
-
diff --git a/loc/lcl/KOR/OpenFolderSchema.json.lcl b/loc/lcl/KOR/OpenFolderSchema.json.lcl
index ecdc13638..12124e286 100644
--- a/loc/lcl/KOR/OpenFolderSchema.json.lcl
+++ b/loc/lcl/KOR/OpenFolderSchema.json.lcl
@@ -36,12 +36,9 @@
-
-
-
-
+
-
+
-
-
-
@@ -129,12 +126,9 @@
-
-
-
-
+
-
+
-
-
-
@@ -265,21 +259,15 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -331,12 +319,9 @@
- -
-
+
-
+
-
-
-
@@ -604,12 +589,9 @@
- -
-
+
-
+
-
-
-
@@ -697,12 +679,9 @@
- -
-
+
-
+
-
-
-
@@ -793,21 +772,15 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -838,12 +811,9 @@
- -
-
+
-
+
-
-
-
@@ -874,30 +844,21 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -910,12 +871,9 @@
- -
-
+
-
+
-
-
-
@@ -955,12 +913,9 @@
- -
-
+
-
+
-
-
-
@@ -1024,12 +979,9 @@
- -
-
+
-
+
-
-
-
@@ -1051,12 +1003,6 @@
- -
-
-
-
-
-
-
diff --git a/loc/lcl/PLK/OpenFolderSchema.json.lcl b/loc/lcl/PLK/OpenFolderSchema.json.lcl
index e6f347966..0376ea545 100644
--- a/loc/lcl/PLK/OpenFolderSchema.json.lcl
+++ b/loc/lcl/PLK/OpenFolderSchema.json.lcl
@@ -36,12 +36,9 @@
-
-
-
-
+
-
+
-
-
-
@@ -129,12 +126,9 @@
-
-
-
-
+
-
+
-
-
-
@@ -265,21 +259,15 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -331,12 +319,9 @@
- -
-
+
-
+
-
-
-
@@ -604,12 +589,9 @@
- -
-
+
-
+
-
-
-
@@ -697,12 +679,9 @@
- -
-
+
-
+
-
-
-
@@ -793,21 +772,15 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -838,12 +811,9 @@
- -
-
+
-
+
-
-
-
@@ -874,30 +844,21 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -910,12 +871,9 @@
- -
-
+
-
+
-
-
-
@@ -955,12 +913,9 @@
- -
-
+
-
+
-
-
-
@@ -1024,12 +979,9 @@
- -
-
+
-
+
-
-
-
@@ -1051,12 +1003,6 @@
- -
-
-
-
-
-
-
diff --git a/loc/lcl/PTB/OpenFolderSchema.json.lcl b/loc/lcl/PTB/OpenFolderSchema.json.lcl
index aaecef349..f32c6669c 100644
--- a/loc/lcl/PTB/OpenFolderSchema.json.lcl
+++ b/loc/lcl/PTB/OpenFolderSchema.json.lcl
@@ -36,12 +36,9 @@
-
-
-
-
+
-
+
-
-
-
@@ -129,12 +126,9 @@
-
-
-
-
+
-
+
-
-
-
@@ -265,21 +259,15 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -331,12 +319,9 @@
- -
-
+
-
+
-
-
-
@@ -604,12 +589,9 @@
- -
-
+
-
+
-
-
-
@@ -697,12 +679,9 @@
- -
-
+
-
+
-
-
-
@@ -793,21 +772,15 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -838,12 +811,9 @@
- -
-
+
-
+
-
-
-
@@ -874,30 +844,21 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -910,12 +871,9 @@
- -
-
+
-
+
-
-
-
@@ -955,12 +913,9 @@
- -
-
+
-
+
-
-
-
@@ -1024,12 +979,9 @@
- -
-
+
-
+
-
-
-
@@ -1051,12 +1003,6 @@
- -
-
-
-
-
-
-
diff --git a/loc/lcl/RUS/OpenFolderSchema.json.lcl b/loc/lcl/RUS/OpenFolderSchema.json.lcl
index 3e4c12882..dae93349f 100644
--- a/loc/lcl/RUS/OpenFolderSchema.json.lcl
+++ b/loc/lcl/RUS/OpenFolderSchema.json.lcl
@@ -36,12 +36,9 @@
-
-
-
-
+
-
+
-
-
-
@@ -126,12 +123,9 @@
-
-
-
-
+
-
+
-
-
-
@@ -259,21 +253,15 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -325,12 +313,9 @@
- -
-
+
-
+
-
-
-
@@ -571,12 +556,9 @@
- -
-
+
-
+
-
-
-
@@ -658,12 +640,9 @@
- -
-
+
-
+
-
-
-
@@ -748,21 +727,15 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -790,12 +763,9 @@
- -
-
+
-
+
-
-
-
@@ -823,30 +793,21 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -859,12 +820,9 @@
- -
-
+
-
+
-
-
-
@@ -904,12 +862,9 @@
- -
-
+
-
+
-
-
-
@@ -973,12 +928,9 @@
- -
-
+
-
+
-
-
-
@@ -1000,12 +952,6 @@
- -
-
-
-
-
-
-
diff --git a/loc/lcl/TRK/OpenFolderSchema.json.lcl b/loc/lcl/TRK/OpenFolderSchema.json.lcl
index 7553f7bec..2527ff338 100644
--- a/loc/lcl/TRK/OpenFolderSchema.json.lcl
+++ b/loc/lcl/TRK/OpenFolderSchema.json.lcl
@@ -36,12 +36,9 @@
-
-
-
-
+
-
+
-
-
-
@@ -129,12 +126,9 @@
-
-
-
-
+
-
+
-
-
-
@@ -265,21 +259,15 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -331,12 +319,9 @@
- -
-
+
-
+
-
-
-
@@ -604,12 +589,9 @@
- -
-
+
-
+
-
-
-
@@ -697,12 +679,9 @@
- -
-
+
-
+
-
-
-
@@ -793,21 +772,15 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -838,12 +811,9 @@
- -
-
+
-
+
-
-
-
@@ -874,30 +844,21 @@
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
- -
-
+
-
+
-
-
-
@@ -910,12 +871,9 @@
- -
-
+
-
+
-
-
-
@@ -955,12 +913,9 @@
- -
-
+
-
+
-
-
-
@@ -1024,12 +979,9 @@
- -
-
+
-
+
-
-
-
@@ -1051,12 +1003,6 @@
- -
-
-
-
-
-
-
diff --git a/src/IOSDebugLauncher/IOSDebugLauncher.csproj b/src/IOSDebugLauncher/IOSDebugLauncher.csproj
deleted file mode 100755
index 2de6b9236..000000000
--- a/src/IOSDebugLauncher/IOSDebugLauncher.csproj
+++ /dev/null
@@ -1,69 +0,0 @@
-
-
-
- {D2A11674-F677-4B11-9989-2F6099A6F0A2}
- Library
- Properties
- IOSDebugLauncher
- Microsoft.IOSDebugLauncher
- net472
- 512
-
- $(MIDefaultOutputPath)
-
-
-
-
- True
- True
- LauncherResources.resx
-
-
-
-
-
- ResXFileCodeGenerator
- LauncherResources.Designer.cs
-
-
-
-
-
-
-
-
-
- False
-
-
- False
-
-
-
-
-
- Always
-
-
-
-
-
- {ea876a2d-ab0f-4204-97dd-dfb3b5568978}
- DebugEngineHost.Stub
- False
-
-
- {54c33afa-438d-4932-a2f0-d0f2bb2fadc9}
- MICore
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/IOSDebugLauncher/IOSLaunchOptions.cs b/src/IOSDebugLauncher/IOSLaunchOptions.cs
deleted file mode 100644
index e45404cb9..000000000
--- a/src/IOSDebugLauncher/IOSLaunchOptions.cs
+++ /dev/null
@@ -1,57 +0,0 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using System.Xml;
-
-using MICore;
-using System.Runtime.InteropServices;
-using System.IO;
-using System.Globalization;
-using System.Diagnostics;
-
-namespace IOSDebugLauncher
-{
- public enum IOSDebugTarget
- {
- Device,
- Simulator,
- }
-
- internal class IOSLaunchOptions
- {
- public IOSLaunchOptions(string exePath, MICore.Xml.LaunchOptions.IOSLaunchOptions xmlOptions)
- {
- if (string.IsNullOrEmpty(exePath))
- throw new ArgumentNullException(nameof(exePath));
- if (xmlOptions == null)
- throw new ArgumentNullException(nameof(xmlOptions));
-
- this.ExePath = exePath;
- this.RemoteMachineName = LaunchOptions.RequireAttribute(xmlOptions.RemoteMachineName, "RemoteMachineName");
- this.PackageId = LaunchOptions.RequireAttribute(xmlOptions.PackageId, "PackageId");
- this.VcRemotePort = LaunchOptions.RequirePortAttribute(xmlOptions.vcremotePort, "vcremotePort");
- Debug.Assert((uint)IOSDebugTarget.Device == (uint)MICore.Xml.LaunchOptions.IOSLaunchOptionsIOSDebugTarget.Device);
- Debug.Assert((uint)IOSDebugTarget.Simulator == (uint)MICore.Xml.LaunchOptions.IOSLaunchOptionsIOSDebugTarget.Simulator);
- this.IOSDebugTarget = (IOSDebugTarget)xmlOptions.IOSDebugTarget;
- this.TargetArchitecture = LaunchOptions.ConvertTargetArchitectureAttribute(xmlOptions.TargetArchitecture);
- this.AdditionalSOLibSearchPath = xmlOptions.AdditionalSOLibSearchPath;
- this.Secure = (xmlOptions.Secure == MICore.Xml.LaunchOptions.IOSLaunchOptionsSecure.True);
- this.DeviceUdid = xmlOptions.DeviceUdid ?? string.Empty;
- }
-
- public string ExePath { get; private set; }
- public string RemoteMachineName { get; private set; }
- public string PackageId { get; private set; }
- public int VcRemotePort { get; private set; }
- public IOSDebugTarget IOSDebugTarget { get; private set; }
- public string DeviceUdid { get; private set; }
- public TargetArchitecture TargetArchitecture { get; private set; }
- public string AdditionalSOLibSearchPath { get; private set; }
- public bool Secure { get; private set; }
- }
-}
diff --git a/src/IOSDebugLauncher/Launcher.cs b/src/IOSDebugLauncher/Launcher.cs
deleted file mode 100644
index 9c5461a4c..000000000
--- a/src/IOSDebugLauncher/Launcher.cs
+++ /dev/null
@@ -1,182 +0,0 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
-
-using System;
-using System.Collections.Generic;
-using System.Collections.ObjectModel;
-using System.Diagnostics;
-using System.Globalization;
-using System.IO;
-using System.Net.Security;
-using System.Runtime.InteropServices;
-using System.Security.Cryptography.X509Certificates;
-using MICore;
-using Microsoft.DebugEngineHost;
-using Newtonsoft.Json;
-
-namespace IOSDebugLauncher
-{
- [ComVisible(true)]
- [Guid("316783D1-1824-4847-B3D3-FB048960EDCF")]
- internal class Launcher : IPlatformAppLauncher
- {
- private IDeviceAppLauncherEventCallback _callback;
- private IOSLaunchOptions _launchOptions;
- private VcRemoteClient _client;
- private string _appRemotePath;
-
- private bool _onResumeCalled = false;
-
- internal class RemotePorts
- {
- [JsonProperty(PropertyName = "idevicedebugserverproxyport")]
- public int IDeviceDebugServerProxyPort { get; set; }
- [JsonProperty(PropertyName = "debugListenerPort")]
- public int DebugListenerPort { get; set; }
- }
- private RemotePorts _remotePorts;
-
- void IPlatformAppLauncher.Initialize(HostConfigurationStore configStore, IDeviceAppLauncherEventCallback eventCallback)
- {
- _callback = eventCallback;
- }
-
- void IPlatformAppLauncher.SetLaunchOptions(string exePath, string args, string dir, object launcherXmlOptions, TargetEngine targetEngine)
- {
- if (launcherXmlOptions == null)
- throw new ArgumentNullException(nameof(launcherXmlOptions));
-
- if (targetEngine != TargetEngine.Native)
- throw new LauncherException(String.Format(CultureInfo.CurrentCulture, LauncherResources.Error_BadTargetEngine, targetEngine.ToString()));
-
- var iosXmlOptions = (MICore.Xml.LaunchOptions.IOSLaunchOptions)launcherXmlOptions;
-
- if (_callback == null)
- {
- Debug.Fail("Why is ParseLaunchOptions called before Initialize?");
- throw new InvalidOperationException();
- }
-
- if (_launchOptions != null)
- {
- Debug.Fail("Why is ParseLaunchOptions being called more than once?");
- throw new InvalidOperationException();
- }
-
- _launchOptions = new IOSLaunchOptions(exePath, iosXmlOptions);
- }
-
- void IPlatformAppLauncher.SetupForDebugging(out LaunchOptions debuggerLaunchOptions)
- {
- if (_launchOptions == null)
- {
- Debug.Fail("Why is SetupForDebugging being called before ParseLaunchOptions?");
- throw new InvalidOperationException();
- }
-
- _client = VcRemoteClient.GetInstance(_launchOptions);
-
- _remotePorts = _client.StartDebugListener();
-
- if (_launchOptions.IOSDebugTarget == IOSDebugTarget.Device)
- {
- _appRemotePath = _client.GetRemoteAppPath();
- }
-
- debuggerLaunchOptions = new TcpLaunchOptions(_launchOptions.RemoteMachineName, _remotePorts.DebugListenerPort, _launchOptions.Secure);
-
- if (_client.ServerCertificateValidationCallback != null)
- {
- (debuggerLaunchOptions as TcpLaunchOptions).ServerCertificateValidationCallback = (object sender, object/*X509Certificate*/ certificate, object/*X509Chain*/ chain, SslPolicyErrors sslPolicyErrors) =>
- {
- return _client.ServerCertificateValidationCallback(sender, (X509Certificate)certificate, (X509Chain)chain, sslPolicyErrors);
- };
- }
-
- debuggerLaunchOptions.TargetArchitecture = _launchOptions.TargetArchitecture;
- debuggerLaunchOptions.AdditionalSOLibSearchPath = _launchOptions.AdditionalSOLibSearchPath;
- debuggerLaunchOptions.DebuggerMIMode = MIMode.Lldb;
- debuggerLaunchOptions.CustomLaunchSetupCommands = GetCustomLaunchSetupCommands();
- debuggerLaunchOptions.LaunchCompleteCommand = GetLaunchCompleteCommand();
- }
-
- private ReadOnlyCollection GetCustomLaunchSetupCommands()
- {
- var commands = new List();
-
- string fileCommand = String.Empty;
-
- if (_launchOptions.IOSDebugTarget == IOSDebugTarget.Device)
- {
- fileCommand = string.Format(CultureInfo.InvariantCulture, "-file-exec-and-symbols \"{0}\" -p remote-ios -r \"{1}\"", _launchOptions.ExePath, _appRemotePath);
- }
- else
- {
- fileCommand = string.Format(CultureInfo.InvariantCulture, "-file-exec-and-symbols \"{0}\" -p ios-simulator", _launchOptions.ExePath);
- }
-
- string targetCommand = string.Format(CultureInfo.InvariantCulture, "-target-select remote localhost:{0}", _remotePorts.IDeviceDebugServerProxyPort.ToString(CultureInfo.InvariantCulture));
- string breakInMainCommand = string.Format(CultureInfo.InvariantCulture, "-break-insert main");
-
- commands.Add(new LaunchCommand(fileCommand, LauncherResources.DefinePlatform));
- commands.Add(new LaunchCommand(targetCommand, LauncherResources.Connecting));
- commands.Add(new LaunchCommand(breakInMainCommand, LauncherResources.SettingBreakpoint));
-
- if (_launchOptions.IOSDebugTarget == IOSDebugTarget.Simulator)
- {
- string file = Path.GetFileName(_launchOptions.ExePath);
- if (!String.IsNullOrWhiteSpace(file) && file.EndsWith(".app", StringComparison.Ordinal))
- {
- file = file.Substring(0, file.Length - 4);
- }
- if (!String.IsNullOrWhiteSpace(file))
- {
- string targetAttachCommand = string.Format(CultureInfo.InvariantCulture, "-target-attach -n {0} --waitfor", file);
- string launchMessage = string.Format(CultureInfo.CurrentCulture, LauncherResources.WaitingForApp, file);
- commands.Add(new LaunchCommand(targetAttachCommand, launchMessage));
- }
- else
- {
- throw new Exception(String.Format(CultureInfo.InvariantCulture, LauncherResources.BadNameFormat, _launchOptions.ExePath));
- }
- }
- return commands.AsReadOnly();
- }
-
- private LaunchCompleteCommand GetLaunchCompleteCommand()
- {
- if (_launchOptions.IOSDebugTarget == IOSDebugTarget.Simulator)
- {
- return LaunchCompleteCommand.ExecContinue;
- }
- else
- {
- return LaunchCompleteCommand.ExecRun;
- }
- }
-
- void IPlatformAppLauncher.OnResume()
- {
- _onResumeCalled = true;
- Telemetry.SendLaunchError(Telemetry.LaunchFailureCode.LaunchSuccess.ToString(), _launchOptions.IOSDebugTarget);
- //Nothing to do for this.
- }
-
- public void Dispose()
- {
- if (_client != null)
- {
- _client.Dispose();
- }
- }
-
- public void Terminate()
- {
- if (!_onResumeCalled)
- {
- Telemetry.SendLaunchError(Telemetry.LaunchFailureCode.LaunchFailure.ToString(), _launchOptions.IOSDebugTarget);
- }
- //Nothing to do for this.
- }
- }
-}
diff --git a/src/IOSDebugLauncher/LauncherException.cs b/src/IOSDebugLauncher/LauncherException.cs
deleted file mode 100644
index 67031a1c5..000000000
--- a/src/IOSDebugLauncher/LauncherException.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace IOSDebugLauncher
-{
- internal class LauncherException : Exception
- {
- public LauncherException(string message)
- : base(message)
- {
- }
- }
-}
diff --git a/src/IOSDebugLauncher/LauncherResources.Designer.cs b/src/IOSDebugLauncher/LauncherResources.Designer.cs
deleted file mode 100644
index a5376b6df..000000000
--- a/src/IOSDebugLauncher/LauncherResources.Designer.cs
+++ /dev/null
@@ -1,180 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// This code was generated by a tool.
-// Runtime Version:4.0.30319.42000
-//
-// Changes to this file may cause incorrect behavior and will be lost if
-// the code is regenerated.
-//
-//------------------------------------------------------------------------------
-
-namespace IOSDebugLauncher {
- using System;
-
-
- ///
- /// A strongly-typed resource class, for looking up localized strings, etc.
- ///
- // This class was auto-generated by the StronglyTypedResourceBuilder
- // class via a tool like ResGen or Visual Studio.
- // To add or remove a member, edit your .ResX file then rerun ResGen
- // with the /str option, or rebuild your VS project.
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
- [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
- [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- internal class LauncherResources {
-
- private static global::System.Resources.ResourceManager resourceMan;
-
- private static global::System.Globalization.CultureInfo resourceCulture;
-
- [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
- internal LauncherResources() {
- }
-
- ///
- /// Returns the cached ResourceManager instance used by this class.
- ///
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Resources.ResourceManager ResourceManager {
- get {
- if (object.ReferenceEquals(resourceMan, null)) {
- global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("IOSDebugLauncher.LauncherResources", typeof(LauncherResources).Assembly);
- resourceMan = temp;
- }
- return resourceMan;
- }
- }
-
- ///
- /// Overrides the current thread's CurrentUICulture property for all
- /// resource lookups using this strongly typed resource class.
- ///
- [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
- internal static global::System.Globalization.CultureInfo Culture {
- get {
- return resourceCulture;
- }
- set {
- resourceCulture = value;
- }
- }
-
- ///
- /// Looks up a localized string similar to Cannot get name from executable path '{0}'..
- ///
- internal static string BadNameFormat {
- get {
- return ResourceManager.GetString("BadNameFormat", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to Connecting to remote device or simulator.
- ///
- internal static string Connecting {
- get {
- return ResourceManager.GetString("Connecting", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to Defining platform and loading executable for debugging.
- ///
- internal static string DefinePlatform {
- get {
- return ResourceManager.GetString("DefinePlatform", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to An incorrect response was received from vcremote. Make sure that a compatible vcremote is installed on the remote machine..
- ///
- internal static string Error_BadJSon {
- get {
- return ResourceManager.GetString("Error_BadJSon", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to Cannot launch iOS debugging for target engine '{0}'..
- ///
- internal static string Error_BadTargetEngine {
- get {
- return ResourceManager.GetString("Error_BadTargetEngine", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to Unable to reach the vcremote server. Make sure that the vcremote server is running and is configured with the same security setting as Visual Studio..
- ///
- internal static string Error_UnableToReachServer {
- get {
- return ResourceManager.GetString("Error_UnableToReachServer", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to Unauthorized Request. Use vcremote to generate a new client certificate and enter the PIN in project properties..
- ///
- internal static string Error_Unauthorized {
- get {
- return ResourceManager.GetString("Error_Unauthorized", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to Unknown or unsupported debug target '{0}'..
- ///
- internal static string Error_UnknownDebugTarget {
- get {
- return ResourceManager.GetString("Error_UnknownDebugTarget", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to Unexecpted failure trying to reach vcremote: {0}.
- ///
- internal static string Error_VcRemoteUnknown {
- get {
- return ResourceManager.GetString("Error_VcRemoteUnknown", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to Obtaining information from vcremote..
- ///
- internal static string Info_GettingInfo {
- get {
- return ResourceManager.GetString("Info_GettingInfo", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to Starting Remote Debug Listener..
- ///
- internal static string Info_StartingDebugListener {
- get {
- return ResourceManager.GetString("Info_StartingDebugListener", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to Setting initial breakpoint.
- ///
- internal static string SettingBreakpoint {
- get {
- return ResourceManager.GetString("SettingBreakpoint", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to Waiting for application to launch. Please (re)start application '{0}' in the simulator..
- ///
- internal static string WaitingForApp {
- get {
- return ResourceManager.GetString("WaitingForApp", resourceCulture);
- }
- }
- }
-}
diff --git a/src/IOSDebugLauncher/LauncherResources.resx b/src/IOSDebugLauncher/LauncherResources.resx
deleted file mode 100644
index ef10d6381..000000000
--- a/src/IOSDebugLauncher/LauncherResources.resx
+++ /dev/null
@@ -1,159 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- Cannot get name from executable path '{0}'.
-
-
- Connecting to remote device or simulator
-
-
- Defining platform and loading executable for debugging
-
-
- An incorrect response was received from vcremote. Make sure that a compatible vcremote is installed on the remote machine.
-
-
- Cannot launch iOS debugging for target engine '{0}'.
-
-
- Unable to reach the vcremote server. Make sure that the vcremote server is running and is configured with the same security setting as Visual Studio.
-
-
- Unauthorized Request. Use vcremote to generate a new client certificate and enter the PIN in project properties.
-
-
- Unknown or unsupported debug target '{0}'.
-
-
- Unexecpted failure trying to reach vcremote: {0}
-
-
- Obtaining information from vcremote.
-
-
- Starting Remote Debug Listener.
-
-
- Setting initial breakpoint
-
-
- Waiting for application to launch. Please (re)start application '{0}' in the simulator.
-
-
\ No newline at end of file
diff --git a/src/IOSDebugLauncher/Microsoft.IOSDebugLauncher.pkgdef b/src/IOSDebugLauncher/Microsoft.IOSDebugLauncher.pkgdef
deleted file mode 100644
index e7e85df6e..000000000
--- a/src/IOSDebugLauncher/Microsoft.IOSDebugLauncher.pkgdef
+++ /dev/null
@@ -1,4 +0,0 @@
-[$RootKey$\CLSID\{316783D1-1824-4847-B3D3-FB048960EDCF}]
-"Assembly"="Microsoft.IOSDebugLauncher"
-"Class"="IOSDebugLauncher.Launcher"
-"CodeBase"="$PackageFolder$\Microsoft.IOSDebugLauncher.dll"
\ No newline at end of file
diff --git a/src/IOSDebugLauncher/Properties/AssemblyInfo.cs b/src/IOSDebugLauncher/Properties/AssemblyInfo.cs
deleted file mode 100644
index a8ed6cb46..000000000
--- a/src/IOSDebugLauncher/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
-
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("IOSDebugLauncher")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("6f721eab-b52d-424a-a314-44ec11e671fb")]
diff --git a/src/IOSDebugLauncher/RequestAuthHandler.cs b/src/IOSDebugLauncher/RequestAuthHandler.cs
deleted file mode 100644
index 5c61664c9..000000000
--- a/src/IOSDebugLauncher/RequestAuthHandler.cs
+++ /dev/null
@@ -1,86 +0,0 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
-
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Net;
-using System.Net.Http;
-using System.Net.Security;
-using System.Security.Cryptography.X509Certificates;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace IOSDebugLauncher
-{
- internal class RequestAuthHandler : WebRequestHandler
- {
- ///
- /// Creates a new instance of the RequestAuthHandler class.
- ///
- public RequestAuthHandler()
- {
- this.ClientCertificateOptions = ClientCertificateOption.Automatic;
- this.UseDefaultCredentials = false;
- this.UseProxy = false;
- this.ServerCertificateValidationCallback = delegate (object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors)
- {
- if (sslPolicyErrors == SslPolicyErrors.None)
- return true;
- if ((sslPolicyErrors & System.Net.Security.SslPolicyErrors.RemoteCertificateNameMismatch) != 0)
- {
- if (sender is HttpWebRequest)
- {
- var request2 = sender as HttpWebRequest;
- var requestUri = request2.RequestUri;
- if (requestUri.HostNameType == UriHostNameType.IPv4 || requestUri.HostNameType == UriHostNameType.IPv6 || requestUri.HostNameType == UriHostNameType.Dns)
- {
- X509Extension ext2 = (certificate as X509Certificate2).Extensions["Subject Alternative Name"];
- if (ext2 != null)
- {
- string subjAltName = ext2.Format(false);
- if (subjAltName.IndexOf(requestUri.Host, StringComparison.OrdinalIgnoreCase) == -1)
- return false;
- }
- else
- return false;
- }
- else
- return false;
- }
- else if (sender is SslStream)
- {
- //nothing to do, fall through
- }
- else
- return false;
- }
- if ((sslPolicyErrors & System.Net.Security.SslPolicyErrors.RemoteCertificateChainErrors) != 0)
- {
- if (chain != null && chain.ChainStatus != null)
- {
- foreach (System.Security.Cryptography.X509Certificates.X509ChainStatus status in chain.ChainStatus)
- {
- if (status.Status == System.Security.Cryptography.X509Certificates.X509ChainStatusFlags.UntrustedRoot)
- {
- // Self-signed certificates with an untrusted root are valid.
- continue;
- }
- else
- {
- if (status.Status != System.Security.Cryptography.X509Certificates.X509ChainStatusFlags.NoError)
- {
- // If there are any other errors in the certificate chain, the certificate is invalid,
- // so the method returns false.
- return false;
- }
- }
- }
- return true;
- }
- }
- return false;
- };
- }
- }
-}
diff --git a/src/IOSDebugLauncher/Telemetry.cs b/src/IOSDebugLauncher/Telemetry.cs
deleted file mode 100644
index 2e0eefc42..000000000
--- a/src/IOSDebugLauncher/Telemetry.cs
+++ /dev/null
@@ -1,94 +0,0 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
-
-using Microsoft.DebugEngineHost;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace IOSDebugLauncher
-{
- ///
- /// Class for sending telemetry
- ///
- internal static class Telemetry
- {
- private const string Event_LaunchError = @"VS/Diagnostics/Debugger/iOS/LaunchFailure";
- private const string Property_LaunchErrorResult = @"VS.Diagnostics.Debugger.iOS.FailureResult";
- private const string Property_LaunchErrorTarget = @"VS.Diagnostics.Debugger.iOS.Target";
-
- private const string Event_VcRemoteClientError = @"VS/Diagnostics/Debugger/iOS/VcRemoteClientFailure";
- private const string Property_VcRemoteClientErrorResult = @"VS.Diagnostics.Debugger.iOS.VcRemoteClientFailureResult";
-
-
- #region LaunchFailure support
-
- public enum LaunchFailureCode
- {
- ///
- /// Indicates that the error shouldn't be sent to telemetry
- ///
- NoReport,
-
- ///
- /// No error, launch is success
- ///
- LaunchSuccess,
-
- ///
- /// Launch failed for unkown reason
- ///
- LaunchFailure,
-
- ///
- /// vcremote is returning json that cannot be parsed correctly
- ///
- BadJson,
-
- ///
- /// vcremote was unable to return a remote path for the given packageID
- ///
- BadPackageId,
- };
-
- public enum VcRemoteFailureCode
- {
- ///
- /// Indicates no error occured when calling vcremote
- ///
- VcRemoteSucces,
-
- ///
- /// Unable to access vcremote due to bad authorization (certificate issue)
- ///
- VcRemoteUnauthorized,
-
- ///
- /// Unable to reach vcremote for some reason
- ///
- VcRemoteNoConnection,
-
- ///
- /// Unknown Error from vcremote
- ///
- VcRemoteUnkown,
- }
-
- public static void SendLaunchError(string failureCode, IOSDebugTarget target)
- {
- HostTelemetry.SendEvent(Event_LaunchError,
- new KeyValuePair(Property_LaunchErrorResult, failureCode),
- new KeyValuePair(Property_LaunchErrorTarget, target.ToString())
- );
- }
-
- public static void SendVcRemoteClientError(string failureCode)
- {
- HostTelemetry.SendEvent(Event_VcRemoteClientError, new KeyValuePair(Property_VcRemoteClientErrorResult, failureCode));
- }
-
- #endregion
- }
-}
diff --git a/src/IOSDebugLauncher/VcRemoteClient.cs b/src/IOSDebugLauncher/VcRemoteClient.cs
deleted file mode 100644
index 30e5aeb2f..000000000
--- a/src/IOSDebugLauncher/VcRemoteClient.cs
+++ /dev/null
@@ -1,168 +0,0 @@
-// Copyright (c) Microsoft. All rights reserved.
-// Licensed under the MIT license. See LICENSE file in the project root for full license information.
-
-using Microsoft.DebugEngineHost;
-using Newtonsoft.Json;
-using System;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.Globalization;
-using System.Linq;
-using System.Net;
-using System.Net.Http;
-using System.Net.Security;
-using System.Runtime.ExceptionServices;
-using System.Text;
-using System.Threading;
-using System.Threading.Tasks;
-
-namespace IOSDebugLauncher
-{
- internal class VcRemoteClient : HttpClient
- {
- private IOSLaunchOptions _launchOptions;
-
- private VcRemoteClient()
- : base()
- {
- }
-
- private VcRemoteClient(HttpMessageHandler handler)
- : base(handler, true)
- {
- }
-
- public static VcRemoteClient GetInstance(IOSLaunchOptions options)
- {
- VcRemoteClient client = null;
- string baseAddressFormat = string.Empty;
- if (options.Secure)
- {
- var handler = new RequestAuthHandler();
- client = new VcRemoteClient(handler);
- client.ServerCertificateValidationCallback = handler.ServerCertificateValidationCallback;
- baseAddressFormat = @"https://{0}:{1}/";
- }
- else
- {
- client = new VcRemoteClient();
- baseAddressFormat = @"http://{0}:{1}/";
- }
- client.BaseAddress = new Uri(string.Format(CultureInfo.InvariantCulture, baseAddressFormat, options.RemoteMachineName, options.VcRemotePort));
- client.Timeout = new TimeSpan(0, 0, 10); //10 second timeout
- client.Secure = options.Secure;
- client._launchOptions = options;
-
- return client;
- }
-
- public Launcher.RemotePorts StartDebugListener()
- {
- string remotePortsJsonString;
- CallVcRemote(new Uri("debug/setupForDebugging?target=" + _launchOptions.IOSDebugTarget.ToString() + "&deviceUdid=" + _launchOptions.DeviceUdid, UriKind.Relative), LauncherResources.Info_StartingDebugListener, out remotePortsJsonString);
-
- try
- {
- return JsonConvert.DeserializeObject(remotePortsJsonString);
- }
- catch (JsonException)
- {
- Telemetry.SendLaunchError(Telemetry.LaunchFailureCode.BadJson.ToString(), _launchOptions.IOSDebugTarget);
- throw new LauncherException(LauncherResources.Error_BadJSon);
- }
- }
-
- public string GetRemoteAppPath()
- {
- string appPath = string.Empty;
- var response = CallVcRemote(new Uri("debug/appRemotePath?package=" + _launchOptions.PackageId + "&deviceUdid=" + _launchOptions.DeviceUdid, UriKind.Relative), LauncherResources.Info_GettingInfo, out appPath);
-
- if (string.IsNullOrWhiteSpace(appPath))
- {
- Telemetry.SendLaunchError(Telemetry.LaunchFailureCode.BadPackageId.ToString(), _launchOptions.IOSDebugTarget);
- Debug.Fail("Invalid return from vcremote for packageId");
- throw new InvalidOperationException();
- }
-
- return appPath;
- }
-
- private HttpResponseMessage CallVcRemote(Uri endpoint, string waitLoopMessage, out string responseBody)
- {
- ManualResetEvent doneEvent = new ManualResetEvent(false);
- CancellationTokenSource cancellationTokenSource = new CancellationTokenSource();
- var waitLoop = new HostWaitLoop(waitLoopMessage);
- ExceptionDispatchInfo exceptionDispatchInfo = null;
-
- HttpResponseMessage response = null;
- string content = null;
- ThreadPool.QueueUserWorkItem(async (object o) =>
- {
- string failureCode = Telemetry.VcRemoteFailureCode.VcRemoteSucces.ToString();
-
- try
- {
- response = await this.GetAsync(endpoint, cancellationTokenSource.Token);
- response.EnsureSuccessStatusCode();
-
- content = await response.Content.ReadAsStringAsync();
- }
- catch (HttpRequestException)
- {
- if (response != null)
- {
- if (response.StatusCode == HttpStatusCode.Unauthorized)
- {
- exceptionDispatchInfo = ExceptionDispatchInfo.Capture(new LauncherException(LauncherResources.Error_Unauthorized));
- failureCode = Telemetry.VcRemoteFailureCode.VcRemoteUnauthorized.ToString();
- }
- else
- {
- exceptionDispatchInfo = ExceptionDispatchInfo.Capture(new LauncherException(string.Format(CultureInfo.CurrentCulture, LauncherResources.Error_VcRemoteUnknown, response.StatusCode.ToString())));
- failureCode = Telemetry.VcRemoteFailureCode.VcRemoteUnkown.ToString();
- }
- }
- else
- {
- exceptionDispatchInfo = ExceptionDispatchInfo.Capture(new LauncherException(LauncherResources.Error_UnableToReachServer));
- failureCode = Telemetry.VcRemoteFailureCode.VcRemoteNoConnection.ToString();
- }
- }
- catch (TaskCanceledException)
- {
- //timeout
- exceptionDispatchInfo = ExceptionDispatchInfo.Capture(new LauncherException(LauncherResources.Error_UnableToReachServer));
- failureCode = Telemetry.VcRemoteFailureCode.VcRemoteNoConnection.ToString();
- }
- catch (Exception e)
- {
- exceptionDispatchInfo = ExceptionDispatchInfo.Capture(e);
- failureCode = e.GetType().FullName;
- }
-
- doneEvent.Set();
-
- Telemetry.SendLaunchError(failureCode, _launchOptions.IOSDebugTarget);
- });
-
- waitLoop.Wait(doneEvent, cancellationTokenSource);
-
- if (exceptionDispatchInfo != null)
- {
- exceptionDispatchInfo.Throw();
- }
-
- if (response == null)
- {
- Debug.Fail("Null resposne? Should be impossible.");
- throw new InvalidOperationException();
- }
-
- responseBody = content;
- return response;
- }
-
- public RemoteCertificateValidationCallback ServerCertificateValidationCallback { get; private set; }
- public bool Secure { get; private set; }
- }
-}
diff --git a/src/MICore/GenerateXmlSerializersAssembly.targets b/src/MICore/GenerateXmlSerializersAssembly.targets
index fba2f522f..652d2010a 100755
--- a/src/MICore/GenerateXmlSerializersAssembly.targets
+++ b/src/MICore/GenerateXmlSerializersAssembly.targets
@@ -80,32 +80,37 @@
If TEST_LAB_BUILD is set, we are public signing.
sgen.exe does not have -publicsign and does not work if a keyfile is passed in.
-->
- /keyfile:$(AssemblyOriginatorKeyFile)
-
+ $(AssemblyOriginatorKeyFile)
+ /keyfile:$(SerializationSigningKeyFile)
+
- $(SerializationSigningCompilerOptions) /delaysign $(MIEngineRoot)src\MICore\SGEN_SHA2_SIGNATUREKEY
-
- $(CscToolPath)$(CscToolExe)
- $(MSBuildBinPath)\csc.exe
- $(MSBuildBinPath)\roslyn\csc.exe
-
-
- $(RoslynTargetsPath)\csc.exe
+ SGEN_SHA2_SIGNATUREKEY
+ $(SerializationSigningCompilerOptions) /delaysign $(MIEngineRoot)src\MICore\$(SgenSha2SignatureKeyFile)
$(MSBuildFrameworkToolsPath)
-
-
+
diff --git a/src/MICore/LaunchOptions.cs b/src/MICore/LaunchOptions.cs
index 711bdfecb..dbe934817 100644
--- a/src/MICore/LaunchOptions.cs
+++ b/src/MICore/LaunchOptions.cs
@@ -1267,7 +1267,11 @@ public static LaunchOptions GetInstance(HostConfigurationStore configStore, stri
{
try
{
- JObject parsedOptions = JObject.Parse(options);
+ JObject parsedOptions = JsonConvert.DeserializeObject(options, new JsonSerializerSettings { DateParseHandling = DateParseHandling.None });
+ if (parsedOptions is null)
+ {
+ throw new InvalidLaunchOptionsException(MICoreResources.Error_UnknownLaunchOptions);
+ }
// if the customLauncher element is present then try using the custom launcher implementation from the config store
if (parsedOptions["customLauncher"] != null && !string.IsNullOrWhiteSpace(parsedOptions["customLauncher"].Value()))
@@ -1337,11 +1341,8 @@ public static LaunchOptions GetInstance(HostConfigurationStore configStore, stri
case "IOSLaunchOptions":
{
- serializer = GetXmlSerializer(typeof(IOSLaunchOptions));
- launcherXmlOptions = Deserialize(serializer, reader);
- clsidLauncher = new Guid("316783D1-1824-4847-B3D3-FB048960EDCF");
+ throw new InvalidLaunchOptionsException(MICoreResources.Error_Deprecated_iOS_Debugging);
}
- break;
case "AndroidLaunchOptions":
{
diff --git a/src/MICore/MICoreResources.Designer.cs b/src/MICore/MICoreResources.Designer.cs
index 20e83aedb..bb4c11247 100755
--- a/src/MICore/MICoreResources.Designer.cs
+++ b/src/MICore/MICoreResources.Designer.cs
@@ -19,7 +19,7 @@ namespace MICore {
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
public class MICoreResources {
@@ -138,6 +138,15 @@ public static string Error_DebugServerInitializationFailed {
}
}
+ ///
+ /// Looks up a localized string similar to Debugging C++ on iOS Mobile has been deprecated and is no longer available.
+ ///
+ public static string Error_Deprecated_iOS_Debugging {
+ get {
+ return ResourceManager.GetString("Error_Deprecated_iOS_Debugging", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to PipePath cannot be empty..
///
diff --git a/src/MICore/MICoreResources.resx b/src/MICore/MICoreResources.resx
index 0421a7999..a5d886e53 100755
--- a/src/MICore/MICoreResources.resx
+++ b/src/MICore/MICoreResources.resx
@@ -329,4 +329,7 @@ Error: {1}
'visualizerFile' must be a string or array of strings.
+
+ Debugging C++ on iOS Mobile has been deprecated and is no longer available
+
\ No newline at end of file
diff --git a/src/MICore/Transports/PipeTransport.cs b/src/MICore/Transports/PipeTransport.cs
index e19b6b137..c456ac590 100644
--- a/src/MICore/Transports/PipeTransport.cs
+++ b/src/MICore/Transports/PipeTransport.cs
@@ -17,6 +17,10 @@ namespace MICore
{
public class PipeTransport : StreamTransport
{
+ // Using a larger than normal buffer (64KB instead of 1KB default) as lldb-mi has a bug where
+ // commands that exceed the buffer are truncated
+ private const int STREAM_BUFFER_SIZE = 65536;
+
private static readonly object _lock = new object();
private Process _process;
@@ -92,7 +96,7 @@ protected virtual void InitProcess(Process proc, out StreamReader stdout, out St
_debuggerPid = _process.Id;
stdout = _process.StandardOutput;
// Creating a new stream writer to set encoding to UTF-8 with UTF8Identifier as false. This prevents sending Byte Order Mask within the stream.
- stdin = new StreamWriter(_process.StandardInput.BaseStream, new UTF8Encoding(encoderShouldEmitUTF8Identifier: false), 1024 /* note: this is the default buffer size in the BCL */, leaveOpen: true);
+ stdin = new StreamWriter(_process.StandardInput.BaseStream, new UTF8Encoding(encoderShouldEmitUTF8Identifier: false), STREAM_BUFFER_SIZE, leaveOpen: true);
_stdErrReader = _process.StandardError;
_remainingReaders = 2;
@@ -197,11 +201,19 @@ public override void Close()
if (_process != null)
{
- if (_killOnClose && !_process.HasExited)
+ if (!_process.HasExited)
{
try
{
- KillPipeProcessAndChildren(_process);
+ if (_killOnClose)
+ {
+ KillPipeProcessAndChildren(_process);
+ }
+ else
+ {
+ // kill only the process
+ _process.Kill();
+ }
}
catch
{
diff --git a/src/MIDebugEngine.sln b/src/MIDebugEngine.sln
index 087bbc247..ed5df3b55 100755
--- a/src/MIDebugEngine.sln
+++ b/src/MIDebugEngine.sln
@@ -11,6 +11,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
ProjectSection(SolutionItems) = preProject
..\.editorconfig = ..\.editorconfig
IDECodeAnalysis.ruleset = IDECodeAnalysis.ruleset
+ ..\README.md = ..\README.md
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MICoreUnitTests", "MICoreUnitTests\MICoreUnitTests.csproj", "{6D565BAE-4764-40C3-9C0F-204B6FFA0389}"
@@ -27,8 +28,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JDbg", "JDbg\JDbg.csproj",
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "JDbgUnitTests", "JDbgUnitTests\JDbgUnitTests.csproj", "{207FD4CC-116B-466D-8893-F9565248A085}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "IOSDebugLauncher", "IOSDebugLauncher\IOSDebugLauncher.csproj", "{D2A11674-F677-4B11-9989-2F6099A6F0A2}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DebugEngineHost.Stub", "DebugEngineHost.Stub\DebugEngineHost.Stub.csproj", "{EA876A2D-AB0F-4204-97DD-DFB3B5568978}"
ProjectSection(ProjectDependencies) = postProject
{114039A0-87B5-425B-90C9-6AFC1960A247} = {114039A0-87B5-425B-90C9-6AFC1960A247}
@@ -144,14 +143,6 @@ Global
{207FD4CC-116B-466D-8893-F9565248A085}.Lab.Release|Any CPU.Build.0 = Lab.Release|Any CPU
{207FD4CC-116B-466D-8893-F9565248A085}.Release|Any CPU.ActiveCfg = Release|Any CPU
{207FD4CC-116B-466D-8893-F9565248A085}.Release|Any CPU.Build.0 = Release|Any CPU
- {D2A11674-F677-4B11-9989-2F6099A6F0A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D2A11674-F677-4B11-9989-2F6099A6F0A2}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D2A11674-F677-4B11-9989-2F6099A6F0A2}.Lab.Debug|Any CPU.ActiveCfg = Lab.Debug|Any CPU
- {D2A11674-F677-4B11-9989-2F6099A6F0A2}.Lab.Debug|Any CPU.Build.0 = Lab.Debug|Any CPU
- {D2A11674-F677-4B11-9989-2F6099A6F0A2}.Lab.Release|Any CPU.ActiveCfg = Lab.Release|Any CPU
- {D2A11674-F677-4B11-9989-2F6099A6F0A2}.Lab.Release|Any CPU.Build.0 = Lab.Release|Any CPU
- {D2A11674-F677-4B11-9989-2F6099A6F0A2}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D2A11674-F677-4B11-9989-2F6099A6F0A2}.Release|Any CPU.Build.0 = Release|Any CPU
{EA876A2D-AB0F-4204-97DD-DFB3B5568978}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EA876A2D-AB0F-4204-97DD-DFB3B5568978}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EA876A2D-AB0F-4204-97DD-DFB3B5568978}.Lab.Debug|Any CPU.ActiveCfg = Lab.Debug|Any CPU
@@ -297,7 +288,6 @@ Global
{E0844BFF-2D67-4CB0-8E2A-E9CD888F2EB0} = {2865BFC4-770D-4219-945A-75670F98A6A6}
{78728205-DB3E-4B7B-A7D2-5CBE38E9C607} = {2865BFC4-770D-4219-945A-75670F98A6A6}
{207FD4CC-116B-466D-8893-F9565248A085} = {2865BFC4-770D-4219-945A-75670F98A6A6}
- {D2A11674-F677-4B11-9989-2F6099A6F0A2} = {B864C337-1AA8-42B3-BF01-90901F55DE70}
{AE7F97CA-DFD2-41BC-B581-98C91C83065C} = {B864C337-1AA8-42B3-BF01-90901F55DE70}
{FCE5D242-33FC-4570-88F3-A3DDE8C27643} = {9D97EF1A-BCD5-4932-BBCC-98194CF8A841}
{A65FA6DE-D455-4662-9593-8EBBE61BA134} = {9D97EF1A-BCD5-4932-BBCC-98194CF8A841}
diff --git a/src/MIDebugEngine/Engine.Impl/DebuggedProcess.cs b/src/MIDebugEngine/Engine.Impl/DebuggedProcess.cs
index 4a0335f06..aaabb974a 100755
--- a/src/MIDebugEngine/Engine.Impl/DebuggedProcess.cs
+++ b/src/MIDebugEngine/Engine.Impl/DebuggedProcess.cs
@@ -624,6 +624,7 @@ private async Task
> GetInitializeCommands()
if (_launchOptions.DebuggerMIMode == MIMode.Gdb)
{
commands.Add(new LaunchCommand("-interpreter-exec console \"set pagination off\""));
+ commands.Add(new LaunchCommand("set debuginfod enabled on", ignoreFailures:true));
}
// When user specifies loading directives then the debugger cannot auto load symbols, the MIEngine must intervene at each solib-load event and make a determination
diff --git a/src/MIDebugEngine/Engine.Impl/Variables.cs b/src/MIDebugEngine/Engine.Impl/Variables.cs
index 8c297998f..95821b167 100644
--- a/src/MIDebugEngine/Engine.Impl/Variables.cs
+++ b/src/MIDebugEngine/Engine.Impl/Variables.cs
@@ -272,7 +272,7 @@ private VariableInformation(TupleValue results, VariableInformation parent, stri
int index;
- if (!results.Contains("value") && (Name == TypeName || Name.Contains("::")))
+ if (!results.Contains("value") && (Name == TypeName || (Name.Contains("::") && name == null)))
{
// base classes show up with no value and exp==type
// (sometimes underlying debugger does not follow this convention, when using typedefs in templated types so look for "::" in the field name too)
@@ -289,8 +289,9 @@ private VariableInformation(TupleValue results, VariableInformation parent, stri
{
VariableNodeType = NodeType.ArrayElement;
}
- else if (Name == "")
+ else if (Name == "" || TypeName.EndsWith("(anonymous union)", StringComparison.InvariantCulture))
{
+ // GDB provides anonymous unions in the expression; LLDB includes them in the type name and leaves the expression empty
VariableNodeType = NodeType.AnonymousUnion;
}
else if (Name.Length > 1 && Name[0] == '*')
@@ -388,10 +389,16 @@ private string ProcessFormatSpecifiers(string exp, out string formatSpecifier)
if (lastComma <= 0)
return exp;
+ // Find the format specifier expression
+ string expFS = exp.Substring(lastComma + 1).Trim();
+
+ // Strip off modifiers that may be included together with another format specifier, e.g. 'nvoXb' is a valid format specifier, but we only care about the 'Xb' part
+ // This is not quite the right fix -- really the below switch statement should be a series of if statements. But since none of the supported format specifiers
+ // contain any of these characters we can fix this the simple way and remove them.
+ expFS = expFS.Replace("nvo", "").Replace("na", "").Replace("nr", "").Replace("nd", "");
+
// https://docs.microsoft.com/en-us/visualstudio/debugger/format-specifiers-in-cpp
- string expFS = exp.Substring(lastComma + 1);
- string trimmed = expFS.Trim();
- switch (trimmed)
+ switch (expFS)
{
case "x":
case "X":
@@ -432,19 +439,17 @@ private string ProcessFormatSpecifiers(string exp, out string formatSpecifier)
return "(char)(" + exp.Substring(0, lastComma) + ")";
// just remove and ignore these
case "en":
- case "na":
- case "nd":
- case "nr":
case "!":
case "":
return exp.Substring(0, lastComma);
}
- // array with static size
- var m = Regex.Match(trimmed, @"^\[?(\d+)\]?$");
- if (m.Success)
+ // Array with static size
+ // Note that size specifiers may also include format specifiers (e.g. "ptr,[10]s8") which we should recognize in the regex, but ignore, since neither LLDB nor GDB support them
+ var matchStatic = Regex.Match(expFS, @"^\[?(\d+)\]?[a-zA-Z\d]*$");
+ if (matchStatic.Success)
{
- string count = m.Groups[1].Value; // (\d+) capture group
+ string count = matchStatic.Groups[1].Value; // (\d+) capture group
string expr = exp.Substring(0, lastComma);
if (_engine.DebuggedProcess.MICommandFactory.Mode == MIMode.Gdb)
@@ -471,9 +476,13 @@ private string ProcessFormatSpecifiers(string exp, out string formatSpecifier)
}
}
- // array with dynamic size
- if (Regex.Match(trimmed, @"^\[([a-zA-Z_][a-zA-Z_\d]*)\]$").Success)
- return exp.Substring(0, lastComma);
+ // Array with dynamic size is not supported, discard the format specifier
+ var matchDynamic = Regex.Match(expFS, @"^\[.*\][a-zA-Z\d]*$");
+ if (matchDynamic.Success)
+ {
+ string expr = exp.Substring(0, lastComma);
+ return expr;
+ }
return exp;
}
@@ -714,7 +723,20 @@ internal async Task Format()
Results results = await _engine.DebuggedProcess.MICommandFactory.VarSetFormat(_internalName, _format, ResultClass.None);
if (results.ResultClass == ResultClass.done)
{
- Value = results.FindString("value");
+ if (results.Contains("value"))
+ {
+ // Sample output for GDB: ^done,format="natural",value="123"
+ this.Value = results.FindString("value");
+ }
+ else if (results.TryFind("changelist", out ValueListValue changeList))
+ {
+ // Sample output for LLDB: ^done,changelist=[{name="var1",value="123",in_scope="true",type_changed="false",type_changed="0"}]
+ this.Value = changeList.Content[0].FindString("value");
+ }
+ else
+ {
+ throw new MIResultFormatException("value", results);
+ }
}
else if (results.ResultClass == ResultClass.error)
{
diff --git a/src/MIDebugEngine/Natvis.Impl/Natvis.cs b/src/MIDebugEngine/Natvis.Impl/Natvis.cs
index 5091a78ae..01d4aaf3c 100755
--- a/src/MIDebugEngine/Natvis.Impl/Natvis.cs
+++ b/src/MIDebugEngine/Natvis.Impl/Natvis.cs
@@ -50,7 +50,7 @@ public SimpleWrapper(string name, AD7Engine engine, IVariableInformation underly
public string EvalDependentExpression(string expr) => Parent.EvalDependentExpression(expr);
public void AsyncEval(IDebugEventCallback2 pExprCallback) => Parent.AsyncEval(pExprCallback);
public void SyncEval(enum_EVALFLAGS dwFlags, DAPEvalFlags dwDAPFlags) => Parent.SyncEval(dwFlags, dwDAPFlags);
- public virtual string FullName() => Name;
+ public virtual string FullName() => Parent.FullName();
public void EnsureChildren() => Parent.EnsureChildren();
public void AsyncError(IDebugEventCallback2 pExprCallback, IDebugProperty2 error)
{
@@ -646,8 +646,9 @@ private IVariableInformation[] ExpandVisualized(IVariableInformation variable)
{
continue;
}
- // Creates an expression: (T[50])*( + 50)
- // This evaluates for 50 elements of type T, starting at with an offet of 50 elements.
+
+ // Creates a dereferenced pointer-to-array expression: (*(T(*)[50])(ValuePointer + 50))
+ // This evaluates for 50 elements of type T, starting at with an offset of 50 elements.
// E.g. This will grab elements 50 - 99 from .
// Note:
// If requestedSize > 1000, the evaluation will only grab the first 1000 elements.
@@ -656,15 +657,15 @@ private IVariableInformation[] ExpandVisualized(IVariableInformation variable)
uint requestedSize = Math.Min(MAX_EXPAND, totalSize - startIndex);
StringBuilder arrayBuilder = new StringBuilder();
- arrayBuilder.Append('(');
+ arrayBuilder.Append("(*(");
arrayBuilder.Append(typename);
- arrayBuilder.Append('[');
+ arrayBuilder.Append("(*)[");
arrayBuilder.Append(requestedSize);
- arrayBuilder.Append("])*(");
+ arrayBuilder.Append("])(");
arrayBuilder.Append(vp.Value);
arrayBuilder.Append('+');
arrayBuilder.Append(startIndex);
- arrayBuilder.Append(')');
+ arrayBuilder.Append("))");
string arrayStr = arrayBuilder.ToString();
IVariableInformation arrayExpr = GetExpression(arrayStr, variable, visualizer.ScopedNames);
diff --git a/src/MIDebugEngine/Natvis.Impl/NatvisNames.cs b/src/MIDebugEngine/Natvis.Impl/NatvisNames.cs
index 85972bdd8..ad8df5021 100644
--- a/src/MIDebugEngine/Natvis.Impl/NatvisNames.cs
+++ b/src/MIDebugEngine/Natvis.Impl/NatvisNames.cs
@@ -34,7 +34,7 @@ private void SetArraySize(int[] Dims)
}
private static Regex s_identifier = new Regex("^[a-zA-Z$_][a-zA-Z$_0-9]*");
- private static Regex s_numeric = new Regex("^[0-9]+(u|l|ul)*"); // only decimal constants
+ private static Regex s_numeric = new Regex("^[-]?[0-9]+(u|l|ul)*"); // only decimal constants
private static Regex s_simpleType = new Regex(
@"^(signed\s+char|unsigned\s+char|char16_t|char32_t|wchar_t|char|"
+ @"signed\s+short\s+int|signed\s+short|unsigned\s+short\s+int|unsigned\s+short|short\s+int|short|"
diff --git a/src/MIDebugPackage/Install.cmd b/src/MIDebugPackage/Install.cmd
index d4012d878..48bd0afda 100644
--- a/src/MIDebugPackage/Install.cmd
+++ b/src/MIDebugPackage/Install.cmd
@@ -35,7 +35,7 @@ if NOT "%ERRORLEVEL%"=="0" echo ERROR: Must be called from an elevated command p
set BackupDir=%DestDir%\.MDDDebuggerBackup\
set MDDDebuggerDir=%DestDir%\Common7\IDE\CommonExtensions\Microsoft\MDD\Debugger\
-set FilesToInstall=Microsoft.MICore.dll Microsoft.MIDebugEngine.dll Microsoft.MIDebugEngine.pkgdef Microsoft.MIDebugPackage.dll Microsoft.MIDebugPackage.pkgdef Microsoft.AndroidDebugLauncher.dll Microsoft.AndroidDebugLauncher.pkgdef Microsoft.IOSDebugLauncher.dll Microsoft.IOSDebugLauncher.pkgdef Microsoft.JDbg.dll Microsoft.DebugEngineHost.dll Microsoft.MICore.XmlSerializers.dll Microsoft.SSHDebugPS.dll Microsoft.SSHDebugPS.pkgdef OpenFolderSchema.json
+set FilesToInstall=Microsoft.MICore.dll Microsoft.MIDebugEngine.dll Microsoft.MIDebugEngine.pkgdef Microsoft.MIDebugPackage.dll Microsoft.MIDebugPackage.pkgdef Microsoft.AndroidDebugLauncher.dll Microsoft.AndroidDebugLauncher.pkgdef Microsoft.JDbg.dll Microsoft.DebugEngineHost.dll Microsoft.MICore.XmlSerializers.dll Microsoft.SSHDebugPS.dll Microsoft.SSHDebugPS.pkgdef OpenFolderSchema.json
REM Add in the Facade assemblies we need to run on the desktop CLR if we are running in VS 2015. In VS 2017, Roslyn adds these, so don't add our own copy.
if not exist "%DestDir%\Common7\IDE\PrivateAssemblies\System.Diagnostics.Process.dll" set FilesToInstall=%FilesToInstall% System.Diagnostics.Process.dll System.IO.FileSystem.dll System.IO.FileSystem.Primitives.dll System.Net.Security.dll System.Net.Sockets.dll System.Reflection.TypeExtensions.dll System.Runtime.InteropServices.RuntimeInformation.dll System.Security.Cryptography.X509Certificates.dll System.Threading.Thread.dll
diff --git a/src/MIDebugPackage/MIDebugPackage.csproj b/src/MIDebugPackage/MIDebugPackage.csproj
index 8e136cb13..3e8ad4d68 100755
--- a/src/MIDebugPackage/MIDebugPackage.csproj
+++ b/src/MIDebugPackage/MIDebugPackage.csproj
@@ -163,9 +163,6 @@
-
-
-
@@ -208,13 +205,7 @@
false
all
-
- {d2a11674-f677-4b11-9989-2f6099a6f0a2}
- IOSDebugLauncher
- BuiltProjectOutputGroup;BuiltProjectOutputGroupDependencies;GetCopyToOutputDirectoryItems;SatelliteDllsProjectOutputGroup;
- false
- all
-
+
{78728205-db3e-4b7b-a7d2-5cbe38e9c607}
JDbg
diff --git a/src/MIDebugPackage/source.extension.vsixmanifest b/src/MIDebugPackage/source.extension.vsixmanifest
index b9a1df549..8d87e5a86 100644
--- a/src/MIDebugPackage/source.extension.vsixmanifest
+++ b/src/MIDebugPackage/source.extension.vsixmanifest
@@ -20,7 +20,6 @@
-
diff --git a/src/MakePIAPortable/MakePIAPortable.csproj b/src/MakePIAPortable/MakePIAPortable.csproj
index 235f6baf0..4c51828d1 100644
--- a/src/MakePIAPortable/MakePIAPortable.csproj
+++ b/src/MakePIAPortable/MakePIAPortable.csproj
@@ -65,9 +65,17 @@
$(MIDefaultOutputPath)tools\MakePIAPortableTool.dll
true
+ ..\..\build\package_versions.settings.targets
-
-
+
+
+
+
+
+
+
diff --git a/src/SSHDebugPS/Docker/DockerContainerInstance.cs b/src/SSHDebugPS/Docker/DockerContainerInstance.cs
index 61b95713f..810975773 100644
--- a/src/SSHDebugPS/Docker/DockerContainerInstance.cs
+++ b/src/SSHDebugPS/Docker/DockerContainerInstance.cs
@@ -62,6 +62,7 @@ private DockerContainerInstance() { }
[JsonProperty("CreatedAt")]
public string Created { get; private set; }
+ [JsonIgnore]
public string Platform { get; set; }
#endregion
diff --git a/src/tools/MakePIAPortableTool/MakePIAPortableTool.cs b/src/tools/MakePIAPortableTool/MakePIAPortableTool.cs
index 7019f918e..3a9bcfbc3 100644
--- a/src/tools/MakePIAPortableTool/MakePIAPortableTool.cs
+++ b/src/tools/MakePIAPortableTool/MakePIAPortableTool.cs
@@ -40,6 +40,8 @@ class Program
{ "System.Collections.Generic.IEnumerable", System_Runtime },
{ "System.Reflection.DefaultMemberAttribute", System_Runtime },
{ "System.Reflection.AssemblyDelaySignAttribute", System_Runtime},
+ { "System.Reflection.AssemblyKeyFileAttribute", System_Runtime },
+ { "System.Reflection.AssemblySignatureKeyAttribute", System_Runtime },
{ "System.Runtime.CompilerServices.CompilationRelaxationsAttribute", System_Runtime },
{ "System.Runtime.CompilerServices.RuntimeCompatibilityAttribute", System_Runtime },
{ "System.Diagnostics.DebuggableAttribute", System_Runtime },
diff --git a/test/CppTests/Tests/NatvisTests.cs b/test/CppTests/Tests/NatvisTests.cs
index d7fdf5d12..d9d644ff6 100644
--- a/test/CppTests/Tests/NatvisTests.cs
+++ b/test/CppTests/Tests/NatvisTests.cs
@@ -138,11 +138,6 @@ public void TestIndexListItems(ITestSettings settings)
[Theory]
[DependsOnTest(nameof(CompileNatvisDebuggee))]
[RequiresTestSettings]
- // Disable on macOS
- // Error:
- // C-style cast from 'int' to 'int [10]' is not allowed
- // (int[10])*(((vec)._start))
- [UnsupportedDebugger(SupportedDebugger.Lldb, SupportedArchitecture.x64 | SupportedArchitecture.x86)]
public void TestArrayItems(ITestSettings settings)
{
this.TestPurpose("This test checks if ArrayItems are visualized.");
@@ -193,11 +188,6 @@ public void TestArrayItems(ITestSettings settings)
[Theory]
[DependsOnTest(nameof(CompileNatvisDebuggee))]
[RequiresTestSettings]
- // Disable on macOS
- // Error:
- // C-style cast from 'int' to 'int [10]' is not allowed
- // (int[10])*(((vec)._start))
- [UnsupportedDebugger(SupportedDebugger.Lldb, SupportedArchitecture.x64 | SupportedArchitecture.x86)]
public void Test2000ArrayItems(ITestSettings settings)
{
this.TestPurpose("This test checks if ArrayItems can be visualized past 1000 elements.");
@@ -484,11 +474,6 @@ public void TestCommaFormatWithSquareBrackets(ITestSettings settings)
[Theory]
[DependsOnTest(nameof(CompileNatvisDebuggee))]
[RequiresTestSettings]
- // Disable on macOS
- // Error:
- // C-style cast from 'int' to 'int [10]' is not allowed
- // (int[10])*(((vec)._start))
- [UnsupportedDebugger(SupportedDebugger.Lldb, SupportedArchitecture.x64 | SupportedArchitecture.x86)]
public void TestMultipleNatvisFiles(ITestSettings settings)
{
this.TestPurpose("This test checks if multiple Natvis files can be used.");
diff --git a/test/DebugAdapterRunner/DebugAdapterRunner.cs b/test/DebugAdapterRunner/DebugAdapterRunner.cs
index 2d7315f6e..6d7a51899 100644
--- a/test/DebugAdapterRunner/DebugAdapterRunner.cs
+++ b/test/DebugAdapterRunner/DebugAdapterRunner.cs
@@ -8,6 +8,7 @@
using System.Diagnostics;
using System.Globalization;
using System.IO;
+using System.Linq;
using System.Text;
using System.Threading;
@@ -163,8 +164,25 @@ private void StartDebugAdapter(
if (redirectVSAssert)
{
- _assertionFileName = Path.Combine(Path.GetTempPath(), string.Format(CultureInfo.InvariantCulture, "vsassert.{0}.txt", Guid.NewGuid()));
- startInfo.Environment["VSASSERT"] = _assertionFileName;
+ string vsassertPath = null;
+
+ // First see if the caller already specified the assertion path
+ if (additionalEnvironmentVariables != null)
+ {
+ vsassertPath = additionalEnvironmentVariables
+ .Where(pair => pair.Key.Equals("VSASSERT", StringComparison.OrdinalIgnoreCase))
+ .Select(pair => pair.Value)
+ .FirstOrDefault();
+ }
+
+ if (string.IsNullOrEmpty(vsassertPath))
+ {
+ // If the caller didn't specify a path, create a temporary one
+ vsassertPath = Path.Combine(Path.GetTempPath(), string.Format(CultureInfo.InvariantCulture, "vsassert.{0}.txt", Guid.NewGuid()));
+ startInfo.Environment["VSASSERT"] = vsassertPath;
+ }
+
+ _assertionFileName = vsassertPath;
}
if (additionalEnvironmentVariables != null)
diff --git a/test/MIEngine.regdef b/test/MIEngine.regdef
index d28f1516e..e570b38ec 100644
--- a/test/MIEngine.regdef
+++ b/test/MIEngine.regdef
@@ -34,9 +34,4 @@ Windows Registry Editor Version 5.00
[$RootKey$\CLSID\{C9A403DA-D3AA-4632-A572-E81FF6301E9B}]
"Assembly"="Microsoft.AndroidDebugLauncher"
"Class"="AndroidDebugLauncher.Launcher"
-"CodeBase"="$GlassInstallDir$\Microsoft.AndroidDebugLauncher.dll"
-
-[$RootKey$\CLSID\{316783D1-1824-4847-B3D3-FB048960EDCF}]
-"Assembly"="Microsoft.IOSDebugLauncher"
-"Class"="IOSDebugLauncher.Launcher"
-"CodeBase"="$GlassInstallDir$\Microsoft.IOSDebugLauncher.dll"
\ No newline at end of file
+"CodeBase"="$GlassInstallDir$\Microsoft.AndroidDebugLauncher.dll"
\ No newline at end of file
diff --git a/tools/VS.list b/tools/VS.list
index dc274f437..01bf4ac60 100644
--- a/tools/VS.list
+++ b/tools/VS.list
@@ -4,8 +4,6 @@ Microsoft.Android.natvis,src,AndroidDebugLauncher,\Common7\IDE\CommonExtensions\
Microsoft.AndroidDebugLauncher.dll,bin,,\Common7\IDE\CommonExtensions\Microsoft\MDD\Debugger
Microsoft.AndroidDebugLauncher.pkgdef,bin,,\Common7\IDE\CommonExtensions\Microsoft\MDD\Debugger
Microsoft.DebugEngineHost.dll,bin,,\Common7\IDE\CommonExtensions\Microsoft\MDD\Debugger
-Microsoft.IOSDebugLauncher.dll,bin,,\Common7\IDE\CommonExtensions\Microsoft\MDD\Debugger
-Microsoft.IOSDebugLauncher.pkgdef,bin,,\Common7\IDE\CommonExtensions\Microsoft\MDD\Debugger
Microsoft.JDbg.dll,bin,,\Common7\IDE\CommonExtensions\Microsoft\MDD\Debugger
Microsoft.MICore.dll,bin,,\Common7\IDE\CommonExtensions\Microsoft\MDD\Debugger
Microsoft.MICore.XmlSerializers.dll,bin,,\Common7\IDE\CommonExtensions\Microsoft\MDD\Debugger