diff --git a/docs/azure/TOC.yml b/docs/azure/TOC.yml index f413e030c06d4..6e0d1970a5339 100644 --- a/docs/azure/TOC.yml +++ b/docs/azure/TOC.yml @@ -37,6 +37,8 @@ href: ./migration/appcat/interpret-results.md - name: Custom configuration href: ./migration/appcat/custom-configuration.md + - name: FAQ + href: ./migration/appcat/faq.md - name: Choose the right Azure hosting option href: ./migration/choose.md - name: Migrate a .NET web app or service to Azure App Service diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index bd5dd28f35bfc..a448cddc395ba 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -68,7 +68,7 @@ | Media Analytics Edge | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Media.Analytics.Edge/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Media.Analytics.Edge-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Media.Analytics.Edge_1.0.0-beta.1/sdk/mediaservices/Azure.Media.Analytics.Edge) | | Metrics Advisor | NuGet [1.1.0](https://www.nuget.org/packages/Azure.AI.MetricsAdvisor/1.1.0) | [docs](/dotnet/api/overview/azure/AI.MetricsAdvisor-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.MetricsAdvisor_1.1.0/sdk/metricsadvisor/Azure.AI.MetricsAdvisor/) | | Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents | NuGet [1.0.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents/1.0.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents_1.0.1/sdk/entra/Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents/) | -| Microsoft.Azure.WebPubSub.Common | NuGet [1.3.0](https://www.nuget.org/packages/Microsoft.Azure.WebPubSub.Common/1.3.0) | | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebPubSub.Common_1.3.0/sdk/webpubsub/Microsoft.Azure.WebPubSub.Common/) | +| Microsoft.Azure.WebPubSub.Common | NuGet [1.3.0](https://www.nuget.org/packages/Microsoft.Azure.WebPubSub.Common/1.3.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebPubSub.Common-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebPubSub.Common_1.3.0/sdk/webpubsub/Microsoft.Azure.WebPubSub.Common/) | | Mixed Reality Authentication | NuGet [1.2.0](https://www.nuget.org/packages/Azure.MixedReality.Authentication/1.2.0) | [docs](/dotnet/api/overview/azure/MixedReality.Authentication-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.MixedReality.Authentication_1.2.0/sdk/mixedreality/Azure.MixedReality.Authentication/) | | Models Repository | NuGet [1.0.0-preview.6](https://www.nuget.org/packages/Azure.IoT.ModelsRepository/1.0.0-preview.6) | [docs](/dotnet/api/overview/azure/IoT.ModelsRepository-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-preview.6](https://github.com/Azure/azure-sdk-for-net/tree/Azure.IoT.ModelsRepository_1.0.0-preview.6/sdk/modelsrepository/Azure.IoT.ModelsRepository/) | | Monitor Ingestion | NuGet [1.1.2](https://www.nuget.org/packages/Azure.Monitor.Ingestion/1.1.2) | [docs](/dotnet/api/overview/azure/Monitor.Ingestion-readme) | GitHub [1.1.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.Ingestion_1.1.2/sdk/monitor/Azure.Monitor.Ingestion/) | @@ -373,7 +373,7 @@ | Common | NuGet [2.2.1](https://www.nuget.org/packages/Microsoft.Azure.Common/2.2.1) | | | | Common - Dependencies | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Common.Dependencies/1.0.0) | | | | Computer Vision | NuGet [7.0.1](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Vision.ComputerVision/7.0.1) | | GitHub [7.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Vision.ComputerVision_6.0.0-preview.1/sdk/cognitiveservices/Vision.ComputerVision) | -| Cosmos DB | NuGet [3.42.0](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.42.0)
NuGet [3.43.0-preview.0](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.43.0-preview.0) | [docs](https://learn.microsoft.com/dotnet/api/overview/azure/cosmosdb) | GitHub [3.42.0](https://github.com/Azure/azure-cosmos-dotnet-v3/tree/3.12.0/Microsoft.Azure.Cosmos) | +| Cosmos DB | NuGet [3.42.0](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.42.0)
NuGet [3.44.0-preview.0](https://www.nuget.org/packages/Microsoft.Azure.Cosmos/3.44.0-preview.0) | [docs](https://learn.microsoft.com/dotnet/api/overview/azure/cosmosdb) | GitHub [3.42.0](https://github.com/Azure/azure-cosmos-dotnet-v3/tree/3.12.0/Microsoft.Azure.Cosmos) | | Custom Image Search | NuGet [2.1.0-preview.1](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.BingCustomImageSearch/2.1.0-preview.1) | | GitHub [2.1.0-preview.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Search.BingCustomImageSearch_2.1.0-preview.1/sdk/cognitiveservices/Search.BingCustomImageSearch) | | Custom Image Search | NuGet [2.0.0](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.CustomImageSearch/2.0.0) | | | | Custom Search | NuGet [2.1.0-preview.1](https://www.nuget.org/packages/Microsoft.Azure.CognitiveServices.Search.BingCustomSearch/2.1.0-preview.1) | | GitHub [2.1.0-preview.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.CognitiveServices.Search.BingCustomSearch_2.1.0-preview.1/sdk/cognitiveservices/Search.BingCustomSearch) | @@ -504,7 +504,7 @@ | Microsoft.Azure.Functions.Worker.Extensions.EventHubs | NuGet [6.3.6](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.EventHubs/6.3.6) | | | | Microsoft.Azure.Functions.Worker.Extensions.Http | NuGet [3.2.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Http/3.2.0) | | | | Microsoft.Azure.Functions.Worker.Extensions.Kafka | NuGet [3.10.1](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Kafka/3.10.1) | | | -| Microsoft.Azure.Functions.Worker.Extensions.Kusto | NuGet [1.0.10-Preview](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Kusto/1.0.10-Preview) | | | +| Microsoft.Azure.Functions.Worker.Extensions.Kusto | NuGet [1.0.11-Preview](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Kusto/1.0.11-Preview) | | | | Microsoft.Azure.Functions.Worker.Extensions.OpenApi | NuGet [1.4.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.OpenApi/1.4.0)
NuGet [2.0.0-preview2](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.OpenApi/2.0.0-preview2) | | | | Microsoft.Azure.Functions.Worker.Extensions.RabbitMQ | NuGet [2.0.3](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.RabbitMQ/2.0.3) | | | | Microsoft.Azure.Functions.Worker.Extensions.Rpc | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Rpc/1.0.0) | | | @@ -527,7 +527,7 @@ | Microsoft.Azure.Functions.Worker.Sdk.Generators | NuGet [1.3.2](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Sdk.Generators/1.3.2) | | | | Microsoft.Azure.WebJobs.CosmosDb.ChangeProcessor | NuGet [1.0.4](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.CosmosDb.ChangeProcessor/1.0.4) | | | | Microsoft.Azure.WebJobs.CosmosDb.Mongo | NuGet [1.0.4](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.CosmosDb.Mongo/1.0.4) | | | -| Microsoft.Azure.WebJobs.Extensions.Kusto | NuGet [1.0.10-Preview](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Kusto/1.0.10-Preview) | | | +| Microsoft.Azure.WebJobs.Extensions.Kusto | NuGet [1.0.11-Preview](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Kusto/1.0.11-Preview) | | | | Microsoft.Azure.WebJobs.Extensions.Rpc | NuGet [3.0.41](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Rpc/3.0.41) | | | | Microsoft.Azure.WebJobs.Rpc.Core | NuGet [3.0.41](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Rpc.Core/3.0.41) | | | | Service Bus - Message ID plugin | NuGet [2.0.0](https://www.nuget.org/packages/Microsoft.Azure.ServiceBus.MessageIdPlugin/2.0.0) | | | diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md index e009de1f8ac34..65750d2e766de 100644 --- a/docs/azure/includes/dotnet-new.md +++ b/docs/azure/includes/dotnet-new.md @@ -69,7 +69,7 @@ | Media Analytics Edge | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Media.Analytics.Edge/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Media.Analytics.Edge-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Media.Analytics.Edge_1.0.0-beta.1/sdk/mediaservices/Azure.Media.Analytics.Edge) | | Metrics Advisor | NuGet [1.1.0](https://www.nuget.org/packages/Azure.AI.MetricsAdvisor/1.1.0) | [docs](/dotnet/api/overview/azure/AI.MetricsAdvisor-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.MetricsAdvisor_1.1.0/sdk/metricsadvisor/Azure.AI.MetricsAdvisor/) | | Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents | NuGet [1.0.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents/1.0.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents_1.0.1/sdk/entra/Microsoft.Azure.WebJobs.Extensions.AuthenticationEvents/) | -| Microsoft.Azure.WebPubSub.Common | NuGet [1.3.0](https://www.nuget.org/packages/Microsoft.Azure.WebPubSub.Common/1.3.0) | | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebPubSub.Common_1.3.0/sdk/webpubsub/Microsoft.Azure.WebPubSub.Common/) | +| Microsoft.Azure.WebPubSub.Common | NuGet [1.3.0](https://www.nuget.org/packages/Microsoft.Azure.WebPubSub.Common/1.3.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebPubSub.Common-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebPubSub.Common_1.3.0/sdk/webpubsub/Microsoft.Azure.WebPubSub.Common/) | | Mixed Reality Authentication | NuGet [1.2.0](https://www.nuget.org/packages/Azure.MixedReality.Authentication/1.2.0) | [docs](/dotnet/api/overview/azure/MixedReality.Authentication-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.MixedReality.Authentication_1.2.0/sdk/mixedreality/Azure.MixedReality.Authentication/) | | Models Repository | NuGet [1.0.0-preview.6](https://www.nuget.org/packages/Azure.IoT.ModelsRepository/1.0.0-preview.6) | [docs](/dotnet/api/overview/azure/IoT.ModelsRepository-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-preview.6](https://github.com/Azure/azure-sdk-for-net/tree/Azure.IoT.ModelsRepository_1.0.0-preview.6/sdk/modelsrepository/Azure.IoT.ModelsRepository/) | | Monitor Ingestion | NuGet [1.1.2](https://www.nuget.org/packages/Azure.Monitor.Ingestion/1.1.2) | [docs](/dotnet/api/overview/azure/Monitor.Ingestion-readme) | GitHub [1.1.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.Ingestion_1.1.2/sdk/monitor/Azure.Monitor.Ingestion/) | diff --git a/docs/azure/migration/appcat/custom-configuration.md b/docs/azure/migration/appcat/custom-configuration.md index 36cb5e967f9bd..f7d6ca080fa88 100644 --- a/docs/azure/migration/appcat/custom-configuration.md +++ b/docs/azure/migration/appcat/custom-configuration.md @@ -6,11 +6,9 @@ ms.date: 08/02/2024 author: mckennabarlow ms.author: mcbarlow --- -# How to customize analysis with run config +# How to customize analysis using run configs -## Overview - -Before running an analysis, AppCAT discovers all rules and analyzers provided to it and then uses that information to match the project's `traits`. However, the analysis results can be overly verbose when using the default configuration. +The Azure Migrate application and code assessment tool supports custom analysis using run configs. Before the tool runs an analysis, it discovers all available rules and analyzers and then uses the ones that match current project's traits. However, some results might be too noisy for some applications. To control/scope rules and/or analyzers used, you can provide a JSON run configuration file. This allows you to: @@ -22,22 +20,24 @@ To control/scope rules and/or analyzers used, you can provide a JSON run configu ## How to provide a JSON run configuration -### Using the CLI +## [.NET CLI](#tab/cli) + +The Azure Migrate application and code assessment tool enables you to [Analyze applications with the .NET CLI](dotnet-cli.md). When using the CLI, there are two options to provide a run config: -- **Interactive mode**: The CLI will ask if you want to provide run configuration. Upon selecting *yes*, it prompts the user to type/paste the path to the run configuration file. -- **Non-interactive mode**: Use the `-c|--config` argument. This allows you to provide the path to the JSON run configuration. +- **Interactive mode**: The CLI asks if you want to provide run config. Select `Yes` and then provide the path to the run config file. +- **Non-interactive mode**: Provide the `-c` or `--config` argument, which allows you to provide the path to the run config JSON. -### Using Visual Studio +## [Visual Studio](#tab/visual-studio) -- When editing analysis settings, use the UI to specify JSON run configuration. +The Azure Migrate application and code assessment tool enables you to [Analyze applications with Visual Studio](visual-studio.md). During the step that allows you to edit analysis settings, select the **Browse** button to locate and select a run config JSON file. After analysis is done, run configuration is stored in the report. The configuration is re-used if the user reopens the report and refreshes. -After analysis is done, run configuration is stored in the report. The configuration is re-used if the user reopens the report and refreshes. +--- ## Run config schema -Here is a sample run config: +Consider the following sample run config: -``` +```json { "analysis": { "settings": { @@ -84,11 +84,8 @@ Here is a sample run config: ] } } - ``` -Looking at the JSON objects contained in the preceding example: - - `analysis.settings` contains global includes or excludes. These include and exclude binaries to be analyzed. It's recommended to run binary analysis once to see any red flags, but results for binaries tend to be verbose. Some of the results could flag problems inside dependencies your application is consuming. Other results could be valid problems in your app, but located in unused code paths. These can be ignored to reduce the verbosity of the results. - `analysis.rules` contains rules definitions. These definitions override or disable existing rules, as well as define new rules. - `analysis.analyzers` contains analyzers. Similarly to the rules definitions, these can be disabled, overridden, or added on to. @@ -97,14 +94,13 @@ Looking at the JSON objects contained in the preceding example: ### Add new rule -``` +```json { "rules": [ { "id": "Category.NumericId", "severity": "potential", "effort": 5 - ... } ] } @@ -112,7 +108,7 @@ Looking at the JSON objects contained in the preceding example: ### Modify existing rule -``` +```json { "rules": [ { @@ -125,7 +121,7 @@ Looking at the JSON objects contained in the preceding example: ### Disable existing rule -``` +```json { "rules": [ { @@ -138,7 +134,7 @@ Looking at the JSON objects contained in the preceding example: ### Disable existing analyzer -``` +```json { "analyzers": [ { @@ -151,7 +147,7 @@ Looking at the JSON objects contained in the preceding example: ### Add new analyzer for some existing or new rule -``` +```json { "analyzers": [ { diff --git a/docs/azure/migration/appcat/faq.md b/docs/azure/migration/appcat/faq.md new file mode 100644 index 0000000000000..992aede27458c --- /dev/null +++ b/docs/azure/migration/appcat/faq.md @@ -0,0 +1,34 @@ +--- +title: Azure Migrate application and code assessment for .NET FAQ +description: Frequently asked questions for the Azure Migrate application and code assessment for .NET +ms.topic: conceptual +ms.date: 08/16/2024 +--- + +# Frequently asked questions + +This page answers some of the most common questions about the Azure Migrate application and code assessment tool. + +### What is Azure Migrate application and code assessment? + +Azure Migrate application and code assessment for .NET is a free tool by Microsoft that focuses on code and application analysis and recommendations for planning cloud deployments. The tool improves confidence in running business-critical solutions in the cloud through a developer-oriented assessment experience of source code. It also provides recommendations and examples to optimize code and configurations for the cloud. The recommendations align with industry-proven practices to build reliable, modern, and innovative applications on Azure. + +### What scenarios should I use Azure Migrate application and code assessment for? + +For scenarios that require deeper analysis of the application and migration guidance, several other dimensions such as source code, application configuration and dependency analysis become necessary. Azure Migrate application and code assessment for .NET assists with full source code level scanning and application scanning to produce a comprehensive report for your migration needs. + +### When should I use Azure Migrate application and code assessment? + +Use this tool if you manage application development projects and have access to source code written in .NET and you want to move to Azure. The tool can help you learn about how to replatform your applications to be cloud ready. Azure Migrate application and code assessment for.NET can help you generate deep analysis with dependencies clearly laid out with a dashboard. It tells you what the mandatory changes are that you need to apply for it to run on Azure. + +### Do I need to pay to use Azure Migrate application and code assessment? + +No, it's a free tool. + +### Do I need Visual Studio to use the Azure Migrate application and code assessment CLI tool? + +No, the only prerequisite for using the CLI tool is that you have the .NET SDK (6.0 or greater) installed. + +### Which target destinations does it cover today? + +The tool covers various Azure services including Azure App Service, Azure Spring Apps, Azure Container Apps, and Azure Kubernetes Service. diff --git a/docs/core/compatibility/9.0.md b/docs/core/compatibility/9.0.md index d11d792d88ec1..ad8d5ca896f7d 100644 --- a/docs/core/compatibility/9.0.md +++ b/docs/core/compatibility/9.0.md @@ -91,6 +91,7 @@ If you're migrating an app to .NET 9, the breaking changes listed here might aff | [Changes to nullability annotations](windows-forms/9.0/nullability-changes.md) | Source incompatible | Preview 1 | | [ComponentDesigner.Initialize throws ArgumentNullException](windows-forms/9.0/componentdesigner-initialize.md) | Behavioral change | Preview 1 | | [DataGridViewRowAccessibleObject.Name starting row index](windows-forms/9.0/datagridviewrowaccessibleobject-name-row.md) | Behavioral change | Preview 1 | +| [IMsoComponent support is opt-in](windows-forms/9.0/imsocomponent-support.md) | Behavioral change | Preview 2 | | [No exception if DataGridView is null](windows-forms/9.0/datagridviewheadercell-nre.md) | Behavioral change | Preview 1 | | [PictureBox raises HttpClient exceptions](windows-forms/9.0/httpclient-exceptions.md) | Behavioral change | Preview 6 | diff --git a/docs/core/compatibility/toc.yml b/docs/core/compatibility/toc.yml index e2580a56591d8..ca0f970ea5892 100644 --- a/docs/core/compatibility/toc.yml +++ b/docs/core/compatibility/toc.yml @@ -82,6 +82,8 @@ items: href: windows-forms/9.0/componentdesigner-initialize.md - name: DataGridViewRowAccessibleObject.Name starting row index href: windows-forms/9.0/datagridviewrowaccessibleobject-name-row.md + - name: IMsoComponent support is opt-in + href: windows-forms/9.0/imsocomponent-support.md - name: No exception if DataGridView is null href: windows-forms/9.0/datagridviewheadercell-nre.md - name: PictureBox raises HttpClient exceptions @@ -1904,6 +1906,8 @@ items: href: windows-forms/9.0/componentdesigner-initialize.md - name: DataGridViewRowAccessibleObject.Name starting row index href: windows-forms/9.0/datagridviewrowaccessibleobject-name-row.md + - name: IMsoComponent support is opt-in + href: windows-forms/9.0/imsocomponent-support.md - name: No exception if DataGridView is null href: windows-forms/9.0/datagridviewheadercell-nre.md - name: PictureBox raises HttpClient exceptions diff --git a/docs/core/compatibility/windows-forms/9.0/imsocomponent-support.md b/docs/core/compatibility/windows-forms/9.0/imsocomponent-support.md new file mode 100644 index 0000000000000..e46d5d9af0a17 --- /dev/null +++ b/docs/core/compatibility/windows-forms/9.0/imsocomponent-support.md @@ -0,0 +1,55 @@ +--- +title: "Breaking change: IMsoComponent support is opt-in" +description: Learn about the breaking change in .NET 9 for Windows Forms where IMsoComponent support is now opt-in. +ms.date: 09/05/2024 +--- +# IMsoComponent support is opt-in + +A change was made to avoid Windows Forms threads always registering with existing [IMsoComponentManager](/previous-versions/office/developer/office-2007/ff518963(v=office.12)) instances. However, you can opt in to register existing `IMsoComponentManager` instances to your Windows Forms threads. + +## Version introduced + +.NET 9 Preview 2 + +## Previous behavior + +Previously, Windows Forms threads always registered with existing `IMsoComponentManager` instances. + +## New behavior + +Starting in .NET 9, Windows Forms threads don't automatically integrate with process-registered `IMsoComponentManagers`. To get the previous behavior back, set the switch `Switch.System.Windows.Forms.EnableMsoComponentManager`. + +## Change category + +This change is a [*behavioral change*](../../categories.md#behavioral-change). + +## Reason for change + +This change was made for performance and efficiency. The previous behavior presented a lot of overhead as it used COM, and not all developers need this behavior. + +## Recommended action + +If you wish to revert to the previous behavior, you can opt in to `IMsoComponent` support using a switch in the *runtimeconfig.json* file or as a `RuntimeHostConfigurationOption` item in the project file. + +*runtimeconfig.json* file: + +```json +{ + "configProperties": { + "Switch.System.Windows.Forms.EnableMsoComponentManager": true + } +} +``` + +Project file: + +```xml + + + +``` + +## Affected APIs + +- [IMsoComponent interface](/previous-versions/office/developer/office-2007/ff518955(v=office.12)) +- [IMsoComponentManager interface](/previous-versions/office/developer/office-2007/ff518963(v=office.12)) diff --git a/docs/framework/unmanaged-api/debugging/clr-debugging-process-flags-enumeration.md b/docs/framework/unmanaged-api/debugging/clr-debugging-process-flags-enumeration.md index 9a552fa7d3e89..f2a1ad6686767 100644 --- a/docs/framework/unmanaged-api/debugging/clr-debugging-process-flags-enumeration.md +++ b/docs/framework/unmanaged-api/debugging/clr-debugging-process-flags-enumeration.md @@ -2,57 +2,57 @@ description: "Learn more about: CLR_DEBUGGING_PROCESS_FLAGS Enumeration" title: "CLR_DEBUGGING_PROCESS_FLAGS Enumeration" ms.date: "03/30/2017" -api_name: +api_name: - "CLR_DEBUGGING_PROCESS_FLAGS" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "CLR_DEBUGGING_PROCESS_FLAG" -helpviewer_keywords: +helpviewer_keywords: - "CLR_DEBUGGING_PROCESS_FLAGS enumeration [.NET Framework debugging]" ms.assetid: 85b85fde-1f87-490b-ba8d-d604670959c3 -topic_type: +topic_type: - "apiref" --- # CLR_DEBUGGING_PROCESS_FLAGS Enumeration -Provides values that are used by the [ICLRDebugging::OpenVirtualProcess](iclrdebugging-openvirtualprocess-method.md) method. - -## Syntax - -```cpp -typedef enum CLR_DEBUGGING_PROCESS_FLAGS -{ - CLR_DEBUGGING_MANAGED_EVENT_PENDING = 1, - CLR_DEBUGGING_MANAGED_EVENT_DEBUGGER_LAUNCH = 2 -} CLR_DEBUGGING_PROCESS_FLAGS; -``` - -## Members - -|Member|Description| -|------------|-----------------| -|`CLR_DEBUGGING_MANAGED_EVENT_PENDING`|This runtime has a non-catch-up managed debugger event to send. See the Remarks section for the distinction between catch-up and non-catch-up events.| -|`CLR_DEBUGGING_MANAGED_EVENT_DEBUGGER_LAUNCH`|The managed event that is pending is a request.| - -## Remarks - - Catch-up events include process, application domain, assembly, module, and thread creation notifications that bring the debugger up to the current state after it has attached to a process. Non-catch-up events, which are indicated by the `CLR_DEBUGGING_MANAGED_EVENT_PENDING` flag, include all other debugger events, such as exceptions and managed debugging assistant (MDA) notifications. - - The `CLR_DEBUGGING_MANAGED_EVENT_DEBUGGER_LAUNCH` flag enables the runtime to differentiate between a terminating exception and a request to attach a managed debugger that can be canceled. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** Metahost.idl, Metahost.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +Provides values that are used by the [ICLRDebugging::OpenVirtualProcess](iclrdebugging-openvirtualprocess-method.md) method. + +## Syntax + +```cpp +typedef enum CLR_DEBUGGING_PROCESS_FLAGS +{ + CLR_DEBUGGING_MANAGED_EVENT_PENDING = 1, + CLR_DEBUGGING_MANAGED_EVENT_DEBUGGER_LAUNCH = 2 +} CLR_DEBUGGING_PROCESS_FLAGS; +``` + +## Members + +|Member|Description| +|------------|-----------------| +|`CLR_DEBUGGING_MANAGED_EVENT_PENDING`|This runtime has a non-catch-up managed debugger event to send. See the Remarks section for the distinction between catch-up and non-catch-up events.| +|`CLR_DEBUGGING_MANAGED_EVENT_DEBUGGER_LAUNCH`|The managed event that is pending is a request.| + +## Remarks + + Catch-up events include process, application domain, assembly, module, and thread creation notifications that bring the debugger up to the current state after it has attached to a process. Non-catch-up events, which are indicated by the `CLR_DEBUGGING_MANAGED_EVENT_PENDING` flag, include all other debugger events, such as exceptions and managed debugging assistant (MDA) notifications. + + The `CLR_DEBUGGING_MANAGED_EVENT_DEBUGGER_LAUNCH` flag enables the runtime to differentiate between a terminating exception and a request to attach a managed debugger that can be canceled. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** Metahost.idl, Metahost.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [Debugging Enumerations](debugging-enumerations.md) diff --git a/docs/framework/unmanaged-api/debugging/clr-debugging-version-structure.md b/docs/framework/unmanaged-api/debugging/clr-debugging-version-structure.md index 5ea3aa60237dc..016a901982fb0 100644 --- a/docs/framework/unmanaged-api/debugging/clr-debugging-version-structure.md +++ b/docs/framework/unmanaged-api/debugging/clr-debugging-version-structure.md @@ -2,61 +2,61 @@ description: "Learn more about: CLR_DEBUGGING_VERSION Structure" title: "CLR_DEBUGGING_VERSION Structure" ms.date: "03/30/2017" -api_name: +api_name: - "CLR_DEBUGGING_VERSION" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "CLR_DEBUGGING_VERSION" -helpviewer_keywords: +helpviewer_keywords: - "CLR_DEBUGGING_VERSION structure [.NET Framework debugging]" ms.assetid: 4d821186-3ddf-405a-ac44-d79438a9f7f3 -topic_type: +topic_type: - "apiref" --- # CLR_DEBUGGING_VERSION Structure -Defines the product version of the common language runtime (CLR) for debugging purposes. - -## Syntax - -```cpp -typedef struct _CLR_DEBUGGING_VERSION -{ +Defines the product version of the common language runtime (CLR) for debugging purposes. + +## Syntax + +```cpp +typedef struct _CLR_DEBUGGING_VERSION +{ WORD wStructVersion; WORD wMajor; WORD wMinor; WORD wBuild; WORD wRevision; } CLR_DEBUGGING_VERSION; -``` - -## Members - -|Member|Description| -|------------|-----------------| -|`wStructVersion`|The structure version number| -|`wMajor`|The major version number.| -|`wMinor`|The minor version number.| -|`wBuild`|The build number.| -|`wRevision`|The revision number.| - -## Remarks - - The `CLR_DEBUGGING_VERSION` structure is the same as the COR_VERSION structure, however, the `CLR_DEBUGGING_VERSION` structure provides an additional structure version field (`wStructVersion`). Currently, this field must be set to zero. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +``` + +## Members + +|Member|Description| +|------------|-----------------| +|`wStructVersion`|The structure version number| +|`wMajor`|The major version number.| +|`wMinor`|The minor version number.| +|`wBuild`|The build number.| +|`wRevision`|The revision number.| + +## Remarks + + The `CLR_DEBUGGING_VERSION` structure is the same as the COR_VERSION structure, however, the `CLR_DEBUGGING_VERSION` structure provides an additional structure version field (`wStructVersion`). Currently, this field must be set to zero. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [Debugging Structures](debugging-structures.md) diff --git a/docs/framework/unmanaged-api/debugging/clrdata-methdef-extent-structure.md b/docs/framework/unmanaged-api/debugging/clrdata-methdef-extent-structure.md new file mode 100644 index 0000000000000..c9e977d5760ad --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/clrdata-methdef-extent-structure.md @@ -0,0 +1,65 @@ +--- +description: "Learn more about: CLRDATA_METHDEF_EXTENT Structure" +title: "CLRDATA_METHDEF_EXTENT Structure" +ms.date: "07/02/2024" +api_name: + - "CLRDATA_METHDEF_EXTENT" +api_location: + - "mscordacwks.dll" +api_type: + - "COM" +f1_keywords: + - "CLRDATA_METHDEF_EXTENT" +helpviewer_keywords: + - "CLRDATA_METHDEF_EXTENT structure [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# CLRDATA_METHDEF_EXTENT Structure + +Describes an IL code region associated with a method. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +struct CLRDATA_METHDEF_EXTENT +{ + CLRDATA_ADDRESS startAddress; + CLRDATA_ADDRESS endAddress; + ULONG32 enCVersion + CLRDataMethodDefinitionExtentType type; +}; +``` + +## Members + +|Member|Description| +|------------|-----------------| +|`startAddress`|The start address of an IL code region associated with a method.| +|`endAddress`|The end address of an IL code region associated with a method.| +|`enCVersion`|The EnC version of the code in this extent.| +|`type`|The type of extent associated with the method. The CLRDataMethodDefinitionExtentType enumeration presently has one value: CLRDATA_METHDEF_IL (0)| + +## Remarks + +This structure lives inside the runtime and is not exposed through any headers or library files. To use it, define the structure as specified above, where `CLRDATA_ADDRESS` is a 64-bit unsigned integer. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging Structures](debugging-structures.md) +- [Debugging](index.md) +- [IXCLRDataMethodDefinition Interface](ixclrdatamethoddefinition-interface.md) +- [IXCLRDataMethodDefinition::StartEnumExtents Method](ixclrdatamethoddefinition-startenumextents.md) +- [IXCLRDataMethdDefinition::EnumExtent Method](ixclrdatamethoddefinition-enumextent-method.md) +- [IXCLRDataMethodDefinition::EndEnumExtents Method](ixclrdatamethoddefinition-endenumextents-method.md) diff --git a/docs/framework/unmanaged-api/debugging/clrdata-module-extent-structure.md b/docs/framework/unmanaged-api/debugging/clrdata-module-extent-structure.md new file mode 100644 index 0000000000000..41cf5a4d96457 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/clrdata-module-extent-structure.md @@ -0,0 +1,61 @@ +--- +description: "Learn more about: CLRDATA_MODULE_EXTENT Structure" +title: "CLRDATA_MODULE_EXTENT Structure" +ms.date: "07/01/2024" +api_name: + - "CLRDATA_MODULE_EXTENT" +api_location: + - "mscordacwks.dll" +api_type: + - "COM" +f1_keywords: + - "CLRDATA_MODULE_EXTENT" +helpviewer_keywords: + - "CLRDATA_MODULE_EXTENT structure [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# CLRDATA_MODULE_EXTENT Structure + +Describes a memory region associated with a module. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +struct CLRDATA_MODULE_EXTENT +{ + CLRDATA_ADDRESS base; + ULONG32 length; + CLRDataModuleExtentType type; +}; +``` + +## Members + +|Member|Description| +|------------|-----------------| +|`base`|The base address of the memory range associated with the module.| +|`length`|The length of the memory range associated with the module.| +|`type`|The type of memory range associated with the module.| + +## Remarks + +This structure lives inside the runtime and is not exposed through any headers or library files. To use it, define the structure as specified above, where `CLRDATA_ADDRESS` is a 64-bit unsigned integer. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging Structures](debugging-structures.md) +- [Debugging](index.md) +- [IXCLRDataModule Interface](ixclrdatamodule-interface.md) +- [CLRDataModuleExtentType Enumeration](clrdatamoduleextenttype-enumeration.md) diff --git a/docs/framework/unmanaged-api/debugging/clrdataaddresstype-enumeration.md b/docs/framework/unmanaged-api/debugging/clrdataaddresstype-enumeration.md new file mode 100644 index 0000000000000..2528977444d0f --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/clrdataaddresstype-enumeration.md @@ -0,0 +1,66 @@ +--- +description: "Learn more about: CLRDataAddressType Enumeration" +title: "CLRDataAddressType Enumeration" +ms.date: "07/01/2024" +api_name: + - "CLRDataAddressType" +api_location: + - "mscordacwks.dll" +api_type: + - "COM" +f1_keywords: + - "CLRDataAddressType" +helpviewer_keywords: + - "CLRDataAddressType enumeration [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# CLRDataAddressType Enumeration + +Indicates the type of data contained at a given address + +## Syntax + +```cpp +typedef enum CLRDataModuleExtentType { + CLRDATA_ADDRESS_UNRECOGNIZED, + CLRDATA_ADDRESS_MANAGED_METHOD, + CLRDATA_ADDRESS_RUNTIME_MANAGED_CODE, + CLRDATA_ADDRESS_RUNTIME_UNMANAGED_CODE, + CLRDATA_ADDRESS_GC_DATA, + CLRDATA_ADDRESS_RUNTIME_MANAGED_STUB, + CLRDATA_ADDRESS_RUNTIME_UNMANAGED_STUB +} CLRDataModuleExtentType; +``` + +## Members + +|Member|Description| +|------------|-----------------| +|`CLRDATA_ADDRESS_UNRECOGNIZED`|The data at the address is not recognized.| +|`CLRDATA_ADDRESS_MANAGED_METHOD`|The data at the address is a managed method.| +|`CLRDATA_ADDRESS_RUNTIME_MANAGED_CODE`|The data at the address is managed code associated with the runtime.| +|`CLRDATA_ADDRESS_RUNTIME_UNMANAGED_CODE`|The data at the address is unmanaged code associated with the runtime.| +|`CLRDATA_ADDRESS_GC_DATA`|The data at the address is data for the GC.| +|`CLRDATA_ADDRESS_RUNTIME_MANAGED_STUB`|The data at the address is a managed stub.| +|`CLRDATA_ADDRESS_RUNTIME_UNMANAGED_STUB`|The data at the address is an unmanaged stub.| + +## Remarks + +This enumeration lives inside the runtime and is not exposed through any headers or library files. To use it, define the enumeration as specified above. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging Enumerations](debugging-enumerations.md) +- [Debugging](index.md) +- [IXCLRDataProcess Interface](ixclrdataprocess-interface.md) +- [IXCLRDataProcess::GetAddressType Method](ixclrdataprocess-getaddresstype-method.md) diff --git a/docs/framework/unmanaged-api/debugging/clrdatabynameflag-enumeration.md b/docs/framework/unmanaged-api/debugging/clrdatabynameflag-enumeration.md new file mode 100644 index 0000000000000..a69b699915d24 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/clrdatabynameflag-enumeration.md @@ -0,0 +1,54 @@ +--- +description: "Learn more about: CLRDataByNameFlag Enumeration" +title: "CLRDataByNameFlag Enumeration" +ms.date: "07/01/2024" +api_name: + - "CLRDataByNameFlag" +api_location: + - "mscordacwks.dll" +api_type: + - "COM" +f1_keywords: + - "CLRDataByNameFlag" +helpviewer_keywords: + - "CLRDataByNameFlag enumeration [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# CLRDataByNameFlag Enumeration + +Indicates how names should match in a search. + +## Syntax + +```cpp +typedef enum CLRDataByNameFlag { + CLRDATA_BYNAME_CASE_SENSITIVE = 0x00000000, + CLRDATA_BYNAME_CASE_INSENSITIVE = 0x00000001 +} CLRDataByNameFlag; +``` + +## Members + +|Member|Value|Description| +|------------|-----------------|-----------------| +|`CLRDATA_BYNAME_CASE_SENSITIVE`|0x0|Names should match in a case sensitive manner.| +|`CLRDATA_BYNAME_CASE_INSENSITIVE`|0x1|Names should match in a case insensitive manner.| + +## Remarks + +This enumeration lives inside the runtime and is not exposed through any headers or library files. To use it, define the enumeration as specified above. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging Enumerations](debugging-enumerations.md) +- [Debugging](index.md) diff --git a/docs/framework/unmanaged-api/debugging/clrdatacreateinstance-function.md b/docs/framework/unmanaged-api/debugging/clrdatacreateinstance-function.md index e1713d3133fec..78ef906fa739d 100644 --- a/docs/framework/unmanaged-api/debugging/clrdatacreateinstance-function.md +++ b/docs/framework/unmanaged-api/debugging/clrdatacreateinstance-function.md @@ -7,9 +7,9 @@ api_name: api_location: - "mscordbi.dll" - "mscordacwks.dll" -api_type: +api_type: - "DLLExport" -f1_keywords: +f1_keywords: - "CLRDataCreateInstance" helpviewer_keywords: - "CLRDataCreateInstance function [.NET Framework debugging]" @@ -27,37 +27,37 @@ Creates an interface object for the specified target item. HRESULT CLRDataCreateInstance ( [in] REFIID iid, [in] ICLRDataTarget *target, - [out] void **iface -); -``` - -## Parameters - - `iid` - [in] The identifier of the interface to be instantiated. - - `target` - [in] A pointer to a user-implemented [ICLRDataTarget](iclrdatatarget-interface.md) object that represents the target item for which to create the interface object. - - `iface` - [out] A pointer to the address of the returned interface object. - -## Remarks - - The `ICLRDataTarget` object is implemented by the writer of the debugging application. The implementation depends on the type of target item being represented. The target item may be a process, memory dump, remote machine, and so on. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** ClrData.idl - - **Library:** CorGuids.lib + [out] void **iface +); +``` + +## Parameters + + `iid` + [in] The identifier of the interface to be instantiated. + + `target` + [in] A pointer to a user-implemented [ICLRDataTarget](iclrdatatarget-interface.md) object that represents the target item for which to create the interface object. + + `iface` + [out] A pointer to the address of the returned interface object. + +## Remarks + + The `ICLRDataTarget` object is implemented by the writer of the debugging application. The implementation depends on the type of target item being represented. The target item may be a process, memory dump, remote machine, and so on. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** ClrData.idl + + **Library:** CorGuids.lib **Assembly**: mscordacwks.dll, mscordbi.dll - + **.NET Framework Versions:** Available since .NET Framework 2.0 - + ## See also - [Debugging Global Static Functions](debugging-global-static-functions.md) diff --git a/docs/framework/unmanaged-api/debugging/clrdatadetailedframetype-enumeration.md b/docs/framework/unmanaged-api/debugging/clrdatadetailedframetype-enumeration.md new file mode 100644 index 0000000000000..7295d342767c7 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/clrdatadetailedframetype-enumeration.md @@ -0,0 +1,84 @@ +--- +description: "Learn more about: CLRDataDetailedFrameType Enumeration" +title: "CLRDataDetailedFrameType Enumeration" +ms.date: "07/03/2024" +api_name: + - "CLRDataDetailedFrameType" +api_location: + - "mscordacwks.dll" +api_type: + - "COM" +f1_keywords: + - "CLRDataDetailedFrameType" +helpviewer_keywords: + - "CLRDataDetailedFrameType enumeration [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# CLRDataDetailedFrameType Enumeration + +Describes a type of frame in the call stack in detail. + +## Syntax + +```cpp +typedef enum CLRDataDetailedFrameType { + CLRDATA_DETFRAME_UNRECOGNIZED, + CLRDATA_DETFRAME_UNKNOWN_STUB, + CLRDATA_DETFRAME_CLASS_INIT, + CLRDATA_DETFRAME_EXCEPTION_FILTER, + CLRDATA_DETFRAME_SECURITY, + CLRDATA_DETFRAME_CONTEXT_POLICY, + CLRDATA_DETFRAME_INTERCEPTION, + CLRDATA_DETFRAME_PROCESS_START, + CLRDATA_DETFRAME_THREAD_START, + CLRDATA_DETFRAME_TRANSITION_TO_MANAGED, + CLRDATA_DETFRAME_TRANSITION_TO_UNMANAGED, + CLRDATA_DETFRAME_COM_INTEROP_STUB, + CLRDATA_DETFRAME_DEBUGGER_EVAL, + CLRDATA_DETFRAME_CONTEXT_SWITCH, + CLRDATA_DETFRAME_FUNC_EVAL, + CLRDATA_DETFRAME_FINALLY +} CLRDataDetailedFrameType; +``` + +## Members + +|Member|Value|Description| +|------------|-----------------|-----------------| +|`CLRDATA_DETFRAME_UNRECOGNIZED`|0|The frame type is unrecognized.| +|`CLRDATA_DETFRAME_UNKNOWN_STUB`|1|The frame is an unknown stub.| +|`CLRDATA_DETFRAME_CLASS_INIT`|2|The frame is a class initializer.| +|`CLRDATA_DETFRAME_EXCEPTION_FILTER`|3|The frame is an exception filter.| +|`CLRDATA_DETFRAME_SECURITY`|4|The frame has to do with security.| +|`CLRDATA_DETFRAME_CONTEXT_POLICY`|5|The frame has to do with context policy.| +|`CLRDATA_DETFRAME_INTERCEPTION`|6|The frame has to do with interception.| +|`CLRDATA_DETFRAME_PROCESS_START`|7|The frame corresponds to a process start.| +|`CLRDATA_DETFRAME_THREAD_START`|8|The frame corresponds to a thread start.| +|`CLRDATA_DETFRAME_TRANSITION_TO_MANAGED`|9|The frame is a transition frame into managed code.| +|`CLRDATA_DETFRAME_TRANSITION_TO_UNMANAGED`|10|The frame is a transition frame into unmanaged code.| +|`CLRDATA_DETFRAME_COM_INTEROP_STUB`|11|The frame is a COM interop stub.| +|`CLRDATA_DETFRAME_DEBUGGER_EVAL`|12|The frame has to do with a debugger evaluation.| +|`CLRDATA_DETFRAME_CONTEXT_SWITCH`|13|The frame has to do with a context switch.| +|`CLRDATA_DETFRAME_FUNC_EVAL`|14|The frame is a function evaluation.| +|`CLRDATA_DETFRAME_FINALLY`|15|The frame corresponds to a finally block.| + +## Remarks + +This enumeration lives inside the runtime and is not exposed through any headers or library files. To use it, define the enumeration as specified above. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging Enumerations](debugging-enumerations.md) +- [Debugging](index.md) +- [IXCLRDataStackWalk Interface](ixclrdatastackwalk-interface.md) +- [IXCLRDataStackWalk::GetFrameType Method](ixclrdatastackwalk-getframetype-method.md) diff --git a/docs/framework/unmanaged-api/debugging/clrdataexceptionsameflag-enumeration.md b/docs/framework/unmanaged-api/debugging/clrdataexceptionsameflag-enumeration.md new file mode 100644 index 0000000000000..72d46e37802d7 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/clrdataexceptionsameflag-enumeration.md @@ -0,0 +1,54 @@ +--- +description: "Learn more about: CLRDataExceptionSameFlag Enumeration" +title: "CLRDataExceptionSameFlag Enumeration" +ms.date: "07/03/2024" +api_name: + - "CLRDataExceptionSameFlag" +api_location: + - "mscordacwks.dll" +api_type: + - "COM" +f1_keywords: + - "CLRDataExceptionSameFlag" +helpviewer_keywords: + - "CLRDataExceptionSameFlag enumeration [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# CLRDataExceptionSameFlag Enumeration + +Indicates how exception states should match against system records. + +## Syntax + +```cpp +typedef enum CLRDataExceptionSameFlag { + CLRDATA_EXSAME_SECOND_CHANCE = 0x00000000, + CLRDATA_EXSAME_FIRST_CHANCE = 0x00000001 +} CLRDataExceptionSameFlag; +``` + +## Members + +|Member|Value|Description| +|------------|-----------------|-----------------| +|`CLRDATA_EXSAME_SECOND_CHANGE`|0x0|The exception should match on second chance.| +|`CLRDATA_EXSAME_FIRST_CHANCE`|0x1|The exception should match on first chance..| + +## Remarks + +This enumeration lives inside the runtime and is not exposed through any headers or library files. To use it, define the enumeration as specified above. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging Enumerations](debugging-enumerations.md) +- [Debugging](index.md) diff --git a/docs/framework/unmanaged-api/debugging/clrdatafieldflag-enumeration.md b/docs/framework/unmanaged-api/debugging/clrdatafieldflag-enumeration.md new file mode 100644 index 0000000000000..7580bee4a7e2d --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/clrdatafieldflag-enumeration.md @@ -0,0 +1,86 @@ +--- +description: "Learn more about: CLRDataFieldFlag Enumeration" +title: "CLRDataFieldFlag Enumeration" +ms.date: "07/02/2024" +api_name: + - "CLRDataFieldFlag" +api_location: + - "mscordacwks.dll" +api_type: + - "COM" +f1_keywords: + - "CLRDataFieldFlag" +helpviewer_keywords: + - "CLRDataFieldFlag enumeration [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# CLRDataFieldFlag Enumeration + +Indicates various attributes of a field. + +## Syntax + +```cpp +typedef enum CLRDataFieldFlag { + CLRDATA_FIELD_DEFAULT = 0x00000000, + CLRDATA_FIELD_IS_PRIMITIVE = 0x00000001, + CLRDATA_FIELD_IS_VALUE_TYPE = 0x00000002, + CLRDATA_FIELD_IS_STRING = 0x00000004, + CLRDATA_FIELD_IS_ARRAY = 0x00000008, + CLRDATA_FIELD_IS_REFERENCE = 0x00000010, + CLRDATA_FIELD_IS_POINTER = 0x00000020, + CLRDATA_FIELD_IS_ENUM = 0x00000040, + CLRDATA_FIELD_ALL_KINDS = 0x0000007F, + + CLRDATA_FIELD_IS_INHERITED = 0x00000080, + CLRDATA_FIELD_IS_LITERAL = 0x00000100, + + CLRDATA_FIELD_FROM_INSTANCE = 0x00000200, + CLRDATA_FIELD_FROM_TASK_LOCAL = 0x00000400, + CLRDATA_FIELD_FROM_STATIC = 0x00000800, + + CLRDATA_FIELD_ALL_LOCATIONS = 0x00000e00, + + CLRDATA_FIELD_ALL_FIELDS = 0x00000eff +} CLRDataFieldFlag; +``` + +## Members + +|Member|Value|Description| +|------------|-----------------|-----------------| +|`CLRDATA_FIELD_DEFAULT`|0x0|Default flags.| +|`CLRDATA_FIELD_IS_PRIMITIVE`|0x1|The field is a primitive value.| +|`CLRDATA_FIELD_IS_VALUE_TYPE`|0x2|The field is a value type.| +|`CLRDATA_FIELD_IS_STRING`|0x4|The field is a string.| +|`CLRDATA_FIELD_IS_ARRAY`|0x8|The field is an array.| +|`CLRDATA_FIELD_IS_REFERENCE`|0x10|The field is a reference.| +|`CLRDATA_FIELD_IS_POINTER`|0x20|The field is a pointer.| +|`CLRDATA_FIELD_IS_ENUM`|0x40|The field is an enum.| +|`CLRDATA_FIELD_ALL_KINDS`|0x7F|Bitwise or of all field kinds. Such can be used in various enumeration methods.| +|`CLRDATA_FIELD_IS_INHERITED`|0x80|The field is inherited.| +|`CLRDATA_FIELD_IS_LITERAL`|0x100|The field is literal.| +|`CLRDATA_FIELD_FROM_INSTANCE`|0x200|The field is from an instance declaration.| +|`CLRDATA_FIELD_FROM_TASK_LOCAL`|0x400|The field is from a task local declaration.| +|`CLRDATA_FIELD_FROM_STATIC`|0x800|The field is from a static declaration.| +|`CLRDATA_FIELD_ALL_LOCATIONS`|0xe00|Bitwise or of all field locations. Such can be used in various enumeration methods.| +|`CLRDATA_FIELD_ALL_FIELDS`|0xeff|Bitwise or of all field flags. Such can be used in various enumeration methods.| + +## Remarks + +This enumeration lives inside the runtime and is not exposed through any headers or library files. To use it, define the enumeration as specified above. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging Enumerations](debugging-enumerations.md) +- [Debugging](index.md) diff --git a/docs/framework/unmanaged-api/debugging/clrdatafollowstubinflag-enumeration.md b/docs/framework/unmanaged-api/debugging/clrdatafollowstubinflag-enumeration.md new file mode 100644 index 0000000000000..e3647ab4750ad --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/clrdatafollowstubinflag-enumeration.md @@ -0,0 +1,55 @@ +--- +description: "Learn more about: CLRDataFollowStubInFlag Enumeration" +title: "CLRDataFollowStubInFlag Enumeration" +ms.date: "07/02/2024" +api_name: + - "CLRDataFollowStubInFlag" +api_location: + - "mscordacwks.dll" +api_type: + - "COM" +f1_keywords: + - "CLRDataFollowStubInFlag" +helpviewer_keywords: + - "CLRDataFollowStubInFlag enumeration [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# CLRDataFollowStubInFlag Enumeration + +A set of flags passed to `IXCLRDataProcess::FollowStub` and `IXCLRDataProcess::FollowStub2` that define how to follow the stub. + +## Syntax + +```cpp +typedef enum CLRDataFollowStubInFlag { + CLRDATA_FOLLOW_STUB_DEFAULT = 0x00000000 +} CLRDataFollowStubInFlag; +``` + +## Members + +|Member|Value|Description| +|------------|-----------------|-----------------| +|`CLRDATA_FOLLOW_STUB_DEFAULT`|0x00000000|Default follow flag. `inFlags` for the various FollowStub methods must be set to this value.| + +## Remarks + +This enumeration lives inside the runtime and is not exposed through any headers or library files. To use it, define the enumeration as specified above. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging Enumerations](debugging-enumerations.md) +- [Debugging](index.md) +- [IXCLRDataProcess Interface](ixclrdataprocess-interface.md) +- [IXCLRDataProcess::FollowStub Method](ixclrdataprocess-followstub-method.md) +- [IXCLRDataProcess::FollowStub2 Method](ixclrdataprocess-followstub2-method.md) diff --git a/docs/framework/unmanaged-api/debugging/clrdatafollowstuboutflag-enumeration.md b/docs/framework/unmanaged-api/debugging/clrdatafollowstuboutflag-enumeration.md new file mode 100644 index 0000000000000..3549d62cc5579 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/clrdatafollowstuboutflag-enumeration.md @@ -0,0 +1,57 @@ +--- +description: "Learn more about: CLRDataFollowStubOutFlag Enumeration" +title: "CLRDataFollowStubOutFlag Enumeration" +ms.date: "07/02/2024" +api_name: + - "CLRDataFollowStubOutFlag" +api_location: + - "mscordacwks.dll" +api_type: + - "COM" +f1_keywords: + - "CLRDataFollowStubOutFlag" +helpviewer_keywords: + - "CLRDataFollowStubOutFlag enumeration [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# CLRDataFollowStubOutFlag Enumeration + +A set of flags returned from `IXCLRDataProcess::FollowStub` and `IXCLRDataProcess::FollowStub2` that indicate the result of following a stub. + +## Syntax + +```cpp +typedef enum CLRDataFollowStubOutFlag { + CLRDATA_FOLLOW_STUB_INTERMEDIATE = 0x00000000, + CLRDATA_FOLLOW_STUB_EXIT = 0x00000001 +} CLRDataFollowStubOutFlag; +``` + +## Members + +|Member|Value|Description| +|------------|-----------------|-----------------| +|`CLRDATA_FOLLOW_STUB_INTERMEDIATE`|0x00000000|The result of following is an intermedidate stub. Callers can call `FollowStub` or `FollowStub2` again to continue following the chain.| +|`CLRDATA_FOLLOW_STUB_EXIT`|0x00000001|The result of following is the exit of the stub. The returned address is the execution address at the end of the stub chain.| + +## Remarks + +This enumeration lives inside the runtime and is not exposed through any headers or library files. To use it, define the enumeration as specified above. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging Enumerations](debugging-enumerations.md) +- [Debugging](index.md) +- [IXCLRDataProcess Interface](ixclrdataprocess-interface.md) +- [IXCLRDataProcess::FollowStub Method](ixclrdataprocess-followstub-method.md) +- [IXCLRDataProcess::FollowStub2 Method](ixclrdataprocess-followstub2-method.md) diff --git a/docs/framework/unmanaged-api/debugging/clrdatamethodcodenotification-enumeration.md b/docs/framework/unmanaged-api/debugging/clrdatamethodcodenotification-enumeration.md new file mode 100644 index 0000000000000..4a4f6359c8a76 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/clrdatamethodcodenotification-enumeration.md @@ -0,0 +1,59 @@ +--- +description: "Learn more about: CLRDataMethodCodeNotification Enumeration" +title: "CLRDataMethodCodeNotification Enumeration" +ms.date: "07/01/2024" +api_name: + - "CLRDataMethodCodeNotification" +api_location: + - "mscordacwks.dll" +api_type: + - "COM" +f1_keywords: + - "CLRDataMethodCodeNotification" +helpviewer_keywords: + - "CLRDataMethodCodeNotification enumeration [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# CLRDataMethodCodeNotification Enumeration + +Indicates the type of notifications pertaining to method instance code which should be delivered. + +## Syntax + +```cpp +typedef enum CLRDataMethodCodeNotification { + CLRDATA_METHNOTIFY_NONE = 0x00000000, + CLRDATA_METHNOTIFY_GENERATED = 0x00000001, + CLRDATA_METHNOTIFY_DISCARDED = 0x00000002 +} CLRDataMethodCodeNotification; +``` + +## Members + +|Member|Value|Description| +|------------|-----------------|-----------------| +|`CLRDATA_METHNOTIFY_NONE`|0|No method notification.| +|`CLRDATA_METHNOTIFY_GENERATED`|1|Notification should occur on code generation for the method.| +|`CLRDATA_METHNOTIFY_DISCARDED`|2|Notification should occur on discarding code for the method.| + +## Remarks + +This enumeration lives inside the runtime and is not exposed through any headers or library files. To use it, define the enumeration as specified above. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging Enumerations](debugging-enumerations.md) +- [Debugging](index.md) +- [IXCLRDataProcess Interface](ixclrdataprocess-interface.md) +- [IXCLRDataProcess::SetCodeNotifications Method](ixclrdataprocess-setcodenotifications-method.md) +- [IXCLRDataProcess::SetAllCodeNotifications Method](ixclrdataprocess-setallcodenotifications-method.md) diff --git a/docs/framework/unmanaged-api/debugging/clrdatamoduleextenttype-enumeration.md b/docs/framework/unmanaged-api/debugging/clrdatamoduleextenttype-enumeration.md new file mode 100644 index 0000000000000..af6ddfd34b0c8 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/clrdatamoduleextenttype-enumeration.md @@ -0,0 +1,61 @@ +--- +description: "Learn more about: CLRDataModuleExtentType Enumeration" +title: "CLRDataModuleExtentType Enumeration" +ms.date: "07/01/2024" +api_name: + - "CLRDataModuleExtentType" +api_location: + - "mscordacwks.dll" +api_type: + - "COM" +f1_keywords: + - "CLRDataModuleExtentType" +helpviewer_keywords: + - "CLRDataModuleExtentType enumeration [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# CLRDataModuleExtentType Enumeration + +Indicates the type of memory region associated with a module. + +## Syntax + +```cpp +typedef enum CLRDataModuleExtentType { + CLRDATA_MODULE_PE_FILE, + CLRDATA_MODULE_PREJIT_FILE, + CLRDATA_MODULE_MEMORY_STREAM, + CLRDATA_MODULE_OTHER +} CLRDataModuleExtentType; +``` + +## Members + +|Member|Description| +|------------|-----------------| +|`CLRDATA_MODULE_PE_FILE`|The memory region is associated with a PE file.| +|`CLRDATA_MODULE_PREJIT_FILE`|The memory region is associated with a PREJIT file.| +|`CLRDATA_MODULE_MEMORY_STREAM`|The memory region is associated with a memory stream.| +|`CLRDATA_MODULE_OTHER`|The memory region is something other than what is described by one of the other enumeration values.| + +## Remarks + +This enumeration lives inside the runtime and is not exposed through any headers or library files. To use it, define the enumeration as specified above. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging Enumerations](debugging-enumerations.md) +- [Debugging](index.md) +- [IXCLRDataModule Interface](ixclrdatamodule-interface.md) +- [IXCLRDataModule::EnumExtent Method](ixclrdatamodule-enumextent-method.md) +- [CLRDATA_MODULE_EXTENT Structure](clrdata-module-extent-structure.md) diff --git a/docs/framework/unmanaged-api/debugging/clrdataothernotifyflag-enumeration.md b/docs/framework/unmanaged-api/debugging/clrdataothernotifyflag-enumeration.md new file mode 100644 index 0000000000000..69c53fe192a6d --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/clrdataothernotifyflag-enumeration.md @@ -0,0 +1,60 @@ +--- +description: "Learn more about: CLRDataOtherNotifyFlag Enumeration" +title: "CLRDataOtherNotifyFlag Enumeration" +ms.date: "07/01/2024" +api_name: + - "CLRDataOtherNotifyFlag" +api_location: + - "mscordacwks.dll" +api_type: + - "COM" +f1_keywords: + - "CLRDataOtherNotifyFlag" +helpviewer_keywords: + - "CLRDataOtherNotifyFlag enumeration [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# CLRDataOtherNotifyFlag Enumeration + +Indicates the type of notifications which should be delivered. + +## Syntax + +```cpp +typedef enum CLRDataOtherNotifyFlag { + CLRDATA_NOTIFY_ON_MODULE_LOAD = 0x00000001, + CLRDATA_NOTIFY_ON_MODULE_UNLOAD = 0x00000002, + CLRDATA_NOTIFY_ON_EXCEPTION = 0x00000004, + CLRDATA_NOTIFY_ON_EXCEPTION_CATCH_ENTER = 0x00000008 +} CLRDataOtherNotifyFlag; +``` + +## Members + +|Member|Value|Description| +|------------|-----------------|-----------------| +|`CLRDATA_NOTIFY_ON_MODULE_LOAD`|0x1|Notification should occur when a module is loaded.| +|`CLRDATA_NOTIFY_ON_MODULE_UNLOAD`|0x2|Notification should occur when a module is unloaded.| +|`CLRDATA_NOTIFY_ON_EXCEPTION`|0x4|Notification should occur when a managed exception is raised.| +|`CLRDATA_NOTIFY_ON_EXCEPTION_CATCH_ENTER`|0x8|Notification should occur owhen a managed catch block is entered.| + +## Remarks + +This enumeration lives inside the runtime and is not exposed through any headers or library files. To use it, define the enumeration as specified above. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging Enumerations](debugging-enumerations.md) +- [Debugging](index.md) +- [IXCLRDataProcess Interface](ixclrdataprocess-interface.md) +- [IXCLRDataProcess::SetOtherNotificationFlags Method](ixclrdataprocess-setothernotificationflags-method.md) diff --git a/docs/framework/unmanaged-api/debugging/clrdatasimpleframetype-enumeration.md b/docs/framework/unmanaged-api/debugging/clrdatasimpleframetype-enumeration.md new file mode 100644 index 0000000000000..74eb1ecb97eb0 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/clrdatasimpleframetype-enumeration.md @@ -0,0 +1,60 @@ +--- +description: "Learn more about: CLRDataSimpleFrameType Enumeration" +title: "CLRDataSimpleFrameType Enumeration" +ms.date: "07/03/2024" +api_name: + - "CLRDataSimpleFrameType" +api_location: + - "mscordacwks.dll" +api_type: + - "COM" +f1_keywords: + - "CLRDataSimpleFrameType" +helpviewer_keywords: + - "CLRDataSimpleFrameType enumeration [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# CLRDataSimpleFrameType Enumeration + +Describes a type of frame in the call stack. + +## Syntax + +```cpp +typedef enum CLRDataSimpleFrameType { + CLRDATA_SIMPFRAME_UNRECOGNIZED = 0x1, + CLRDATA_SIMPFRAME_MANAGED_METHOD = 0x2, + CLRDATA_SIMPFRAME_RUNTIME_MANAGED_CODE = 0x4, + CLRDATA_SIMPFRAME_RUNTIME_UNMANAGED_CODE = 0x8 +} CLRDataSimpleFrameType; +``` + +## Members + +|Member|Value|Description| +|------------|-----------------|-----------------| +|`CLRDATA_SIMPFRAME_UNRECOGNIZED`|0x1|The frame is an unrecognized type.| +|`CLRDATA_SIMPFRAME_MANAGED_METHOD`|0x2|The frame is a managed method.| +|`CLRDATA_SIMPFRAME_RUNTIME_MANAGED_CODE`|0x4|The frame is a runtime controlled managed method.| +|`CLRDATA_SIMPFRAME_RUNTIME_UNMANAGED_CODE`|0x8|The frame is a runtime controlled unmanaged method.| + +## Remarks + +This enumeration lives inside the runtime and is not exposed through any headers or library files. To use it, define the enumeration as specified above. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging Enumerations](debugging-enumerations.md) +- [Debugging](index.md) +- [IXCLRDataStackWalk Interface](ixclrdatastackwalk-interface.md) +- [IXCLRDataStackWalk::GetFrameType Method](ixclrdatastackwalk-getframetype-method.md) diff --git a/docs/framework/unmanaged-api/debugging/clrdatavalueflag-enumeration.md b/docs/framework/unmanaged-api/debugging/clrdatavalueflag-enumeration.md new file mode 100644 index 0000000000000..a5393f380538e --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/clrdatavalueflag-enumeration.md @@ -0,0 +1,89 @@ +--- +description: "Learn more about: CLRDataValueFlag Enumeration" +title: "CLRDataValueFlag Enumeration" +ms.date: "07/03/2024" +api_name: + - "CLRDataValueFlag" +api_location: + - "mscordacwks.dll" +api_type: + - "COM" +f1_keywords: + - "CLRDataValueFlag" +helpviewer_keywords: + - "CLRDataValueFlag enumeration [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# CLRDataValueFlag Enumeration + +Indicates various attributes of a value. + +## Syntax + +```cpp +typedef enum CLRDataValueFlag { + CLRDATA_VALUE_DEFAULT = 0x00000000, + CLRDATA_VALUE_IS_PRIMITIVE = 0x00000001, + CLRDATA_VALUE_IS_VALUE_TYPE = 0x00000002, + CLRDATA_VALUE_IS_STRING = 0x00000004, + CLRDATA_VALUE_IS_ARRAY = 0x00000008, + CLRDATA_VALUE_IS_REFERENCE = 0x00000010, + CLRDATA_VALUE_IS_POINTER = 0x00000020, + CLRDATA_VALUE_IS_ENUM = 0x00000040, + CLRDATA_VALUE_ALL_KINDS = 0x0000007F, + + CLRDATA_VALUE_IS_INHERITED = 0x00000080, + CLRDATA_VALUE_IS_LITERAL = 0x00000100, + + CLRDATA_VALUE_FROM_INSTANCE = 0x00000200, + CLRDATA_VALUE_FROM_TASK_LOCAL = 0x00000400, + CLRDATA_VALUE_FROM_STATIC = 0x00000800, + + CLRDATA_VALUE_ALL_LOCATIONS = 0x00000e00, + + CLRDATA_VALUE_ALL_FIELDS = 0x00000eff, + + CLRDATA_VALUE_IS_BOXED = 0x00001000 +} CLRDataValueFlag; +``` + +## Members + +|Member|Value|Description| +|------------|-----------------|-----------------| +|`CLRDATA_VALUE_DEFAULT`|0x0|Default flags.| +|`CLRDATA_VALUE_IS_PRIMITIVE`|0x1|The value is a primitive value.| +|`CLRDATA_VALUE_IS_VALUE_TYPE`|0x2|The value is a value type.| +|`CLRDATA_VALUE_IS_STRING`|0x4|The value is a string.| +|`CLRDATA_VALUE_IS_ARRAY`|0x8|The value is an array.| +|`CLRDATA_VALUE_IS_REFERENCE`|0x10|The value is a reference.| +|`CLRDATA_VALUE_IS_POINTER`|0x20|The value is a pointer.| +|`CLRDATA_VALUE_IS_ENUM`|0x40|The value is an enum.| +|`CLRDATA_VALUE_ALL_KINDS`|0x7F|Bitwise or of all value kinds.| +|`CLRDATA_VALUE_IS_INHERITED`|0x80|The value is inherited.| +|`CLRDATA_VALUE_IS_LITERAL`|0x100|The value is literal.| +|`CLRDATA_VALUE_FROM_INSTANCE`|0x200|The value is from an instance declaration.| +|`CLRDATA_VALUE_FROM_TASK_LOCAL`|0x400|The value is from a task local declaration.| +|`CLRDATA_VALUE_FROM_STATIC`|0x800|The value is from a static declaration.| +|`CLRDATA_VALUE_ALL_LOCATIONS`|0xe00|Bitwise or of all value locations.| +|`CLRDATA_VALUE_ALL_FIELDS`|0xeff|Bitwise or of all value flags.| +|`CLRDATA_VALUE_IS_BOXED`|0x1000|The value is boxed.| + +## Remarks + +This enumeration lives inside the runtime and is not exposed through any headers or library files. To use it, define the enumeration as specified above. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging Enumerations](debugging-enumerations.md) +- [Debugging](index.md) diff --git a/docs/framework/unmanaged-api/debugging/codechunkinfo-structure.md b/docs/framework/unmanaged-api/debugging/codechunkinfo-structure.md index 6e9ae345b644b..707da53fad43b 100644 --- a/docs/framework/unmanaged-api/debugging/codechunkinfo-structure.md +++ b/docs/framework/unmanaged-api/debugging/codechunkinfo-structure.md @@ -2,54 +2,54 @@ description: "Learn more about: CodeChunkInfo Structure" title: "CodeChunkInfo Structure" ms.date: "03/30/2017" -api_name: +api_name: - "CodeChunkInfo" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "CodeChunkInfo" -helpviewer_keywords: +helpviewer_keywords: - "CodeChunkInfo structure [.NET Framework debugging]" ms.assetid: 0f482454-8517-48de-ba7a-d7aedab13bb5 -topic_type: +topic_type: - "apiref" --- # CodeChunkInfo Structure -Represents a single chunk of code in memory. - -## Syntax - -```cpp -typedef struct _CodeChunkInfo { - CORDB_ADDRESS startAddr; - ULONG32 length; -} CodeChunkInfo; -``` - -## Members - -|Member|Description| -|------------|-----------------| -|`startAddr`|A `CORDB_ADDRESS` value that specifies the starting address of the chunk.| -|`length`|The size, in bytes, of the chunk.| - -## Remarks - - The single chunk of code is a region of native code that is part of a code object such as a function. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +Represents a single chunk of code in memory. + +## Syntax + +```cpp +typedef struct _CodeChunkInfo { + CORDB_ADDRESS startAddr; + ULONG32 length; +} CodeChunkInfo; +``` + +## Members + +|Member|Description| +|------------|-----------------| +|`startAddr`|A `CORDB_ADDRESS` value that specifies the starting address of the chunk.| +|`length`|The size, in bytes, of the chunk.| + +## Remarks + + The single chunk of code is a region of native code that is part of a code object such as a function. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [GetCodeChunks Method](icordebugcode2-getcodechunks-method.md) diff --git a/docs/framework/unmanaged-api/debugging/cor-array-layout-structure.md b/docs/framework/unmanaged-api/debugging/cor-array-layout-structure.md index e9ec093ae26ae..48b76b619cb5c 100644 --- a/docs/framework/unmanaged-api/debugging/cor-array-layout-structure.md +++ b/docs/framework/unmanaged-api/debugging/cor-array-layout-structure.md @@ -2,68 +2,68 @@ description: "Learn more about: COR_ARRAY_LAYOUT Structure" title: "COR_ARRAY_LAYOUT Structure" ms.date: "03/30/2017" -api_name: +api_name: - "COR_ARRAY_LAYOUT" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "COR_ARRAY_LAYOUT" -helpviewer_keywords: +helpviewer_keywords: - "COR_DEBUG_IL_TO_NATIVE_MAP structure [.NET Framework debugging]" ms.assetid: aa20ac3d-6f60-4aa2-91c5-f3a86f82eba8 -topic_type: +topic_type: - "apiref" --- # COR_ARRAY_LAYOUT Structure -Provides information about the layout of an array object in memory. - -## Syntax - -```cpp -typedef struct COR_ARRAY_LAYOUT { - COR_TYPEID componentID; - CorElementType componentType; - ULONG32 firstElementOffset; - ULONG32 elementSize; +Provides information about the layout of an array object in memory. + +## Syntax + +```cpp +typedef struct COR_ARRAY_LAYOUT { + COR_TYPEID componentID; + CorElementType componentType; + ULONG32 firstElementOffset; + ULONG32 elementSize; ULONG32 countOffset; ULONG32 rankSize; ULONG32 numRanks; ULONG32 rankOffset; -} COR_ARRAY_LAYOUT; -``` - -## Members - -|Member|Description| -|------------|-----------------| -|`componentID`|The identifier of the type of objects that the array contains.| -|`componentType`|A CorElementType enumeration value that indicates whether the component is a garbage collection reference, a value class, or a primitive.| -|`firstElementOffset`|The offset to the first element in the array.| -|`elementSize`|The size of each element.| -|`countOffset`|The offset to the number of elements in the array.| -|`rankSize`|The size of the rank, in bytes.| -|`numRanks`|The number of ranks in the array.| -|`rankOffset`|The offset at which the ranks start.| - -## Remarks +} COR_ARRAY_LAYOUT; +``` + +## Members + +|Member|Description| +|------------|-----------------| +|`componentID`|The identifier of the type of objects that the array contains.| +|`componentType`|A CorElementType enumeration value that indicates whether the component is a garbage collection reference, a value class, or a primitive.| +|`firstElementOffset`|The offset to the first element in the array.| +|`elementSize`|The size of each element.| +|`countOffset`|The offset to the number of elements in the array.| +|`rankSize`|The size of the rank, in bytes.| +|`numRanks`|The number of ranks in the array.| +|`rankOffset`|The offset at which the ranks start.| + +## Remarks + + The `rankSize` field specifies the size of a rank in a multi-dimensional array. It is accurate for single-dimensional arrays as well. + + The value of `numRanks` is 1 for a single-dimensional array and `N` for a multi-dimensional array of `N` dimensions. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib - The `rankSize` field specifies the size of a rank in a multi-dimensional array. It is accurate for single-dimensional arrays as well. - - The value of `numRanks` is 1 for a single-dimensional array and `N` for a multi-dimensional array of `N` dimensions. - -## Requirements + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - ## See also - [Debugging Structures](debugging-structures.md) diff --git a/docs/framework/unmanaged-api/debugging/cor-field-structure.md b/docs/framework/unmanaged-api/debugging/cor-field-structure.md index 0de9a84e95daf..d50240d9191cf 100644 --- a/docs/framework/unmanaged-api/debugging/cor-field-structure.md +++ b/docs/framework/unmanaged-api/debugging/cor-field-structure.md @@ -2,56 +2,56 @@ description: "Learn more about: COR_FIELD Structure" title: "COR_FIELD Structure" ms.date: "03/30/2017" -api_name: +api_name: - "COR_FIELD" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "COR_FIELD" -helpviewer_keywords: +helpviewer_keywords: - "COR_FIELD structure [.NET Framework debugging]" ms.assetid: c0822423-a9df-4961-950d-50dcc152f863 -topic_type: +topic_type: - "apiref" --- # COR_FIELD Structure -Provides information about a field in an object. - -## Syntax - -```cpp -typedef struct COR_FIELD{ - mdFieldDef token; - ULONG32 offset; - COR_TYPEID id; - CorElementType fieldType; -} COR_FIELD; -``` - -## Members - -|Member|Description| -|------------|-----------------| -|`token`|An `mdFieldDef` token that can be used to get field information.| -|`offset`|The offset, in bytes, to the field data in the object.| -|`id`|A [COR_TYPEID](cor-typeid-structure.md) value that identifies the type of this field.| -|`fieldType`|A CorElementType enumeration value that indicates the type of the field.| - -## Remarks - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - +Provides information about a field in an object. + +## Syntax + +```cpp +typedef struct COR_FIELD{ + mdFieldDef token; + ULONG32 offset; + COR_TYPEID id; + CorElementType fieldType; +} COR_FIELD; +``` + +## Members + +|Member|Description| +|------------|-----------------| +|`token`|An `mdFieldDef` token that can be used to get field information.| +|`offset`|The offset, in bytes, to the field data in the object.| +|`id`|A [COR_TYPEID](cor-typeid-structure.md) value that identifies the type of this field.| +|`fieldType`|A CorElementType enumeration value that indicates the type of the field.| + +## Remarks + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [Debugging Structures](debugging-structures.md) diff --git a/docs/framework/unmanaged-api/debugging/cor-gc-reference-structure.md b/docs/framework/unmanaged-api/debugging/cor-gc-reference-structure.md index 4a39ff279d8fb..b518dfd01d3fd 100644 --- a/docs/framework/unmanaged-api/debugging/cor-gc-reference-structure.md +++ b/docs/framework/unmanaged-api/debugging/cor-gc-reference-structure.md @@ -2,72 +2,72 @@ description: "Learn more about: COR_GC_REFERENCE Structure" title: "COR_GC_REFERENCE Structure" ms.date: "03/30/2017" -api_name: +api_name: - "COR_GC_REFERENCE" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "COR_GC_REFERENCE" -helpviewer_keywords: +helpviewer_keywords: - "COR_GC_REFERENCE structure [.NET Framework debugging]" ms.assetid: 162e8179-0cd4-4110-8f06-5f387698bd62 -topic_type: +topic_type: - "apiref" --- # COR_GC_REFERENCE Structure -Contains information about an object that is to be garbage-collected. - -## Syntax - -```cpp -typedef struct _COR_GC_REFERENCE { +Contains information about an object that is to be garbage-collected. + +## Syntax + +```cpp +typedef struct _COR_GC_REFERENCE { ICorDebugAppDomain *domain; - ICorDebugValue *location; - CorGCReferenceType type; - UINT64 extraData; -} COR_GC_REFERENCE; -``` - -## Members - -|Member|Description| -|------------|-----------------| -|`domain`|A pointer to the application domain to which the handle or object belongs. Its value may be `null`.| -|`location`|Either an ICorDebugValue or an ICorDebugReferenceValue interface that corresponds to the object to be garbage-collected.| -|`type`|A [CorGCReferenceType](corgcreferencetype-enumeration.md) enumeration value that indicates where the root came from. For more information, see the Remarks section.| -|`extraData`|Additional data about the object to be garbage-collected. This information depends on the source of the object, as indicated by the `type` field. For more information, see the Remarks section.| - -## Remarks - - The `type` field is a [CorGCReferenceType](corgcreferencetype-enumeration.md) enumeration value that indicates where the reference came from. A particular `COR_GC_REFERENCE` value can reflect any of the following kinds of managed objects: - -- Objects from all managed stacks (`CorGCReferenceType.CorReferenceStack`). This includes live references in managed code, as well as objects created by the common language runtime. - -- Objects from the handle table (`CorGCReferenceType.CorHandle*`). This includes strong references (`HNDTYPE_STRONG` and `HNDTYPE_REFCOUNT`) and static variables in a module. - -- Objects from the finalizer queue (`CorGCReferenceType.CorReferenceFinalizer`). The finalizer queue roots objects until the finalizer has run. - - The `extraData` field contains extra data depending on the source (or type) of the reference. Possible values are: - -- `DependentSource`. If the `type` is `CorGCReferenceType.CorHandleStrongDependent`, this field is the object that, if alive, roots the object to be garbage-collected at `COR_GC_REFERENCE.Location`. - -- `RefCount`. If the `type` is `CorGCReferenceType.CorHandleStrongRefCount`, this field is the reference count of the handle. - -- `Size`. If the `type` is `CorGCReferenceType.CorHandleStrongSizedByref`, this field is the last size of the object tree for which the garbage collector calculated the object roots. Note that this calculation is not necessarily up to date. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - + ICorDebugValue *location; + CorGCReferenceType type; + UINT64 extraData; +} COR_GC_REFERENCE; +``` + +## Members + +|Member|Description| +|------------|-----------------| +|`domain`|A pointer to the application domain to which the handle or object belongs. Its value may be `null`.| +|`location`|Either an ICorDebugValue or an ICorDebugReferenceValue interface that corresponds to the object to be garbage-collected.| +|`type`|A [CorGCReferenceType](corgcreferencetype-enumeration.md) enumeration value that indicates where the root came from. For more information, see the Remarks section.| +|`extraData`|Additional data about the object to be garbage-collected. This information depends on the source of the object, as indicated by the `type` field. For more information, see the Remarks section.| + +## Remarks + + The `type` field is a [CorGCReferenceType](corgcreferencetype-enumeration.md) enumeration value that indicates where the reference came from. A particular `COR_GC_REFERENCE` value can reflect any of the following kinds of managed objects: + +- Objects from all managed stacks (`CorGCReferenceType.CorReferenceStack`). This includes live references in managed code, as well as objects created by the common language runtime. + +- Objects from the handle table (`CorGCReferenceType.CorHandle*`). This includes strong references (`HNDTYPE_STRONG` and `HNDTYPE_REFCOUNT`) and static variables in a module. + +- Objects from the finalizer queue (`CorGCReferenceType.CorReferenceFinalizer`). The finalizer queue roots objects until the finalizer has run. + + The `extraData` field contains extra data depending on the source (or type) of the reference. Possible values are: + +- `DependentSource`. If the `type` is `CorGCReferenceType.CorHandleStrongDependent`, this field is the object that, if alive, roots the object to be garbage-collected at `COR_GC_REFERENCE.Location`. + +- `RefCount`. If the `type` is `CorGCReferenceType.CorHandleStrongRefCount`, this field is the reference count of the handle. + +- `Size`. If the `type` is `CorGCReferenceType.CorHandleStrongSizedByref`, this field is the last size of the object tree for which the garbage collector calculated the object roots. Note that this calculation is not necessarily up to date. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [Debugging Structures](debugging-structures.md) diff --git a/docs/framework/unmanaged-api/debugging/cor-heapinfo-structure.md b/docs/framework/unmanaged-api/debugging/cor-heapinfo-structure.md index dda85c9c73791..3bd48a60f66a7 100644 --- a/docs/framework/unmanaged-api/debugging/cor-heapinfo-structure.md +++ b/docs/framework/unmanaged-api/debugging/cor-heapinfo-structure.md @@ -2,62 +2,62 @@ description: "Learn more about: COR_HEAPINFO Structure" title: "COR_HEAPINFO Structure" ms.date: "03/30/2017" -api_name: +api_name: - "COR_HEAPINFO" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "COR_HEAPINFO" -helpviewer_keywords: +helpviewer_keywords: - "COR_HEAPINFO structure [.NET Framework debugging]" ms.assetid: bfb2cd39-3e0b-4d51-ba0c-f009755c1456 -topic_type: +topic_type: - "apiref" --- # COR_HEAPINFO Structure -Provides general information about the garbage collection heap, including whether it is enumerable. - -## Syntax - -```cpp -typedef struct _COR_HEAPINFO { +Provides general information about the garbage collection heap, including whether it is enumerable. + +## Syntax + +```cpp +typedef struct _COR_HEAPINFO { BOOL areGCStructuresValid; DWORD pointerSize; - DWORD numHeaps; + DWORD numHeaps; BOOL concurrent; CorDebugGCType gcType; -} COR_HEAPINFO; -``` - -## Members - -|Member|Description| -|------------|-----------------| -|`areGCStructuresValid`|`true` if garbage collection structures are valid and the heap can be enumerated; otherwise, `false`.| -|`pointerSize`|The size, in bytes, of pointers on the target architecture.| -|`numHeaps`|The number of logical garbage collection heaps in the process.| -|`concurrent`|`TRUE` if concurrent (background) garbage collection is enabled; otherwise, `FALSE`.| -|`gcType`|A member of the [CorDebugGCType](cordebuggctype-enumeration.md) enumeration that indicates whether the garbage collector is running on a workstation or a server.| - -## Remarks +} COR_HEAPINFO; +``` + +## Members + +|Member|Description| +|------------|-----------------| +|`areGCStructuresValid`|`true` if garbage collection structures are valid and the heap can be enumerated; otherwise, `false`.| +|`pointerSize`|The size, in bytes, of pointers on the target architecture.| +|`numHeaps`|The number of logical garbage collection heaps in the process.| +|`concurrent`|`TRUE` if concurrent (background) garbage collection is enabled; otherwise, `FALSE`.| +|`gcType`|A member of the [CorDebugGCType](cordebuggctype-enumeration.md) enumeration that indicates whether the garbage collector is running on a workstation or a server.| + +## Remarks + + An instance of the `COR_HEAPINFO` structure is returned by calling the [ICorDebugProcess5::GetGCHeapInformation](icordebugprocess5-getgcheapinformation-method.md) method. + + Before enumerating objects on the garbage collection heap, you must always check the `areGCStructuresValid` field to ensure that the heap is in an enumerable state. For more information, see the [ICorDebugProcess5::GetGCHeapInformation](icordebugprocess5-getgcheapinformation-method.md) method. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib - An instance of the `COR_HEAPINFO` structure is returned by calling the [ICorDebugProcess5::GetGCHeapInformation](icordebugprocess5-getgcheapinformation-method.md) method. - - Before enumerating objects on the garbage collection heap, you must always check the `areGCStructuresValid` field to ensure that the heap is in an enumerable state. For more information, see the [ICorDebugProcess5::GetGCHeapInformation](icordebugprocess5-getgcheapinformation-method.md) method. - -## Requirements + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - ## See also - [Debugging Structures](debugging-structures.md) diff --git a/docs/framework/unmanaged-api/debugging/cor-heapobject-structure.md b/docs/framework/unmanaged-api/debugging/cor-heapobject-structure.md index c1be7c2101be6..b8186a99f7ad3 100644 --- a/docs/framework/unmanaged-api/debugging/cor-heapobject-structure.md +++ b/docs/framework/unmanaged-api/debugging/cor-heapobject-structure.md @@ -2,64 +2,64 @@ description: "Learn more about: COR_HEAPOBJECT Structure" title: "COR_HEAPOBJECT Structure" ms.date: "03/30/2017" -api_name: +api_name: - "COR_HEAPOBJECT" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "COR_HEAPOBJECT" -helpviewer_keywords: +helpviewer_keywords: - "COR_HEAPOBJECT structure [.NET Framework debugging]" ms.assetid: a92fdf95-492b-49ae-a741-2186e5c1d7c5 -topic_type: +topic_type: - "apiref" --- # COR_HEAPOBJECT Structure -Provides information about an object on the managed heap. - -## Syntax - -```cpp -typedef struct _COR_HEAPOBJECT { +Provides information about an object on the managed heap. + +## Syntax + +```cpp +typedef struct _COR_HEAPOBJECT { CORDB_ADDRESS address; ULONG64 size; COR_TYPEID type; -} COR_HEAPOBJECT; -``` - -## Members - -|Member|Description| -|------------|-----------------| -|`address`|The address of the object in memory.| -|`size`|The total size of the object, in bytes.| -|`type`|A [COR_TYPEID](cor-typeid-structure.md) token that represents the type of the object.| - -## Remarks - - `COR_HEAPOBJECT` instances can be retrieved by enumerating an [ICorDebugHeapEnum](icordebugheapenum-interface.md) interface object that is populated by calling the [ICorDebugProcess5::EnumerateHeap](icordebugprocess5-enumerateheap-method.md) method. - - A `COR_HEAPOBJECT` instance provides information either about a live object on the managed heap, or about an object that is not rooted by any object but has not yet been collected by the garbage collector. - - For better performance, the `COR_HEAPOBJECT.address` field is a `CORDB_ADDRESS` value rather than the ICorDebugValue interface value used in much of the debugging API. To obtain an ICorDebugValue object for a given object address, you can pass the `CORDB_ADDRESS` value to the [ICorDebugProcess5::GetObject](icordebugprocess5-getobject-method.md) method. - - For better performance, the `COR_HEAPOBJECT.type` field is a `COR_TYPEID` value rather than the ICorDebugType interface value used in much of the debugging API. To obtain an ICorDebugType object for a given type ID, you can pass the `COR_TYPEID` value to the [ICorDebugProcess5::GetTypeForTypeID](icordebugprocess5-gettypefortypeid-method.md) method. - - The `COR_HEAPOBJECT` structure includes a reference-counted COM interface. If you retrieve a `COR_HEAPOBJECT` instance from the enumerator by calling the [ICorDebugHeapEnum::Next](icordebugheapenum-next-method.md) method, you must subsequently release the reference. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - +} COR_HEAPOBJECT; +``` + +## Members + +|Member|Description| +|------------|-----------------| +|`address`|The address of the object in memory.| +|`size`|The total size of the object, in bytes.| +|`type`|A [COR_TYPEID](cor-typeid-structure.md) token that represents the type of the object.| + +## Remarks + + `COR_HEAPOBJECT` instances can be retrieved by enumerating an [ICorDebugHeapEnum](icordebugheapenum-interface.md) interface object that is populated by calling the [ICorDebugProcess5::EnumerateHeap](icordebugprocess5-enumerateheap-method.md) method. + + A `COR_HEAPOBJECT` instance provides information either about a live object on the managed heap, or about an object that is not rooted by any object but has not yet been collected by the garbage collector. + + For better performance, the `COR_HEAPOBJECT.address` field is a `CORDB_ADDRESS` value rather than the ICorDebugValue interface value used in much of the debugging API. To obtain an ICorDebugValue object for a given object address, you can pass the `CORDB_ADDRESS` value to the [ICorDebugProcess5::GetObject](icordebugprocess5-getobject-method.md) method. + + For better performance, the `COR_HEAPOBJECT.type` field is a `COR_TYPEID` value rather than the ICorDebugType interface value used in much of the debugging API. To obtain an ICorDebugType object for a given type ID, you can pass the `COR_TYPEID` value to the [ICorDebugProcess5::GetTypeForTypeID](icordebugprocess5-gettypefortypeid-method.md) method. + + The `COR_HEAPOBJECT` structure includes a reference-counted COM interface. If you retrieve a `COR_HEAPOBJECT` instance from the enumerator by calling the [ICorDebugHeapEnum::Next](icordebugheapenum-next-method.md) method, you must subsequently release the reference. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [Debugging Structures](debugging-structures.md) diff --git a/docs/framework/unmanaged-api/debugging/cor-pub-enumprocess-enumeration.md b/docs/framework/unmanaged-api/debugging/cor-pub-enumprocess-enumeration.md index d85e8cdaf0eef..62bf019290c9f 100644 --- a/docs/framework/unmanaged-api/debugging/cor-pub-enumprocess-enumeration.md +++ b/docs/framework/unmanaged-api/debugging/cor-pub-enumprocess-enumeration.md @@ -2,52 +2,52 @@ description: "Learn more about: COR_PUB_ENUMPROCESS Enumeration" title: "COR_PUB_ENUMPROCESS Enumeration" ms.date: "03/30/2017" -api_name: +api_name: - "COR_PUB_ENUMPROCESS" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "COR_PUB_ENUMPROCESS" -helpviewer_keywords: +helpviewer_keywords: - "COR_PUB_ENUMPROCESS enumeration [.NET Framework debugging]" ms.assetid: 5d3ada6e-feea-47da-a7ed-b664107c137f -topic_type: +topic_type: - "apiref" --- # COR_PUB_ENUMPROCESS Enumeration -Identifies the type of process to be enumerated. - -## Syntax - -```cpp -typedef enum { - COR_PUB_MANAGEDONLY = 0x00000001 -} COR_PUB_ENUMPROCESS; -``` - -## Members - -|Member name|Description| -|-----------------|-----------------| -|`COR_PUB_MANAGEDONLY`|A managed process.| - -## Remarks - - The current version of the unmanaged debugging API enumerates only managed processes. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorPub.idl, CorPub.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Identifies the type of process to be enumerated. + +## Syntax + +```cpp +typedef enum { + COR_PUB_MANAGEDONLY = 0x00000001 +} COR_PUB_ENUMPROCESS; +``` + +## Members + +|Member name|Description| +|-----------------|-----------------| +|`COR_PUB_MANAGEDONLY`|A managed process.| + +## Remarks + + The current version of the unmanaged debugging API enumerates only managed processes. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorPub.idl, CorPub.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Enumerations](debugging-enumerations.md) diff --git a/docs/framework/unmanaged-api/debugging/cor-segment-structure.md b/docs/framework/unmanaged-api/debugging/cor-segment-structure.md index 6b46f1cbca78d..2bf5793d3a072 100644 --- a/docs/framework/unmanaged-api/debugging/cor-segment-structure.md +++ b/docs/framework/unmanaged-api/debugging/cor-segment-structure.md @@ -2,60 +2,60 @@ description: "Learn more about: COR_SEGMENT Structure" title: "COR_SEGMENT Structure" ms.date: "03/30/2017" -api_name: +api_name: - "COR_SEGMENT" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "COR_SEGMENT" -helpviewer_keywords: +helpviewer_keywords: - "COR_SEGMENT structure [.NET Framework debugging]" ms.assetid: 93aeecb9-7fef-4545-8daf-f566dfc47084 -topic_type: +topic_type: - "apiref" --- # COR_SEGMENT Structure -Contains information about a region of memory in the managed heap. - -## Syntax - -```cpp -typedef struct _COR_SEGMENT { +Contains information about a region of memory in the managed heap. + +## Syntax + +```cpp +typedef struct _COR_SEGMENT { CORDB_ADDRESS start; CORDB_ADDRESS end; CorDebugGenerationTypes gen; ULONG heap; -} COR_SEGMENT; -``` - -## Members - -|Member|Description| -|------------|-----------------| -|`start`|The starting address of the memory region.| -|`end`|The ending address of the memory region.| -|`gen`|A [CorDebugGenerationTypes](cordebuggenerationtypes-enumeration.md) enumeration member that indicates the generation of the memory region.| -|`heap`|The heap number in which the memory region resides. See the Remarks section for more information.| - -## Remarks - - The `COR_SEGMENTS` structure represents a region of memory in the managed heap. `COR_SEGMENTS` objects are members of the [ICorDebugHeapRegionEnum](icordebugheapsegmentenum-interface.md) collection object, which is populated by calling the [ICorDebugProcess5::EnumerateHeapRegions](icordebugprocess5-enumerateheapregions-method.md) method. - - The `heap` field is the processor number, which corresponds to the heap being reported. For workstation garbage collectors, its value is always zero, because workstations have only one garbage collection heap. For server garbage collectors, its value corresponds to the processor the heap is attached to. Note that there may be more or fewer garbage collection heaps than there are actual processors due to the implementation details of the garbage collector. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - +} COR_SEGMENT; +``` + +## Members + +|Member|Description| +|------------|-----------------| +|`start`|The starting address of the memory region.| +|`end`|The ending address of the memory region.| +|`gen`|A [CorDebugGenerationTypes](cordebuggenerationtypes-enumeration.md) enumeration member that indicates the generation of the memory region.| +|`heap`|The heap number in which the memory region resides. See the Remarks section for more information.| + +## Remarks + + The `COR_SEGMENTS` structure represents a region of memory in the managed heap. `COR_SEGMENTS` objects are members of the [ICorDebugHeapRegionEnum](icordebugheapsegmentenum-interface.md) collection object, which is populated by calling the [ICorDebugProcess5::EnumerateHeapRegions](icordebugprocess5-enumerateheapregions-method.md) method. + + The `heap` field is the processor number, which corresponds to the heap being reported. For workstation garbage collectors, its value is always zero, because workstations have only one garbage collection heap. For server garbage collectors, its value corresponds to the processor the heap is attached to. Note that there may be more or fewer garbage collection heaps than there are actual processors due to the implementation details of the garbage collector. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [Debugging Structures](debugging-structures.md) diff --git a/docs/framework/unmanaged-api/debugging/cor-type-layout-structure.md b/docs/framework/unmanaged-api/debugging/cor-type-layout-structure.md index c9b1fc66e3aa6..2754edd5ccc6e 100644 --- a/docs/framework/unmanaged-api/debugging/cor-type-layout-structure.md +++ b/docs/framework/unmanaged-api/debugging/cor-type-layout-structure.md @@ -2,60 +2,60 @@ description: "Learn more about: COR_TYPE_LAYOUT Structure" title: "COR_TYPE_LAYOUT Structure" ms.date: "03/30/2017" -api_name: +api_name: - "COR_TYPE_LAYOUT" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "COR_TYPE_LAYOUT" -helpviewer_keywords: +helpviewer_keywords: - "COR_TYPE_LAYOUT structure [.NET Framework debugging]" ms.assetid: 43a7addd-f25a-4049-9907-abec3eb17af2 -topic_type: +topic_type: - "apiref" --- # COR_TYPE_LAYOUT Structure -Provides information about the layout of an object in memory. - -## Syntax - -```cpp -typedef struct COR_TYPE_LAYOUT { - COR_TYPEID parentID; - ULONG32 objectSize; - ULONG32 numFields; - ULONG32 boxOffset; - CorElementType type; -} COR_TYPE_LAYOUT; -``` - -## Members - -|Member|Description| -|------------|-----------------| -|`parentID`|The identifier of the parent type to this type. This will be the NULL type id (token1= 0, token2 = 0) if the type id corresponds to .| -|`objectSize`|The base size of an object of this type. This is the total size for non-variable sized objects.| -|`numFields`|The number of fields included in objects of this type.| -|`boxOffset`|If this type is boxed, the beginning offset of an object's fields. This field is valid only for value types such as primitives and structures.| -|`type`|The CorElementType to which this type belongs.| - -## Remarks - - If `numFields` is greater than zero, you can call the [ICorDebugProcess5::GetTypeFields](icordebugprocess5-gettypefields-method.md) method to obtain information about the fields in this type. If `type` is `ELEMENT_TYPE_STRING`, `ELEMENT_TYPE_ARRAY`, or `ELEMENT_TYPE_SZARRAY`, the size of objects of this type is variable, and you can pass the [COR_TYPEID](cor-typeid-structure.md) structure to the [ICorDebugProcess5::GetArrayLayout](icordebugprocess5-getarraylayout-method.md) method. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - +Provides information about the layout of an object in memory. + +## Syntax + +```cpp +typedef struct COR_TYPE_LAYOUT { + COR_TYPEID parentID; + ULONG32 objectSize; + ULONG32 numFields; + ULONG32 boxOffset; + CorElementType type; +} COR_TYPE_LAYOUT; +``` + +## Members + +|Member|Description| +|------------|-----------------| +|`parentID`|The identifier of the parent type to this type. This will be the NULL type id (token1= 0, token2 = 0) if the type id corresponds to .| +|`objectSize`|The base size of an object of this type. This is the total size for non-variable sized objects.| +|`numFields`|The number of fields included in objects of this type.| +|`boxOffset`|If this type is boxed, the beginning offset of an object's fields. This field is valid only for value types such as primitives and structures.| +|`type`|The CorElementType to which this type belongs.| + +## Remarks + + If `numFields` is greater than zero, you can call the [ICorDebugProcess5::GetTypeFields](icordebugprocess5-gettypefields-method.md) method to obtain information about the fields in this type. If `type` is `ELEMENT_TYPE_STRING`, `ELEMENT_TYPE_ARRAY`, or `ELEMENT_TYPE_SZARRAY`, the size of objects of this type is variable, and you can pass the [COR_TYPEID](cor-typeid-structure.md) structure to the [ICorDebugProcess5::GetArrayLayout](icordebugprocess5-getarraylayout-method.md) method. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [Debugging Structures](debugging-structures.md) diff --git a/docs/framework/unmanaged-api/debugging/cor-typeid-structure.md b/docs/framework/unmanaged-api/debugging/cor-typeid-structure.md index 978f384dac566..00fe87d8cf09e 100644 --- a/docs/framework/unmanaged-api/debugging/cor-typeid-structure.md +++ b/docs/framework/unmanaged-api/debugging/cor-typeid-structure.md @@ -2,56 +2,56 @@ description: "Learn more about: COR_TYPEID Structure" title: "COR_TYPEID Structure" ms.date: "03/30/2017" -api_name: +api_name: - "COR_TYPEID" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "COR_TYPEID" -helpviewer_keywords: +helpviewer_keywords: - "COR_TYPEID structure [.NET Framework debugging]" ms.assetid: 1e172b14-ee22-4943-b3b8-3740e7bdcd2e -topic_type: +topic_type: - "apiref" --- # COR_TYPEID Structure -Contains a type identifier. - -## Syntax - -```cpp -typedef struct COR_TYPEID{ - UINT64 token1; - UINT64 token2; -} COR_TYPEID; -``` - -## Members - -|Member|Description| -|------------|-----------------| -|`token1`|The first token.| -|`token2`|The second token.| - -## Remarks - - The `COR_TYPEID` structure is returned by a number of debugging methods that provide information about objects to be garbage-collected. It can then be passed as an argument to other debugging methods that provide additional information about that item. For example, by enumerating an [ICorDebugHeapEnum](icordebugheapenum-interface.md) object, you can retrieve individual [COR_HEAPOBJECT](cor-heapobject-structure.md) objects that represent individual objects on the managed heap. You can then pass the `COR_TYPEID` value from the `COR_HEAPOBJECT.type` field to the [ICorDebugProcess5::GetTypeForTypeID](icordebugprocess5-gettypefortypeid-method.md) method to retrieve an ICorDebugType object that provides type information about the object. - - A `COR_TYPEID` object is intended to be opaque. Its individual fields should not be accessed or manipulated. Its sole use is as an identifier that is provided as an `out` parameter in a method call and that can, in turn, be passed to other methods to provide additional information. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - +Contains a type identifier. + +## Syntax + +```cpp +typedef struct COR_TYPEID{ + UINT64 token1; + UINT64 token2; +} COR_TYPEID; +``` + +## Members + +|Member|Description| +|------------|-----------------| +|`token1`|The first token.| +|`token2`|The second token.| + +## Remarks + + The `COR_TYPEID` structure is returned by a number of debugging methods that provide information about objects to be garbage-collected. It can then be passed as an argument to other debugging methods that provide additional information about that item. For example, by enumerating an [ICorDebugHeapEnum](icordebugheapenum-interface.md) object, you can retrieve individual [COR_HEAPOBJECT](cor-heapobject-structure.md) objects that represent individual objects on the managed heap. You can then pass the `COR_TYPEID` value from the `COR_HEAPOBJECT.type` field to the [ICorDebugProcess5::GetTypeForTypeID](icordebugprocess5-gettypefortypeid-method.md) method to retrieve an ICorDebugType object that provides type information about the object. + + A `COR_TYPEID` object is intended to be opaque. Its individual fields should not be accessed or manipulated. Its sole use is as an identifier that is provided as an `out` parameter in a method call and that can, in turn, be passed to other methods to provide additional information. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [Debugging Structures](debugging-structures.md) diff --git a/docs/framework/unmanaged-api/debugging/cor-version-structure.md b/docs/framework/unmanaged-api/debugging/cor-version-structure.md index 409b0275ed5a9..7b28c1032aab3 100644 --- a/docs/framework/unmanaged-api/debugging/cor-version-structure.md +++ b/docs/framework/unmanaged-api/debugging/cor-version-structure.md @@ -2,58 +2,58 @@ description: "Learn more about: COR_VERSION Structure" title: "COR_VERSION Structure" ms.date: "03/30/2017" -api_name: +api_name: - "COR_VERSION" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "COR_VERSION" -helpviewer_keywords: +helpviewer_keywords: - "COR_VERSION structure [.NET Framework debugging]" ms.assetid: 5efaee1c-a001-4c73-9525-4160f4c71567 -topic_type: +topic_type: - "apiref" --- # COR_VERSION Structure -Stores the standard four-part version number of the common language runtime. - -## Syntax - -```cpp -typedef struct _COR_VERSION { - DWORD dwMajor; - DWORD dwMinor; - DWORD dwBuild; - DWORD dwSubBuild; -} COR_VERSION; -``` - -## Members - -|Member|Description| -|------------|-----------------| -|`dwMajor`|The major version number.| -|`dwMinor`|The minor version number.| -|`dwBuild`|The build number.| -|`dwSubBuild`|The sub-build number.| - -## Remarks - - If the version number is 1.0.3705.288, 1 is the major version number, 0 is the minor version number, 3705 is the build number, and 288 is the sub-build number. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +Stores the standard four-part version number of the common language runtime. + +## Syntax + +```cpp +typedef struct _COR_VERSION { + DWORD dwMajor; + DWORD dwMinor; + DWORD dwBuild; + DWORD dwSubBuild; +} COR_VERSION; +``` + +## Members + +|Member|Description| +|------------|-----------------| +|`dwMajor`|The major version number.| +|`dwMinor`|The minor version number.| +|`dwBuild`|The build number.| +|`dwSubBuild`|The sub-build number.| + +## Remarks + + If the version number is 1.0.3705.288, 1 is the major version number, 0 is the minor version number, 3705 is the build number, and 288 is the sub-build number. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [Debugging Structures](debugging-structures.md) diff --git a/docs/framework/unmanaged-api/debugging/cordebugblockingobject-structure.md b/docs/framework/unmanaged-api/debugging/cordebugblockingobject-structure.md index 124a2b375f4aa..5522bfe5ef8b7 100644 --- a/docs/framework/unmanaged-api/debugging/cordebugblockingobject-structure.md +++ b/docs/framework/unmanaged-api/debugging/cordebugblockingobject-structure.md @@ -2,55 +2,55 @@ description: "Learn more about: CorDebugBlockingObject Structure" title: "CorDebugBlockingObject Structure" ms.date: "03/30/2017" -api_name: +api_name: - "CorDebugBlockingObject Structure" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "CorDebugBlockingObject" -helpviewer_keywords: +helpviewer_keywords: - "CorDebugBlockingObject structure [.NET Framework debugging]" ms.assetid: 5944edd1-0914-4efa-aba0-d5a277c38b1a -topic_type: +topic_type: - "apiref" --- # CorDebugBlockingObject Structure -Defines an object that is blocking a thread and the specific reason that the thread is blocked. - -## Syntax - -```cpp -Typedef struct CorDebugBlockingObject -{ -ICorDebugValue pBlockingObject; -DWORD dwTimeout; -CorDebugBlockingReason blockingReason; -} CorDebugBlockingObject; -``` - -## Members - -|Member|Description| -|------------|-----------------| -|`pBlockingObject`|The object on which the thread is blocking. This object is valid only for the duration of the current synchronized state. If two threads are blocking on the same object within the same synchronized state, you may expect the [ICorDebugValue::GetAddress](icordebugvalue-getaddress-method.md) method to return the same value. However, the interfaces may or may not be pointer equivalent.| -|`dwTimeout`|The number of milliseconds before the blocking operation will time out, or the value INFINITE, which indicates that it will not time out. The time-out value specifies the total length of time for the blocking operation, not the time that is still remaining.| -|`blockingReason`|The reason that the thread is blocked on this object.| - -## Remarks - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +Defines an object that is blocking a thread and the specific reason that the thread is blocked. + +## Syntax + +```cpp +Typedef struct CorDebugBlockingObject +{ +ICorDebugValue pBlockingObject; +DWORD dwTimeout; +CorDebugBlockingReason blockingReason; +} CorDebugBlockingObject; +``` + +## Members + +|Member|Description| +|------------|-----------------| +|`pBlockingObject`|The object on which the thread is blocking. This object is valid only for the duration of the current synchronized state. If two threads are blocking on the same object within the same synchronized state, you may expect the [ICorDebugValue::GetAddress](icordebugvalue-getaddress-method.md) method to return the same value. However, the interfaces may or may not be pointer equivalent.| +|`dwTimeout`|The number of milliseconds before the blocking operation will time out, or the value INFINITE, which indicates that it will not time out. The time-out value specifies the total length of time for the blocking operation, not the time that is still remaining.| +|`blockingReason`|The reason that the thread is blocked on this object.| + +## Remarks + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [Debugging Structures](debugging-structures.md) diff --git a/docs/framework/unmanaged-api/debugging/cordebugblockingreason-enumeration.md b/docs/framework/unmanaged-api/debugging/cordebugblockingreason-enumeration.md index dfef781582185..f4af20f12b507 100644 --- a/docs/framework/unmanaged-api/debugging/cordebugblockingreason-enumeration.md +++ b/docs/framework/unmanaged-api/debugging/cordebugblockingreason-enumeration.md @@ -2,57 +2,57 @@ description: "Learn more about: CorDebugBlockingReason Enumeration" title: "CorDebugBlockingReason Enumeration" ms.date: "03/30/2017" -api_name: +api_name: - "CorDebugBlockingReason" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "CorDebugBlockingReason" -helpviewer_keywords: +helpviewer_keywords: - "CorDebugBlockingReason enumeration [.NET Framework debugging]" ms.assetid: a6ac2531-ddfe-46fd-88fe-8b1eabe0b255 -topic_type: +topic_type: - "apiref" --- # CorDebugBlockingReason Enumeration -Specifies the reasons why a thread may become blocked on a given object. - -## Syntax - -```cpp -Typedef enum CorDebugBlockingReason -{ - BLOCKING_NONE = 0 - BLOCKING_MONITOR_CRITICAL_SECTION = 1 - BLOCKING_MONITOR_EVENT = 2 -} CorDebugBlockingReason; -``` - -## Members - -|Member|Description| -|------------|-----------------| -|`BLOCKING_NONE`|Internal use only.| -|`BLOCKING_MONITOR_CRITICAL_SECTION`|A thread is trying to acquire the critical section that is associated with the monitor lock on an object. Typically, this occurs when you call one of the or methods.| -|`BLOCKING_MONITOR_EVENT`|A thread is waiting on the event that is associated with a monitor lock for an object. Typically, this occurs when you call one of the `Wait` methods.| - -## Remarks - - When the `BLOCKING_MONITOR_CRITICAL_SECTION` or `BLOCKING_MONITOR_EVENT` member is used in a [CorDebugBlockingObject](cordebugblockingobject-structure.md) structure, the `pBlockingObject` member of the structure points to an "ICorDebugValue" interface that represents the object that is being entered. It is also guaranteed to implement the [ICorDebugHeapValue3](icordebugheapvalue3-interface.md) interface. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +Specifies the reasons why a thread may become blocked on a given object. + +## Syntax + +```cpp +Typedef enum CorDebugBlockingReason +{ + BLOCKING_NONE = 0 + BLOCKING_MONITOR_CRITICAL_SECTION = 1 + BLOCKING_MONITOR_EVENT = 2 +} CorDebugBlockingReason; +``` + +## Members + +|Member|Description| +|------------|-----------------| +|`BLOCKING_NONE`|Internal use only.| +|`BLOCKING_MONITOR_CRITICAL_SECTION`|A thread is trying to acquire the critical section that is associated with the monitor lock on an object. Typically, this occurs when you call one of the or methods.| +|`BLOCKING_MONITOR_EVENT`|A thread is waiting on the event that is associated with a monitor lock for an object. Typically, this occurs when you call one of the `Wait` methods.| + +## Remarks + + When the `BLOCKING_MONITOR_CRITICAL_SECTION` or `BLOCKING_MONITOR_EVENT` member is used in a [CorDebugBlockingObject](cordebugblockingobject-structure.md) structure, the `pBlockingObject` member of the structure points to an "ICorDebugValue" interface that represents the object that is being entered. It is also guaranteed to implement the [ICorDebugHeapValue3](icordebugheapvalue3-interface.md) interface. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [Debugging Enumerations](debugging-enumerations.md) diff --git a/docs/framework/unmanaged-api/debugging/cordebugchainreason-enumeration.md b/docs/framework/unmanaged-api/debugging/cordebugchainreason-enumeration.md index fbd3d5e005f6f..b4fca41c11f98 100644 --- a/docs/framework/unmanaged-api/debugging/cordebugchainreason-enumeration.md +++ b/docs/framework/unmanaged-api/debugging/cordebugchainreason-enumeration.md @@ -2,76 +2,76 @@ description: "Learn more about: CorDebugChainReason Enumeration" title: "CorDebugChainReason Enumeration" ms.date: "03/30/2017" -api_name: +api_name: - "CorDebugChainReason" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "CorDebugChainReason" -helpviewer_keywords: +helpviewer_keywords: - "CorDebugChainReason enumeration [.NET Framework debugging]" ms.assetid: c915da51-50b2-41df-841a-2b971f4d0975 -topic_type: +topic_type: - "apiref" --- # CorDebugChainReason Enumeration -Indicates the reason or reasons for the initiation of a call chain. - -## Syntax - -```cpp -typedef enum CorDebugChainReason { - CHAIN_NONE = 0x000, - CHAIN_CLASS_INIT = 0x001, - CHAIN_EXCEPTION_FILTER = 0x002, - CHAIN_SECURITY = 0x004, - CHAIN_CONTEXT_POLICY = 0x008, - CHAIN_INTERCEPTION = 0x010, - CHAIN_PROCESS_START = 0x020, - CHAIN_THREAD_START = 0x040, - CHAIN_ENTER_MANAGED = 0x080, - CHAIN_ENTER_UNMANAGED = 0x100, - CHAIN_DEBUGGER_EVAL = 0x200, - CHAIN_CONTEXT_SWITCH = 0x400, - CHAIN_FUNC_EVAL = 0x800 -} CorDebugChainReason; -``` - -## Members - -|Member|Description| -|------------|-----------------| -|`CHAIN_NONE`|No call chain has been initiated.| -|`CHAIN_CLASS_INIT`|The chain was initiated by a constructor.| -|`CHAIN_EXCEPTION_FILTER`|The chain was initiated by an exception filter.| -|`CHAIN_SECURITY`|The chain was initiated by code that enforces security.| -|`CHAIN_CONTEXT_POLICY`|The chain was initiated by a context policy.| -|`CHAIN_INTERCEPTION`|Not used.| -|`CHAIN_PROCESS_START`|Not used.| -|`CHAIN_THREAD_START`|The chain was initiated by the start of a thread execution.| -|`CHAIN_ENTER_MANAGED`|The chain was initiated by entry into managed code.| -|`CHAIN_ENTER_UNMANAGED`|The chain was initiated by entry into unmanaged code.| -|`CHAIN_DEBUGGER_EVAL`|Not used.| -|`CHAIN_CONTEXT_SWITCH`|Not used.| -|`CHAIN_FUNC_EVAL`|The chain was initiated by a function evaluation.| - -## Remarks +Indicates the reason or reasons for the initiation of a call chain. - Use the [ICorDebugChain::GetReason](icordebugchain-getreason-method.md) method to ascertain the reasons for the initiation of a call chain. - -## Requirements +## Syntax + +```cpp +typedef enum CorDebugChainReason { + CHAIN_NONE = 0x000, + CHAIN_CLASS_INIT = 0x001, + CHAIN_EXCEPTION_FILTER = 0x002, + CHAIN_SECURITY = 0x004, + CHAIN_CONTEXT_POLICY = 0x008, + CHAIN_INTERCEPTION = 0x010, + CHAIN_PROCESS_START = 0x020, + CHAIN_THREAD_START = 0x040, + CHAIN_ENTER_MANAGED = 0x080, + CHAIN_ENTER_UNMANAGED = 0x100, + CHAIN_DEBUGGER_EVAL = 0x200, + CHAIN_CONTEXT_SWITCH = 0x400, + CHAIN_FUNC_EVAL = 0x800 +} CorDebugChainReason; +``` + +## Members + +|Member|Description| +|------------|-----------------| +|`CHAIN_NONE`|No call chain has been initiated.| +|`CHAIN_CLASS_INIT`|The chain was initiated by a constructor.| +|`CHAIN_EXCEPTION_FILTER`|The chain was initiated by an exception filter.| +|`CHAIN_SECURITY`|The chain was initiated by code that enforces security.| +|`CHAIN_CONTEXT_POLICY`|The chain was initiated by a context policy.| +|`CHAIN_INTERCEPTION`|Not used.| +|`CHAIN_PROCESS_START`|Not used.| +|`CHAIN_THREAD_START`|The chain was initiated by the start of a thread execution.| +|`CHAIN_ENTER_MANAGED`|The chain was initiated by entry into managed code.| +|`CHAIN_ENTER_UNMANAGED`|The chain was initiated by entry into unmanaged code.| +|`CHAIN_DEBUGGER_EVAL`|Not used.| +|`CHAIN_CONTEXT_SWITCH`|Not used.| +|`CHAIN_FUNC_EVAL`|The chain was initiated by a function evaluation.| + +## Remarks + + Use the [ICorDebugChain::GetReason](icordebugchain-getreason-method.md) method to ascertain the reasons for the initiation of a call chain. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - ## See also - [Debugging Enumerations](debugging-enumerations.md) diff --git a/docs/framework/unmanaged-api/debugging/cordebugcodeinvokekind-enumeration.md b/docs/framework/unmanaged-api/debugging/cordebugcodeinvokekind-enumeration.md index 0f1a36eb16457..8a8834d6f6b0e 100644 --- a/docs/framework/unmanaged-api/debugging/cordebugcodeinvokekind-enumeration.md +++ b/docs/framework/unmanaged-api/debugging/cordebugcodeinvokekind-enumeration.md @@ -2,56 +2,56 @@ description: "Learn more about: CorDebugCodeInvokeKind Enumeration" title: "CorDebugCodeInvokeKind Enumeration" ms.date: "03/30/2017" -api_name: +api_name: - "CorDebugCodeInvokeKind" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" ms.assetid: e795e6a2-1008-4a81-af88-d777888e942e -topic_type: +topic_type: - "apiref" --- # CorDebugCodeInvokeKind Enumeration -Describes how an exported function invokes managed code. - -## Syntax - -```cpp -typedef enum CorDebugCodeInvokeKind -{ +Describes how an exported function invokes managed code. + +## Syntax + +```cpp +typedef enum CorDebugCodeInvokeKind +{ CODE_INVOKE_KIND_NONE, CODE_INVOKE_KIND_RETURN, CODE_INVOKE_KIND_TAILCALL, -} CorDebugCodeInvokeKind; -``` - -## Members - -|Member|Description| -|------------|-----------------| -|`CODE_INVOKE_KIND_NONE`|If any managed code is invoked by this method, it will have to be located by explicit events or breakpoints later.

--or--

We may just miss some of the managed code this method calls because there is no easy way to stop on it.

--or--

The method may never invoke managed code.| -|`CODE_INVOKE_KIND_RETURN`|This method will invoke managed code via a return instruction. Stepping out should arrive at the next managed code.| -|`CODE_INVOKE_KIND_TAILCALL`|This method will invoke managed code via a tail-call. Single-stepping and stepping over any call instructions should arrive at managed code.| - -## Remarks - - This enumeration is used by the [ICorDebugProcess6::GetExportStepInfo](icordebugprocess6-getexportstepinfo-method.md) method to provide information about stepping through managed code. - +} CorDebugCodeInvokeKind; +``` + +## Members + +|Member|Description| +|------------|-----------------| +|`CODE_INVOKE_KIND_NONE`|If any managed code is invoked by this method, it will have to be located by explicit events or breakpoints later.

--or--

We may just miss some of the managed code this method calls because there is no easy way to stop on it.

--or--

The method may never invoke managed code.| +|`CODE_INVOKE_KIND_RETURN`|This method will invoke managed code via a return instruction. Stepping out should arrive at the next managed code.| +|`CODE_INVOKE_KIND_TAILCALL`|This method will invoke managed code via a tail-call. Single-stepping and stepping over any call instructions should arrive at managed code.| + +## Remarks + + This enumeration is used by the [ICorDebugProcess6::GetExportStepInfo](icordebugprocess6-getexportstepinfo-method.md) method to provide information about stepping through managed code. + > [!NOTE] -> This enumeration is intended for use in .NET Native debugging scenarios only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This enumeration is intended for use in .NET Native debugging scenarios only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [Debugging Enumerations](debugging-enumerations.md) diff --git a/docs/framework/unmanaged-api/debugging/cordebugcodeinvokepurpose-enumeration.md b/docs/framework/unmanaged-api/debugging/cordebugcodeinvokepurpose-enumeration.md index 5f482c6bf070a..94e0fc7f220a1 100644 --- a/docs/framework/unmanaged-api/debugging/cordebugcodeinvokepurpose-enumeration.md +++ b/docs/framework/unmanaged-api/debugging/cordebugcodeinvokepurpose-enumeration.md @@ -2,58 +2,58 @@ description: "Learn more about: CorDebugCodeInvokePurpose Enumeration" title: "CorDebugCodeInvokePurpose Enumeration" ms.date: "03/30/2017" -api_name: +api_name: - "CorDebugInvokePurpose" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" ms.assetid: 31833a2d-a0d6-48a1-b05f-995ca307a08f -topic_type: +topic_type: - "apiref" --- # CorDebugCodeInvokePurpose Enumeration -Describes why an exported function calls managed code. - -## Syntax - -```cpp -typedef enum CorDebugCodeInvokePurpose -{ - CODE_INVOKE_PURPOSE_NONE, +Describes why an exported function calls managed code. + +## Syntax + +```cpp +typedef enum CorDebugCodeInvokePurpose +{ + CODE_INVOKE_PURPOSE_NONE, CODE_INVOKE_PURPOSE_NATIVE_TO_MANAGED_TRANSITION, - CODE_INVOKE_PURPOSE_CLASS_INIT, - CODE_INVOKE_PURPOSE_INTERFACE_DISPATCH, -} CorDebugCodeInvokePurpose; -``` - -## Members - -|Member|Description| -|------------|-----------------| -|`CODE_INVOKE_PURPOSE_NONE`|None or unknown.| -|`CODE_INVOKE_PURPOSE_NATIVE_TO_MANAGED_TRANSITION`|The managed code will run any managed entry point, such as a reverse p-invoke. Any more detailed purpose is unknown by the runtime.| -|`CODE_INVOKE_PURPOSE_CLASS_INIT`|The managed code will run a static constructor.| -|`CODE_INVOKE_PURPOSE_INTERFACE_DISPATCH`|The managed code will run the implementation for some interface method that was called.| - -## Remarks - - This enumeration is used by the [ICorDebugProcess6::GetExportStepInfo](icordebugprocess6-getexportstepinfo-method.md) method to provide information about stepping through managed code. - + CODE_INVOKE_PURPOSE_CLASS_INIT, + CODE_INVOKE_PURPOSE_INTERFACE_DISPATCH, +} CorDebugCodeInvokePurpose; +``` + +## Members + +|Member|Description| +|------------|-----------------| +|`CODE_INVOKE_PURPOSE_NONE`|None or unknown.| +|`CODE_INVOKE_PURPOSE_NATIVE_TO_MANAGED_TRANSITION`|The managed code will run any managed entry point, such as a reverse p-invoke. Any more detailed purpose is unknown by the runtime.| +|`CODE_INVOKE_PURPOSE_CLASS_INIT`|The managed code will run a static constructor.| +|`CODE_INVOKE_PURPOSE_INTERFACE_DISPATCH`|The managed code will run the implementation for some interface method that was called.| + +## Remarks + + This enumeration is used by the [ICorDebugProcess6::GetExportStepInfo](icordebugprocess6-getexportstepinfo-method.md) method to provide information about stepping through managed code. + > [!NOTE] -> This enumeration is intended for use in .NET Native debugging scenarios only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This enumeration is intended for use in .NET Native debugging scenarios only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [Debugging Enumerations](debugging-enumerations.md) diff --git a/docs/framework/unmanaged-api/debugging/cordebugdebugeventkind-enumeration.md b/docs/framework/unmanaged-api/debugging/cordebugdebugeventkind-enumeration.md index b0840a66661b2..1b49215347ab9 100644 --- a/docs/framework/unmanaged-api/debugging/cordebugdebugeventkind-enumeration.md +++ b/docs/framework/unmanaged-api/debugging/cordebugdebugeventkind-enumeration.md @@ -2,61 +2,61 @@ description: "Learn more about: CorDebugDebugEventKind Enumeration" title: "CorDebugDebugEventKind Enumeration" ms.date: "03/30/2017" -api_name: +api_name: - "CorDebugDebugEventKind" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" ms.assetid: 6075a6cd-97e6-4472-a090-0dd14860d1f3 -topic_type: +topic_type: - "apiref" --- # CorDebugDebugEventKind Enumeration -Indicates the type of event whose information is decoded by the [DecodeEvent](icordebugprocess6-decodeevent-method.md) method. - -## Syntax - -```cpp -typedef enum CorDebugDebugEventKind { - DEBUG_EVENT_KIND_MODULE_LOADED = 1, - DEBUG_EVENT_KIND_MODULE_UNLOADED = 2, - DEBUG_EVENT_KIND_MANAGED_EXCEPTION_FIRST_CHANCE = 3, - DEBUG_EVENT_KIND_MANAGED_EXCEPTION_USER_FIRST_CHANCE = 4, - DEBUG_EVENT_KIND_MANAGED_EXCEPTION_CATCH_HANDLER_FOUND = 5, - DEBUG_EVENT_KIND_MANAGED_EXCEPTION_UNHANDLED = 6 -} CorDebugRecordFormat; -``` - -## Members - -|Member|Description| -|------------|-----------------| -|`DEBUG_EVENT_KIND_MODULE_LOADED`|A module load event.| -|`DEBUG_EVENT_KIND_MODULE_UNLOADED`|A module unload event.| -|`DEBUG_EVENT_KIND_MANAGED_EXCEPTION_FIRST_CHANCE`|A first-chance exception.| -|`DEBUG_EVENT_KIND_MANAGED_EXCEPTION_USER_FIRST_CHANCE`|A first-chance user exception.| -|`DEBUG_EVENT_KIND_MANAGED_EXCEPTION_CATCH_HANDLER_FOUND`|An exception for which a `catch` handler exists.| -|`DEBUG_EVENT_KIND_MANAGED_EXCEPTION_UNHANDLED`|An unhandled exception.| - -## Remarks - - A member of the `CorDebugDebugEventKind` enumeration is returned by calling the [ICorDebugDebugEvent::GetEventKind](icordebugdebugevent-geteventkind-method.md) method. - +Indicates the type of event whose information is decoded by the [DecodeEvent](icordebugprocess6-decodeevent-method.md) method. + +## Syntax + +```cpp +typedef enum CorDebugDebugEventKind { + DEBUG_EVENT_KIND_MODULE_LOADED = 1, + DEBUG_EVENT_KIND_MODULE_UNLOADED = 2, + DEBUG_EVENT_KIND_MANAGED_EXCEPTION_FIRST_CHANCE = 3, + DEBUG_EVENT_KIND_MANAGED_EXCEPTION_USER_FIRST_CHANCE = 4, + DEBUG_EVENT_KIND_MANAGED_EXCEPTION_CATCH_HANDLER_FOUND = 5, + DEBUG_EVENT_KIND_MANAGED_EXCEPTION_UNHANDLED = 6 +} CorDebugRecordFormat; +``` + +## Members + +|Member|Description| +|------------|-----------------| +|`DEBUG_EVENT_KIND_MODULE_LOADED`|A module load event.| +|`DEBUG_EVENT_KIND_MODULE_UNLOADED`|A module unload event.| +|`DEBUG_EVENT_KIND_MANAGED_EXCEPTION_FIRST_CHANCE`|A first-chance exception.| +|`DEBUG_EVENT_KIND_MANAGED_EXCEPTION_USER_FIRST_CHANCE`|A first-chance user exception.| +|`DEBUG_EVENT_KIND_MANAGED_EXCEPTION_CATCH_HANDLER_FOUND`|An exception for which a `catch` handler exists.| +|`DEBUG_EVENT_KIND_MANAGED_EXCEPTION_UNHANDLED`|An unhandled exception.| + +## Remarks + + A member of the `CorDebugDebugEventKind` enumeration is returned by calling the [ICorDebugDebugEvent::GetEventKind](icordebugdebugevent-geteventkind-method.md) method. + > [!NOTE] -> This enumeration is intended for use in .NET Native debugging scenarios only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This enumeration is intended for use in .NET Native debugging scenarios only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [Debugging Enumerations](debugging-enumerations.md) diff --git a/docs/framework/unmanaged-api/debugging/cordebugdecodeeventflagswindows-enumeration.md b/docs/framework/unmanaged-api/debugging/cordebugdecodeeventflagswindows-enumeration.md index d6b858566a512..a948ecc7f6d9c 100644 --- a/docs/framework/unmanaged-api/debugging/cordebugdecodeeventflagswindows-enumeration.md +++ b/docs/framework/unmanaged-api/debugging/cordebugdecodeeventflagswindows-enumeration.md @@ -2,51 +2,51 @@ description: "Learn more about: CorDebugDecodeEventFlagsWindows Enumeration" title: "CorDebugDecodeEventFlagsWindows Enumeration" ms.date: "03/30/2017" -api_name: +api_name: - "CorDebugDecodeEventFlagsWindows" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" ms.assetid: aa6cf962-30ae-4cfd-8895-826deeb46a54 -topic_type: +topic_type: - "apiref" --- # CorDebugDecodeEventFlagsWindows Enumeration -Provides additional information about debug events on the Windows platform. - -## Syntax - -```cpp -typedef enum CorDebugDecodeEventFlagsWindows { - IS_FIRST_CHANCE = 1, -} CorDebugDecodeEventFlagsWindows; -``` - -## Members - -|Member|Description| -|------------|-----------------| -|`IS_FIRST_CHANCE`|Indicates that the debug event is a first-chance exception.| - -## Remarks - - The [ICorDebugProcess6::DecodeEvent](icordebugprocess6-decodeevent-method.md) method includes a `dwFlags` parameter that provides additional information about a debug event and whose value is dependent on the target architecture. The `CorDebugDecodeEventFlagsWindows` enumeration can be used with debug events on the Windows platform. - +Provides additional information about debug events on the Windows platform. + +## Syntax + +```cpp +typedef enum CorDebugDecodeEventFlagsWindows { + IS_FIRST_CHANCE = 1, +} CorDebugDecodeEventFlagsWindows; +``` + +## Members + +|Member|Description| +|------------|-----------------| +|`IS_FIRST_CHANCE`|Indicates that the debug event is a first-chance exception.| + +## Remarks + + The [ICorDebugProcess6::DecodeEvent](icordebugprocess6-decodeevent-method.md) method includes a `dwFlags` parameter that provides additional information about a debug event and whose value is dependent on the target architecture. The `CorDebugDecodeEventFlagsWindows` enumeration can be used with debug events on the Windows platform. + > [!NOTE] -> This enumeration is intended for use in .NET Native debugging scenarios only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This enumeration is intended for use in .NET Native debugging scenarios only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [Debugging Enumerations](debugging-enumerations.md) diff --git a/docs/framework/unmanaged-api/debugging/cordebugexceptionflags-enumeration.md b/docs/framework/unmanaged-api/debugging/cordebugexceptionflags-enumeration.md index ae50feb9c9e55..488ef8ba421c4 100644 --- a/docs/framework/unmanaged-api/debugging/cordebugexceptionflags-enumeration.md +++ b/docs/framework/unmanaged-api/debugging/cordebugexceptionflags-enumeration.md @@ -2,54 +2,54 @@ description: "Learn more about: CorDebugExceptionFlags Enumeration" title: "CorDebugExceptionFlags Enumeration" ms.date: "03/30/2017" -api_name: +api_name: - "CorDebugExceptionFlags" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "CorDebugExceptionFlags" -helpviewer_keywords: +helpviewer_keywords: - "CorDebugExceptionFlags enumeration [.NET Framework debugging]" ms.assetid: b22687a8-e9cf-4e65-a1b0-f92a81bc524e -topic_type: +topic_type: - "apiref" --- # CorDebugExceptionFlags Enumeration -Provides additional information about an exception. - -## Syntax - -```cpp -typedef enum CorDebugExceptionFlags { - DEBUG_EXCEPTION_NONE = 0, - DEBUG_EXCEPTION_CAN_BE_INTERCEPTED = 0x0001 -} CorDebugExceptionFlags; -``` - -## Members - -|Member|Description| -|------------|-----------------| -|`DEBUG_EXCEPTION_NONE`|There is no exception.| -|`DEBUG_EXCEPTION_CAN_BE_INTERCEPTED`|The exception is interceptable.

The timing of the exception may still be such that the debugger cannot intercept it. For example, if there is no managed code below the current callback or the exception event resulted from a just-in-time (JIT) attachment, the exception cannot be intercepted.| - -## Remarks - - New values may be added to this enumeration in later versions, so you should prepare code that uses `CorDebugExceptionFlags` for unexpected values. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +Provides additional information about an exception. + +## Syntax + +```cpp +typedef enum CorDebugExceptionFlags { + DEBUG_EXCEPTION_NONE = 0, + DEBUG_EXCEPTION_CAN_BE_INTERCEPTED = 0x0001 +} CorDebugExceptionFlags; +``` + +## Members + +|Member|Description| +|------------|-----------------| +|`DEBUG_EXCEPTION_NONE`|There is no exception.| +|`DEBUG_EXCEPTION_CAN_BE_INTERCEPTED`|The exception is interceptable.

The timing of the exception may still be such that the debugger cannot intercept it. For example, if there is no managed code below the current callback or the exception event resulted from a just-in-time (JIT) attachment, the exception cannot be intercepted.| + +## Remarks + + New values may be added to this enumeration in later versions, so you should prepare code that uses `CorDebugExceptionFlags` for unexpected values. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [Debugging Enumerations](debugging-enumerations.md) diff --git a/docs/framework/unmanaged-api/debugging/cordebugexceptionobjectstackframe-structure.md b/docs/framework/unmanaged-api/debugging/cordebugexceptionobjectstackframe-structure.md index afa421ac7209b..d0032684aac99 100644 --- a/docs/framework/unmanaged-api/debugging/cordebugexceptionobjectstackframe-structure.md +++ b/docs/framework/unmanaged-api/debugging/cordebugexceptionobjectstackframe-structure.md @@ -2,58 +2,58 @@ description: "Learn more about: CorDebugExceptionObjectStackFrame Structure" title: "CorDebugExceptionObjectStackFrame Structure" ms.date: "03/30/2017" -api_name: +api_name: - "CorDebugExceptionObjectStackFrame" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "CorDebugExceptionObjectStackFrame" -helpviewer_keywords: +helpviewer_keywords: - "CorDebugExceptionObjectStackFrame structure [.NET Framework debugging]" ms.assetid: 542cdd81-5ae7-4361-b0ef-1ae4775df258 -topic_type: +topic_type: - "apiref" --- # CorDebugExceptionObjectStackFrame Structure -Represents stack frame information from an exception object. - -## Syntax - -```cpp -typedef struct CorDebugExceptionObjectStackFrame { - ICorDebugModule* pModule; - CORDB_ADDRESS ip; - mdMethodDef methodDef; - BOOL isLastForeignExceptionFrame; -} CorDebugExceptionObjectStackFrame; -``` - -## Members - -|Member|Description| -|------------|-----------------| -|`pModule`|A pointer to the ICorDebugModule object for the current frame.| -|`ip`|The value of the instruction pointer (EIP/RIP) for the current frame.| -|`methodDef`|The method token for the current frame.| -|`isLastForeignExceptionFrame`|A value that indicates whether the frame is the last frame in a foreign exception.| - -## Remarks - - The caller must release the pointer to the ICorDebugModule object once it is no longer in use. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - +Represents stack frame information from an exception object. + +## Syntax + +```cpp +typedef struct CorDebugExceptionObjectStackFrame { + ICorDebugModule* pModule; + CORDB_ADDRESS ip; + mdMethodDef methodDef; + BOOL isLastForeignExceptionFrame; +} CorDebugExceptionObjectStackFrame; +``` + +## Members + +|Member|Description| +|------------|-----------------| +|`pModule`|A pointer to the ICorDebugModule object for the current frame.| +|`ip`|The value of the instruction pointer (EIP/RIP) for the current frame.| +|`methodDef`|The method token for the current frame.| +|`isLastForeignExceptionFrame`|A value that indicates whether the frame is the last frame in a foreign exception.| + +## Remarks + + The caller must release the pointer to the ICorDebugModule object once it is no longer in use. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [Debugging Structures](debugging-structures.md) diff --git a/docs/framework/unmanaged-api/debugging/cordebuggctype-enumeration.md b/docs/framework/unmanaged-api/debugging/cordebuggctype-enumeration.md index dda908e590b93..fc86d4aa060df 100644 --- a/docs/framework/unmanaged-api/debugging/cordebuggctype-enumeration.md +++ b/docs/framework/unmanaged-api/debugging/cordebuggctype-enumeration.md @@ -2,54 +2,54 @@ description: "Learn more about: CorDebugGCType Enumeration" title: "CorDebugGCType Enumeration" ms.date: "03/30/2017" -api_name: +api_name: - "CorDebugGCType" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "CorDebugGCType" -helpviewer_keywords: +helpviewer_keywords: - "CorDebugGCType enumeration [.NET Framework debugging]" ms.assetid: 880ca92a-42d4-42a5-9b9c-c2848eb39c6a -topic_type: +topic_type: - "apiref" --- # CorDebugGCType Enumeration -Indicates whether the garbage collector is running on a workstation or a server. - -## Syntax - -```cpp -typedef enum CorDebugGCType { - CorDebugWorkstationGC = 0, - CorDebugServerGC = ( CorDebugWorkstationGC + 1 ) -} CorDebugGCType; -``` - -## Parameters - -## Members - -|Member name|Description| -|-----------------|-----------------| -|`CorDebugWorkstationGC`|The garbage collector is running on a workstation.| -|`CorDebugServerGC`|The garbage collector is running on a server.| - -## Remarks - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - +Indicates whether the garbage collector is running on a workstation or a server. + +## Syntax + +```cpp +typedef enum CorDebugGCType { + CorDebugWorkstationGC = 0, + CorDebugServerGC = ( CorDebugWorkstationGC + 1 ) +} CorDebugGCType; +``` + +## Parameters + +## Members + +|Member name|Description| +|-----------------|-----------------| +|`CorDebugWorkstationGC`|The garbage collector is running on a workstation.| +|`CorDebugServerGC`|The garbage collector is running on a server.| + +## Remarks + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [Debugging Enumerations](debugging-enumerations.md) diff --git a/docs/framework/unmanaged-api/debugging/cordebuggenerationtypes-enumeration.md b/docs/framework/unmanaged-api/debugging/cordebuggenerationtypes-enumeration.md index c0a7a69d8838b..00904f2d152f8 100644 --- a/docs/framework/unmanaged-api/debugging/cordebuggenerationtypes-enumeration.md +++ b/docs/framework/unmanaged-api/debugging/cordebuggenerationtypes-enumeration.md @@ -2,56 +2,56 @@ description: "Learn more about: CorDebugGenerationTypes Enumeration" title: "CorDebugGenerationTypes Enumeration" ms.date: "03/30/2017" -api_name: +api_name: - "CorDebugGenerationTypes" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "CorDebugGenerationTypes" -helpviewer_keywords: +helpviewer_keywords: - "CorDebugGenerationTypes enumeration [.NET Framework debugging]" ms.assetid: 9f25b64f-eedd-4ae5-8b0e-cfdfb9b6c5d8 -topic_type: +topic_type: - "apiref" --- # CorDebugGenerationTypes Enumeration -Specifies the generation of a region of memory on the managed heap. - -## Syntax - -```cpp -typedef enum CorDebugGenerationTypes { - CorDebug_Gen0 = 0, - CorDebug_Gen1 = 1, - CorDebug_Gen2 = 2, - CorDebug_LOH = 3, -} CorDebugRegionTypes; -``` - -## Members - -|Member name|Description| -|-----------------|-----------------| -|`CorDebug_Gen0`|Generation 0.| -|`CorDebug_Gen1`|Generation 1.| -|`CorDebug_Gen2`|Generation 2.| -|`CorDebug_LOH`|The large object heap.| - -## Remarks - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - +Specifies the generation of a region of memory on the managed heap. + +## Syntax + +```cpp +typedef enum CorDebugGenerationTypes { + CorDebug_Gen0 = 0, + CorDebug_Gen1 = 1, + CorDebug_Gen2 = 2, + CorDebug_LOH = 3, +} CorDebugRegionTypes; +``` + +## Members + +|Member name|Description| +|-----------------|-----------------| +|`CorDebug_Gen0`|Generation 0.| +|`CorDebug_Gen1`|Generation 1.| +|`CorDebug_Gen2`|Generation 2.| +|`CorDebug_LOH`|The large object heap.| + +## Remarks + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [Debugging Enumerations](debugging-enumerations.md) diff --git a/docs/framework/unmanaged-api/debugging/cordebugintercept-enumeration.md b/docs/framework/unmanaged-api/debugging/cordebugintercept-enumeration.md index 1a15e1498a707..d8230081941e7 100644 --- a/docs/framework/unmanaged-api/debugging/cordebugintercept-enumeration.md +++ b/docs/framework/unmanaged-api/debugging/cordebugintercept-enumeration.md @@ -2,64 +2,64 @@ description: "Learn more about: CorDebugIntercept Enumeration" title: "CorDebugIntercept Enumeration" ms.date: "03/30/2017" -api_name: +api_name: - "CorDebugIntercept" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "CorDebugIntercept" -helpviewer_keywords: +helpviewer_keywords: - "CorDebugIntercept enumeration [.NET Framework debugging]" ms.assetid: 3d5b642e-7ef2-428b-a5ae-509c35ed461a -topic_type: +topic_type: - "apiref" --- # CorDebugIntercept Enumeration -Indicates the types of code that can be intercepted (that is, stepped into). - -## Syntax - -```cpp -typedef enum CorDebugIntercept { - INTERCEPT_NONE = 0x0, - INTERCEPT_CLASS_INIT = 0x01, - INTERCEPT_EXCEPTION_FILTER = 0x02, - INTERCEPT_SECURITY = 0x04, - INTERCEPT_CONTEXT_POLICY = 0x08, - INTERCEPT_INTERCEPTION = 0x10, - INTERCEPT_ALL = 0xffff -} CorDebugIntercept; -``` - -## Members - -|Member|Description| -|------------|-----------------| -|`INTERCEPT_NONE`|No code can be intercepted.| -|`INTERCEPT_CLASS_INIT`|A constructor can be intercepted.| -|`INTERCEPT_EXCEPTION_FILTER`|An exception filter can be intercepted.| -|`INTERCEPT_SECURITY`|Code that enforces security can be intercepted.| -|`INTERCEPT_CONTEXT_POLICY`|A context policy can be intercepted.| -|`INTERCEPT_INTERCEPTION`|Not used.| -|`INTERCEPT_ALL`|All code can be intercepted.| - -## Remarks +Indicates the types of code that can be intercepted (that is, stepped into). - Use the [ICorDebugStepper::SetInterceptMask](icordebugstepper-setinterceptmask-method.md) method to establish the types of code that can be intercepted. - -## Requirements +## Syntax + +```cpp +typedef enum CorDebugIntercept { + INTERCEPT_NONE = 0x0, + INTERCEPT_CLASS_INIT = 0x01, + INTERCEPT_EXCEPTION_FILTER = 0x02, + INTERCEPT_SECURITY = 0x04, + INTERCEPT_CONTEXT_POLICY = 0x08, + INTERCEPT_INTERCEPTION = 0x10, + INTERCEPT_ALL = 0xffff +} CorDebugIntercept; +``` + +## Members + +|Member|Description| +|------------|-----------------| +|`INTERCEPT_NONE`|No code can be intercepted.| +|`INTERCEPT_CLASS_INIT`|A constructor can be intercepted.| +|`INTERCEPT_EXCEPTION_FILTER`|An exception filter can be intercepted.| +|`INTERCEPT_SECURITY`|Code that enforces security can be intercepted.| +|`INTERCEPT_CONTEXT_POLICY`|A context policy can be intercepted.| +|`INTERCEPT_INTERCEPTION`|Not used.| +|`INTERCEPT_ALL`|All code can be intercepted.| + +## Remarks + + Use the [ICorDebugStepper::SetInterceptMask](icordebugstepper-setinterceptmask-method.md) method to establish the types of code that can be intercepted. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - ## See also - [Debugging Enumerations](debugging-enumerations.md) diff --git a/docs/framework/unmanaged-api/debugging/cordebuginterfaceversion-enumeration.md b/docs/framework/unmanaged-api/debugging/cordebuginterfaceversion-enumeration.md index 07b5beedb288e..c3ea31c940ac0 100644 --- a/docs/framework/unmanaged-api/debugging/cordebuginterfaceversion-enumeration.md +++ b/docs/framework/unmanaged-api/debugging/cordebuginterfaceversion-enumeration.md @@ -2,248 +2,248 @@ description: "Learn more about: CorDebugInterfaceVersion Enumeration" title: "CorDebugInterfaceVersion Enumeration" ms.date: "03/30/2017" -api_name: +api_name: - "CorDebugInterfaceVersion" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "CorDebugInterfaceVersion" -helpviewer_keywords: +helpviewer_keywords: - "CorDebugInterfaceVersion enumeration [.NET Framework debugging]" ms.assetid: 7d1e6cd9-2a15-41c6-9b68-008705a4ed90 -topic_type: +topic_type: - "apiref" --- # CorDebugInterfaceVersion Enumeration -Specifies an interface, a version of the .NET Framework, or a version of the .NET Framework in which an interface was introduced. - -## Syntax - -```cpp -typedef enum CorDebugInterfaceVersion { - - CorDebugInvalidVersion = 0, - CorDebugVersion_1_0 = CorDebugInvalidVersion + 1, - - ver_ICorDebugManagedCallback = CorDebugVersion_1_0, - ver_ICorDebugUnmanagedCallback = CorDebugVersion_1_0, - ver_ICorDebug = CorDebugVersion_1_0, - ver_ICorDebugController = CorDebugVersion_1_0, - ver_ICorDebugAppDomain = CorDebugVersion_1_0, - ver_ICorDebugAssembly = CorDebugVersion_1_0, - ver_ICorDebugProcess = CorDebugVersion_1_0, - ver_ICorDebugBreakpoint = CorDebugVersion_1_0, - ver_ICorDebugFunctionBreakpoint = CorDebugVersion_1_0, - ver_ICorDebugModuleBreakpoint = CorDebugVersion_1_0, - ver_ICorDebugValueBreakpoint = CorDebugVersion_1_0, - ver_ICorDebugStepper = CorDebugVersion_1_0, - ver_ICorDebugRegisterSet = CorDebugVersion_1_0, - ver_ICorDebugThread = CorDebugVersion_1_0, - ver_ICorDebugChain = CorDebugVersion_1_0, - ver_ICorDebugFrame = CorDebugVersion_1_0, - ver_ICorDebugILFrame = CorDebugVersion_1_0, - ver_ICorDebugNativeFrame = CorDebugVersion_1_0, - ver_ICorDebugModule = CorDebugVersion_1_0, - ver_ICorDebugFunction = CorDebugVersion_1_0, - ver_ICorDebugCode = CorDebugVersion_1_0, - ver_ICorDebugClass = CorDebugVersion_1_0, - ver_ICorDebugEval = CorDebugVersion_1_0, - ver_ICorDebugValue = CorDebugVersion_1_0, - ver_ICorDebugGenericValue = CorDebugVersion_1_0, - ver_ICorDebugReferenceValue = CorDebugVersion_1_0, - ver_ICorDebugHeapValue = CorDebugVersion_1_0, - ver_ICorDebugObjectValue = CorDebugVersion_1_0, - ver_ICorDebugBoxValue = CorDebugVersion_1_0, - ver_ICorDebugStringValue = CorDebugVersion_1_0, - ver_ICorDebugArrayValue = CorDebugVersion_1_0, - ver_ICorDebugContext = CorDebugVersion_1_0, - ver_ICorDebugEnum = CorDebugVersion_1_0, - ver_ICorDebugObjectEnum = CorDebugVersion_1_0, - ver_ICorDebugBreakpointEnum = CorDebugVersion_1_0, - ver_ICorDebugStepperEnum = CorDebugVersion_1_0, - ver_ICorDebugProcessEnum = CorDebugVersion_1_0, - ver_ICorDebugThreadEnum = CorDebugVersion_1_0, - ver_ICorDebugFrameEnum = CorDebugVersion_1_0, - ver_ICorDebugChainEnum = CorDebugVersion_1_0, - ver_ICorDebugModuleEnum = CorDebugVersion_1_0, - ver_ICorDebugValueEnum = CorDebugVersion_1_0, - ver_ICorDebugCodeEnum = CorDebugVersion_1_0, - ver_ICorDebugTypeEnum = CorDebugVersion_1_0, - ver_ICorDebugErrorInfoEnum = CorDebugVersion_1_0, - ver_ICorDebugAppDomainEnum = CorDebugVersion_1_0, - ver_ICorDebugAssemblyEnum = CorDebugVersion_1_0, +Specifies an interface, a version of the .NET Framework, or a version of the .NET Framework in which an interface was introduced. + +## Syntax + +```cpp +typedef enum CorDebugInterfaceVersion { + + CorDebugInvalidVersion = 0, + CorDebugVersion_1_0 = CorDebugInvalidVersion + 1, + + ver_ICorDebugManagedCallback = CorDebugVersion_1_0, + ver_ICorDebugUnmanagedCallback = CorDebugVersion_1_0, + ver_ICorDebug = CorDebugVersion_1_0, + ver_ICorDebugController = CorDebugVersion_1_0, + ver_ICorDebugAppDomain = CorDebugVersion_1_0, + ver_ICorDebugAssembly = CorDebugVersion_1_0, + ver_ICorDebugProcess = CorDebugVersion_1_0, + ver_ICorDebugBreakpoint = CorDebugVersion_1_0, + ver_ICorDebugFunctionBreakpoint = CorDebugVersion_1_0, + ver_ICorDebugModuleBreakpoint = CorDebugVersion_1_0, + ver_ICorDebugValueBreakpoint = CorDebugVersion_1_0, + ver_ICorDebugStepper = CorDebugVersion_1_0, + ver_ICorDebugRegisterSet = CorDebugVersion_1_0, + ver_ICorDebugThread = CorDebugVersion_1_0, + ver_ICorDebugChain = CorDebugVersion_1_0, + ver_ICorDebugFrame = CorDebugVersion_1_0, + ver_ICorDebugILFrame = CorDebugVersion_1_0, + ver_ICorDebugNativeFrame = CorDebugVersion_1_0, + ver_ICorDebugModule = CorDebugVersion_1_0, + ver_ICorDebugFunction = CorDebugVersion_1_0, + ver_ICorDebugCode = CorDebugVersion_1_0, + ver_ICorDebugClass = CorDebugVersion_1_0, + ver_ICorDebugEval = CorDebugVersion_1_0, + ver_ICorDebugValue = CorDebugVersion_1_0, + ver_ICorDebugGenericValue = CorDebugVersion_1_0, + ver_ICorDebugReferenceValue = CorDebugVersion_1_0, + ver_ICorDebugHeapValue = CorDebugVersion_1_0, + ver_ICorDebugObjectValue = CorDebugVersion_1_0, + ver_ICorDebugBoxValue = CorDebugVersion_1_0, + ver_ICorDebugStringValue = CorDebugVersion_1_0, + ver_ICorDebugArrayValue = CorDebugVersion_1_0, + ver_ICorDebugContext = CorDebugVersion_1_0, + ver_ICorDebugEnum = CorDebugVersion_1_0, + ver_ICorDebugObjectEnum = CorDebugVersion_1_0, + ver_ICorDebugBreakpointEnum = CorDebugVersion_1_0, + ver_ICorDebugStepperEnum = CorDebugVersion_1_0, + ver_ICorDebugProcessEnum = CorDebugVersion_1_0, + ver_ICorDebugThreadEnum = CorDebugVersion_1_0, + ver_ICorDebugFrameEnum = CorDebugVersion_1_0, + ver_ICorDebugChainEnum = CorDebugVersion_1_0, + ver_ICorDebugModuleEnum = CorDebugVersion_1_0, + ver_ICorDebugValueEnum = CorDebugVersion_1_0, + ver_ICorDebugCodeEnum = CorDebugVersion_1_0, + ver_ICorDebugTypeEnum = CorDebugVersion_1_0, + ver_ICorDebugErrorInfoEnum = CorDebugVersion_1_0, + ver_ICorDebugAppDomainEnum = CorDebugVersion_1_0, + ver_ICorDebugAssemblyEnum = CorDebugVersion_1_0, ver_ICorDebugEditAndContinueErrorInfo - = CorDebugVersion_1_0, + = CorDebugVersion_1_0, ver_ICorDebugEditAndContinueSnapshot - = CorDebugVersion_1_0, - - CorDebugVersion_1_1 = CorDebugVersion_1_0 + 1, - // No interface definitions in version 1.1. - - CorDebugVersion_2_0 = CorDebugVersion_1_1 + 1, - - ver_ICorDebugManagedCallback2 = CorDebugVersion_2_0, - ver_ICorDebugAppDomain2 = CorDebugVersion_2_0, - ver_ICorDebugProcess2 = CorDebugVersion_2_0, - ver_ICorDebugStepper2 = CorDebugVersion_2_0, - ver_ICorDebugRegisterSet2 = CorDebugVersion_2_0, - ver_ICorDebugThread2 = CorDebugVersion_2_0, - ver_ICorDebugILFrame2 = CorDebugVersion_2_0, - ver_ICorDebugModule2 = CorDebugVersion_2_0, - ver_ICorDebugFunction2 = CorDebugVersion_2_0, - ver_ICorDebugCode2 = CorDebugVersion_2_0, - ver_ICorDebugClass2 = CorDebugVersion_2_0, - ver_ICorDebugValue2 = CorDebugVersion_2_0, - ver_ICorDebugEval2 = CorDebugVersion_2_0, - ver_ICorDebugObjectValue2 = CorDebugVersion_2_0, - - // CLR v4 - next major CLR version after CLR v2 - // Includes Silverlight 4 - CorDebugVersion_4_0 = CorDebugVersion_2_0 + 1, - - ver_ICorDebugThread3 = CorDebugVersion_4_0, - ver_ICorDebugThread4 = CorDebugVersion_4_0, - ver_ICorDebugStackWalk = CorDebugVersion_4_0, - ver_ICorDebugNativeFrame2 = CorDebugVersion_4_0, - ver_ICorDebugInternalFrame2 = CorDebugVersion_4_0, - ver_ICorDebugRuntimeUnwindableFrame = CorDebugVersion_4_0, - ver_ICorDebugHeapValue3 = CorDebugVersion_4_0, - ver_ICorDebugBlockingObjectEnum = CorDebugVersion_4_0, - ver_ICorDebugValue3 = CorDebugVersion_4_0, - - CorDebugVersion_4_5 = CorDebugVersion_4_0 + 1, - - ver_ICorDebugComObjectValue = CorDebugVersion_4_5, - ver_ICorDebugAppDomain3 = CorDebugVersion_4_5, - ver_ICorDebugCode3 = CorDebugVersion_4_5, - ver_ICorDebugILFrame3 = CorDebugVersion_4_5, - - CorDebugLatestVersion = CorDebugVersion_4_5 - -} CorDebugInterfaceVersion; -``` - -## Members - - The following table provides links from each enumeration value to the corresponding interface. In addition, the table indicates the first version of the .NET Framework that the interface was supported in. - -|Member|Specifies|.NET Framework version| -|------------|---------------|----------------------------| -|`CorDebugInvalidVersion`|The version of the .NET Framework is invalid.|-| -|`CorDebugVersion_1_0`|The version of the .NET Framework, including all its service packs, is 1.0.|1.0| -|`CorDebugVersion_1_1`|The version of the .NET Framework, including all service packs, is 1.1.|1.1| -|`CorDebugVersion_2_0`|The version of the .NET Framework, including all service packs, is 2.0.|2.0| -|`CorDebugVersion_4_0`|The version of the .NET Framework, including all service packs, is 4.|4| -|`CorDebugVersion_4_5`|The version of the .NET Framework, including all service packs, is 4.5.|4.5| -|`ver_ICorDebugManagedCallback`|[ICorDebugManagedCallback](icordebugmanagedcallback-interface.md)|1.0| -|`ver_ICorDebugUnmanagedCallback`|[ICorDebugUnmanagedCallback](icordebugunmanagedcallback-interface.md)|1.0| -|`ver_ICorDebug`|[ICorDebug](icordebug-interface.md)|1.0| -|`ver_ICorDebugController`|[ICorDebugController](icordebugcontroller-interface.md)|1.0| -|`ver_ICorDebugAppDomain`|[ICorDebugAppDomain](icordebugappdomain-interface.md)|1.0| -|`ver_ICorDebugAssembly`|[ICorDebugAssembly](icordebugassembly-interface.md)|1.0| -|`ver_ICorDebugProcess`|[ICorDebugProcess](icordebugprocess-interface.md)|1.0| -|`ver_ICorDebugBreakpoint`|[ICorDebugBreakpoint](icordebugbreakpoint-interface.md)|1.0| -|`ver_ICorDebugFunctionBreakpoint`|[ICorDebugFunctionBreakpoint](icordebugfunctionbreakpoint-interface.md)|1.0| -|`ver_ICorDebugModuleBreakpoint`|[ICorDebugModuleBreakpoint](icordebugmodulebreakpoint-interface.md)|1.0| -|`ver_ICorDebugValueBreakpoint`|[ICorDebugValueBreakpoint](icordebugvaluebreakpoint-interface.md)|1.0| -|`ver_ICorDebugStepper`|[ICorDebugStepper](icordebugstepper-interface.md)|1.0| -|`ver_ICorDebugRegisterSet`|[ICorDebugRegisterSet](icordebugregisterset-interface.md)|1.0| -|`ver_ICorDebugThread`|[ICorDebugThread](icordebugthread-interface.md)|1.0| -|`ver_ICorDebugChain`|[ICorDebugChain](icordebugchain-interface.md)|1.0| -|`ver_ICorDebugFrame`|[ICorDebugFrame](icordebugframe-interface.md)|1.0| -|`ver_ICorDebugILFrame`|[ICorDebugILFrame](icordebugilframe-interface.md)|1.0| -|`ver_ICorDebugNativeFrame`|[ICorDebugNativeFrame](icordebugnativeframe-interface.md)|1.0| -|`ver_ICorDebugModule`|[ICorDebugModule](icordebugmodule-interface.md)|1.0| -|`ver_ICorDebugFunction`|[ICorDebugFunction](icordebugfunction-interface1.md)|1.0| -|`ver_ICorDebugCode`|[ICorDebugCode](icordebugcode-interface1.md)|1.0| -|`ver_ICorDebugClass`|[ICorDebugClass](icordebugclass-interface.md)|1.0| -|`ver_ICorDebugEval`|[ICorDebugEval](icordebugeval-interface.md)|1.0| -|`ver_ICorDebugValue`|[ICorDebugValue](icordebugvalue-interface.md)|1.0| -|`ver_ICorDebugGenericValue`|[ICorDebugGenericValue](icordebuggenericvalue-interface.md)|1.0| -|`ver_ICorDebugReferenceValue`|[ICorDebugReferenceValue](icordebugreferencevalue-interface.md)|1.0| -|`ver_ICorDebugHeapValue`|[ICorDebugHeapValue](icordebugheapvalue-interface.md)|1.0| -|`ver_ICorDebugObjectValue`|[ICorDebugObjectValue](icordebugobjectvalue-interface.md)|1.0| -|`ver_ICorDebugBoxValue`|[ICorDebugBoxValue](icordebugboxvalue-interface.md)|1.0| -|`ver_ICorDebugStringValue`|[ICorDebugStringValue](icordebugstringvalue-interface.md)|1.0| -|`ver_ICorDebugArrayValue`|[ICorDebugArrayValue](icordebugarrayvalue-interface.md)|1.0| -|`ver_ICorDebugContext`|[ICorDebugContext](icordebugcontext-interface.md)|1.0| -|`ver_ICorDebugEnum`|[ICorDebugEnum](icordebugenum-interface1.md)|1.0| -|`ver_ICorDebugObjectEnum`|[ICorDebugObjectEnum](icordebugobjectenum-interface.md)|1.0| -|`ver_ICorDebugBreakpointEnum`|[ICorDebugBreakpointEnum](icordebugbreakpointenum-interface.md)|1.0| -|`ver_ICorDebugStepperEnum`|[ICorDebugStepperEnum](icordebugstepperenum-interface.md)|1.0| -|`ver_ICorDebugProcessEnum`|[ICorDebugProcessEnum](icordebugprocessenum-interface.md)|1.0| -|`ver_ICorDebugThreadEnum`|[ICorDebugThreadEnum](icordebugthreadenum-interface1.md)|1.0| -|`ver_ICorDebugFrameEnum`|[ICorDebugFrameEnum](icordebugframeenum-interface.md)|1.0| -|`ver_ICorDebugChainEnum`|[ICorDebugChainEnum](icordebugchainenum-interface.md)|1.0| -|`ver_ICorDebugModuleEnum`|[ICorDebugModuleEnum](icordebugmoduleenum-interface.md)|1.0| -|`ver_ICorDebugValueEnum`|[ICorDebugValueEnum](icordebugvalueenum-interface.md)|1.0| -|`ver_ICorDebugCodeEnum`|[ICorDebugCodeEnum](icordebugcodeenum-interface.md)|1.0| -|`ver_ICorDebugTypeEnum`|[ICorDebugTypeEnum](icordebugtypeenum-interface.md)|1.0| -|`ver_ICorDebugErrorInfoEnum`|[ICorDebugErrorInfoEnum](icordebugerrorinfoenum-interface.md)|1.0| -|`ver_ICorDebugAppDomainEnum`|[ICorDebugAppDomainEnum](icordebugappdomainenum-interface.md)|1.0| -|`ver_ICorDebugAssemblyEnum`|[ICorDebugAssemblyEnum](icordebugassemblyenum-interface.md)|1.0| -|`ver_ICorDebugEditAndContinueErrorInfo`|[ICorDebugEditAndContinueErrorInfo](icordebugeditandcontinueerrorinfo-interface.md)|1.0| -|`ver_ICorDebugEditAndContinueSnapshot`|[ICorDebugEditAndContinueSnapshot](icordebugeditandcontinuesnapshot-interface.md)|1.0| -|`ver_ICorDebugManagedCallback2`|[ICorDebugManagedCallback2](icordebugmanagedcallback2-interface.md)|2.0| -|`ver_ICorDebugAppDomain2`|[ICorDebugAppDomain2](icordebugappdomain2-interface.md)|2.0| -|`ver_ICorDebugProcess2`|[ICorDebugProcess2](icordebugprocess2-interface1.md)|2.0| -|`ver_ICorDebugStepper2`|[ICorDebugStepper2](icordebugstepper2-interface1.md)|2.0| -|`ver_ICorDebugRegisterSet2`|[ICorDebugRegisterSet2](icordebugregisterset2-interface.md)|2.0| -|`ver_ICorDebugThread2`|[ICorDebugThread2](icordebugthread2-interface.md)|2.0| -|`ver_ICorDebugILFrame2`|[ICorDebugILFrame2](icordebugilframe2-interface.md)|2.0| -|`ver_ICorDebugModule2`|[ICorDebugModule2](icordebugmodule2-interface.md)|2.0| -|`ver_ICorDebugFunction2`|[ICorDebugFunction2](icordebugfunction2-interface.md)|2.0| -|`ver_ICorDebugCode2`|[ICorDebugCode2](icordebugcode2-interface.md)|2.0| -|`ver_ICorDebugClass2`|"ICorDebugClass2"|2.0| -|`ver_ICorDebugValue2`|"ICorDebugValue2"|2.0| -|`ver_ICorDebugEval2`|The "ICorDebugEval2".|2.0| -|`ver_ICorDebugObjectValue2`|"ICorDebugObjectValue2"|2.0| -|`ver_ICorDebugThread3`|[ICorDebugThread3](icordebugthread3-interface.md)|4| -|`ver_ICorDebugThread4`|[ICorDebugThread4](icordebugthread4-interface.md)|4| -|`ver_ICorDebugStackWalk`|[ICorDebugStackWalk](icordebugstackwalk-interface.md)|4| -|`ver_ICorDebugNativeFrame2`|[ICorDebugNativeFrame2](icordebugnativeframe2-interface.md)|4| -|`ver_ICorDebugInternalFrame2`|[ICorDebugInternalFrame2](icordebuginternalframe2-interface.md)|4| -|`ver_ICorDebugRuntimeUnwindableFrame`|[ICorDebugRuntimeUnwindableFrame](icordebugruntimeunwindableframe-interface.md)|4| -|`ver_ICorDebugHeapValue3`|[ICorDebugHeapValue3 Interface](icordebugheapvalue3-interface.md)|4| -|`ver_ICorDebugBlockingObjectEnum`|[ICorDebugBlockingObjectEnum Interface](icordebugblockingobjectenum-interface.md)|4| -|`ver_ICorDebugValue3`|[ICorDebugValue3](icordebugvalue3-interface.md)|4| -|`ver_ICorDebugComObjectValue`|[ICorDebugComObjectValue](icordebugcomobjectvalue-interface.md)|4.5| -|`ver_ICorDebugAppDomain3`|[ICorDebugAppDomain3](icordebugappdomain3-interface.md)|4.5| -|`ver_ICorDebugCode3`|[ICorDebugCode3](icordebugcode3-interface.md)|4.5| -|`ver_ICorDebugILFrame3`|[ICorDebugILFrame3](icordebugilframe3-interface.md)|4.5| -|`CorDebugLatestVersion`|The version of the .NET Framework, including all of its service packs, is the latest version.|-| - -## Remarks - - A debugger can use the `CorDebugInterfaceVersion` enumeration in the [CreateDebuggingInterfaceFromVersion](../hosting/createdebugginginterfacefromversion-function.md) function to specify the highest version of the .NET Framework that the debugger supports. - -## Interface Names - - The number that appears at the end of the interface names in the debugging API (for example, the "3" in `ICorDebugThread3`) specifies the version of the interface, not the version of the .NET Framework. All interface names in the debugging API include version numbers except for interfaces that were introduced in the .NET Framework version 1. Any correspondence between interface version numbers and.NET Framework version numbers are coincidental. - -- Interfaces that were introduced in the .NET Framework version 1.0 do not include numbers, because they are all implicitly version 1. - -- The .NET Framework version 1.1 uses version 1.0 interfaces, and does not introduce any new debugging interfaces. - -- The 14 debugging interfaces introduced in the .NET Framework version 2.0 are logical extensions of their version 1 counterparts and include the number "2" in their names. - -- The .NET Framework versions 3.0 and 3.5 use the existing .NET Framework 2.0 interfaces, and do not introduce any new interfaces. - -- The .NET Framework 4 introduces a mix of interface versions. For example, both `ICorDebugThread3` and `ICorDebugThread4` appear as the third and fourth versions of the `ICorDebugThread` interface. The .NET Framework 4 also introduces the first version of the `ICorDebugStackWalk` interface and the second version of the `ICorDebugNativeFrame` interface (`ICorDebugNativeFrame2`). - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - + = CorDebugVersion_1_0, + + CorDebugVersion_1_1 = CorDebugVersion_1_0 + 1, + // No interface definitions in version 1.1. + + CorDebugVersion_2_0 = CorDebugVersion_1_1 + 1, + + ver_ICorDebugManagedCallback2 = CorDebugVersion_2_0, + ver_ICorDebugAppDomain2 = CorDebugVersion_2_0, + ver_ICorDebugProcess2 = CorDebugVersion_2_0, + ver_ICorDebugStepper2 = CorDebugVersion_2_0, + ver_ICorDebugRegisterSet2 = CorDebugVersion_2_0, + ver_ICorDebugThread2 = CorDebugVersion_2_0, + ver_ICorDebugILFrame2 = CorDebugVersion_2_0, + ver_ICorDebugModule2 = CorDebugVersion_2_0, + ver_ICorDebugFunction2 = CorDebugVersion_2_0, + ver_ICorDebugCode2 = CorDebugVersion_2_0, + ver_ICorDebugClass2 = CorDebugVersion_2_0, + ver_ICorDebugValue2 = CorDebugVersion_2_0, + ver_ICorDebugEval2 = CorDebugVersion_2_0, + ver_ICorDebugObjectValue2 = CorDebugVersion_2_0, + + // CLR v4 - next major CLR version after CLR v2 + // Includes Silverlight 4 + CorDebugVersion_4_0 = CorDebugVersion_2_0 + 1, + + ver_ICorDebugThread3 = CorDebugVersion_4_0, + ver_ICorDebugThread4 = CorDebugVersion_4_0, + ver_ICorDebugStackWalk = CorDebugVersion_4_0, + ver_ICorDebugNativeFrame2 = CorDebugVersion_4_0, + ver_ICorDebugInternalFrame2 = CorDebugVersion_4_0, + ver_ICorDebugRuntimeUnwindableFrame = CorDebugVersion_4_0, + ver_ICorDebugHeapValue3 = CorDebugVersion_4_0, + ver_ICorDebugBlockingObjectEnum = CorDebugVersion_4_0, + ver_ICorDebugValue3 = CorDebugVersion_4_0, + + CorDebugVersion_4_5 = CorDebugVersion_4_0 + 1, + + ver_ICorDebugComObjectValue = CorDebugVersion_4_5, + ver_ICorDebugAppDomain3 = CorDebugVersion_4_5, + ver_ICorDebugCode3 = CorDebugVersion_4_5, + ver_ICorDebugILFrame3 = CorDebugVersion_4_5, + + CorDebugLatestVersion = CorDebugVersion_4_5 + +} CorDebugInterfaceVersion; +``` + +## Members + + The following table provides links from each enumeration value to the corresponding interface. In addition, the table indicates the first version of the .NET Framework that the interface was supported in. + +|Member|Specifies|.NET Framework version| +|------------|---------------|----------------------------| +|`CorDebugInvalidVersion`|The version of the .NET Framework is invalid.|-| +|`CorDebugVersion_1_0`|The version of the .NET Framework, including all its service packs, is 1.0.|1.0| +|`CorDebugVersion_1_1`|The version of the .NET Framework, including all service packs, is 1.1.|1.1| +|`CorDebugVersion_2_0`|The version of the .NET Framework, including all service packs, is 2.0.|2.0| +|`CorDebugVersion_4_0`|The version of the .NET Framework, including all service packs, is 4.|4| +|`CorDebugVersion_4_5`|The version of the .NET Framework, including all service packs, is 4.5.|4.5| +|`ver_ICorDebugManagedCallback`|[ICorDebugManagedCallback](icordebugmanagedcallback-interface.md)|1.0| +|`ver_ICorDebugUnmanagedCallback`|[ICorDebugUnmanagedCallback](icordebugunmanagedcallback-interface.md)|1.0| +|`ver_ICorDebug`|[ICorDebug](icordebug-interface.md)|1.0| +|`ver_ICorDebugController`|[ICorDebugController](icordebugcontroller-interface.md)|1.0| +|`ver_ICorDebugAppDomain`|[ICorDebugAppDomain](icordebugappdomain-interface.md)|1.0| +|`ver_ICorDebugAssembly`|[ICorDebugAssembly](icordebugassembly-interface.md)|1.0| +|`ver_ICorDebugProcess`|[ICorDebugProcess](icordebugprocess-interface.md)|1.0| +|`ver_ICorDebugBreakpoint`|[ICorDebugBreakpoint](icordebugbreakpoint-interface.md)|1.0| +|`ver_ICorDebugFunctionBreakpoint`|[ICorDebugFunctionBreakpoint](icordebugfunctionbreakpoint-interface.md)|1.0| +|`ver_ICorDebugModuleBreakpoint`|[ICorDebugModuleBreakpoint](icordebugmodulebreakpoint-interface.md)|1.0| +|`ver_ICorDebugValueBreakpoint`|[ICorDebugValueBreakpoint](icordebugvaluebreakpoint-interface.md)|1.0| +|`ver_ICorDebugStepper`|[ICorDebugStepper](icordebugstepper-interface.md)|1.0| +|`ver_ICorDebugRegisterSet`|[ICorDebugRegisterSet](icordebugregisterset-interface.md)|1.0| +|`ver_ICorDebugThread`|[ICorDebugThread](icordebugthread-interface.md)|1.0| +|`ver_ICorDebugChain`|[ICorDebugChain](icordebugchain-interface.md)|1.0| +|`ver_ICorDebugFrame`|[ICorDebugFrame](icordebugframe-interface.md)|1.0| +|`ver_ICorDebugILFrame`|[ICorDebugILFrame](icordebugilframe-interface.md)|1.0| +|`ver_ICorDebugNativeFrame`|[ICorDebugNativeFrame](icordebugnativeframe-interface.md)|1.0| +|`ver_ICorDebugModule`|[ICorDebugModule](icordebugmodule-interface.md)|1.0| +|`ver_ICorDebugFunction`|[ICorDebugFunction](icordebugfunction-interface1.md)|1.0| +|`ver_ICorDebugCode`|[ICorDebugCode](icordebugcode-interface1.md)|1.0| +|`ver_ICorDebugClass`|[ICorDebugClass](icordebugclass-interface.md)|1.0| +|`ver_ICorDebugEval`|[ICorDebugEval](icordebugeval-interface.md)|1.0| +|`ver_ICorDebugValue`|[ICorDebugValue](icordebugvalue-interface.md)|1.0| +|`ver_ICorDebugGenericValue`|[ICorDebugGenericValue](icordebuggenericvalue-interface.md)|1.0| +|`ver_ICorDebugReferenceValue`|[ICorDebugReferenceValue](icordebugreferencevalue-interface.md)|1.0| +|`ver_ICorDebugHeapValue`|[ICorDebugHeapValue](icordebugheapvalue-interface.md)|1.0| +|`ver_ICorDebugObjectValue`|[ICorDebugObjectValue](icordebugobjectvalue-interface.md)|1.0| +|`ver_ICorDebugBoxValue`|[ICorDebugBoxValue](icordebugboxvalue-interface.md)|1.0| +|`ver_ICorDebugStringValue`|[ICorDebugStringValue](icordebugstringvalue-interface.md)|1.0| +|`ver_ICorDebugArrayValue`|[ICorDebugArrayValue](icordebugarrayvalue-interface.md)|1.0| +|`ver_ICorDebugContext`|[ICorDebugContext](icordebugcontext-interface.md)|1.0| +|`ver_ICorDebugEnum`|[ICorDebugEnum](icordebugenum-interface1.md)|1.0| +|`ver_ICorDebugObjectEnum`|[ICorDebugObjectEnum](icordebugobjectenum-interface.md)|1.0| +|`ver_ICorDebugBreakpointEnum`|[ICorDebugBreakpointEnum](icordebugbreakpointenum-interface.md)|1.0| +|`ver_ICorDebugStepperEnum`|[ICorDebugStepperEnum](icordebugstepperenum-interface.md)|1.0| +|`ver_ICorDebugProcessEnum`|[ICorDebugProcessEnum](icordebugprocessenum-interface.md)|1.0| +|`ver_ICorDebugThreadEnum`|[ICorDebugThreadEnum](icordebugthreadenum-interface1.md)|1.0| +|`ver_ICorDebugFrameEnum`|[ICorDebugFrameEnum](icordebugframeenum-interface.md)|1.0| +|`ver_ICorDebugChainEnum`|[ICorDebugChainEnum](icordebugchainenum-interface.md)|1.0| +|`ver_ICorDebugModuleEnum`|[ICorDebugModuleEnum](icordebugmoduleenum-interface.md)|1.0| +|`ver_ICorDebugValueEnum`|[ICorDebugValueEnum](icordebugvalueenum-interface.md)|1.0| +|`ver_ICorDebugCodeEnum`|[ICorDebugCodeEnum](icordebugcodeenum-interface.md)|1.0| +|`ver_ICorDebugTypeEnum`|[ICorDebugTypeEnum](icordebugtypeenum-interface.md)|1.0| +|`ver_ICorDebugErrorInfoEnum`|[ICorDebugErrorInfoEnum](icordebugerrorinfoenum-interface.md)|1.0| +|`ver_ICorDebugAppDomainEnum`|[ICorDebugAppDomainEnum](icordebugappdomainenum-interface.md)|1.0| +|`ver_ICorDebugAssemblyEnum`|[ICorDebugAssemblyEnum](icordebugassemblyenum-interface.md)|1.0| +|`ver_ICorDebugEditAndContinueErrorInfo`|[ICorDebugEditAndContinueErrorInfo](icordebugeditandcontinueerrorinfo-interface.md)|1.0| +|`ver_ICorDebugEditAndContinueSnapshot`|[ICorDebugEditAndContinueSnapshot](icordebugeditandcontinuesnapshot-interface.md)|1.0| +|`ver_ICorDebugManagedCallback2`|[ICorDebugManagedCallback2](icordebugmanagedcallback2-interface.md)|2.0| +|`ver_ICorDebugAppDomain2`|[ICorDebugAppDomain2](icordebugappdomain2-interface.md)|2.0| +|`ver_ICorDebugProcess2`|[ICorDebugProcess2](icordebugprocess2-interface1.md)|2.0| +|`ver_ICorDebugStepper2`|[ICorDebugStepper2](icordebugstepper2-interface1.md)|2.0| +|`ver_ICorDebugRegisterSet2`|[ICorDebugRegisterSet2](icordebugregisterset2-interface.md)|2.0| +|`ver_ICorDebugThread2`|[ICorDebugThread2](icordebugthread2-interface.md)|2.0| +|`ver_ICorDebugILFrame2`|[ICorDebugILFrame2](icordebugilframe2-interface.md)|2.0| +|`ver_ICorDebugModule2`|[ICorDebugModule2](icordebugmodule2-interface.md)|2.0| +|`ver_ICorDebugFunction2`|[ICorDebugFunction2](icordebugfunction2-interface.md)|2.0| +|`ver_ICorDebugCode2`|[ICorDebugCode2](icordebugcode2-interface.md)|2.0| +|`ver_ICorDebugClass2`|"ICorDebugClass2"|2.0| +|`ver_ICorDebugValue2`|"ICorDebugValue2"|2.0| +|`ver_ICorDebugEval2`|The "ICorDebugEval2".|2.0| +|`ver_ICorDebugObjectValue2`|"ICorDebugObjectValue2"|2.0| +|`ver_ICorDebugThread3`|[ICorDebugThread3](icordebugthread3-interface.md)|4| +|`ver_ICorDebugThread4`|[ICorDebugThread4](icordebugthread4-interface.md)|4| +|`ver_ICorDebugStackWalk`|[ICorDebugStackWalk](icordebugstackwalk-interface.md)|4| +|`ver_ICorDebugNativeFrame2`|[ICorDebugNativeFrame2](icordebugnativeframe2-interface.md)|4| +|`ver_ICorDebugInternalFrame2`|[ICorDebugInternalFrame2](icordebuginternalframe2-interface.md)|4| +|`ver_ICorDebugRuntimeUnwindableFrame`|[ICorDebugRuntimeUnwindableFrame](icordebugruntimeunwindableframe-interface.md)|4| +|`ver_ICorDebugHeapValue3`|[ICorDebugHeapValue3 Interface](icordebugheapvalue3-interface.md)|4| +|`ver_ICorDebugBlockingObjectEnum`|[ICorDebugBlockingObjectEnum Interface](icordebugblockingobjectenum-interface.md)|4| +|`ver_ICorDebugValue3`|[ICorDebugValue3](icordebugvalue3-interface.md)|4| +|`ver_ICorDebugComObjectValue`|[ICorDebugComObjectValue](icordebugcomobjectvalue-interface.md)|4.5| +|`ver_ICorDebugAppDomain3`|[ICorDebugAppDomain3](icordebugappdomain3-interface.md)|4.5| +|`ver_ICorDebugCode3`|[ICorDebugCode3](icordebugcode3-interface.md)|4.5| +|`ver_ICorDebugILFrame3`|[ICorDebugILFrame3](icordebugilframe3-interface.md)|4.5| +|`CorDebugLatestVersion`|The version of the .NET Framework, including all of its service packs, is the latest version.|-| + +## Remarks + + A debugger can use the `CorDebugInterfaceVersion` enumeration in the [CreateDebuggingInterfaceFromVersion](../hosting/createdebugginginterfacefromversion-function.md) function to specify the highest version of the .NET Framework that the debugger supports. + +## Interface Names + + The number that appears at the end of the interface names in the debugging API (for example, the "3" in `ICorDebugThread3`) specifies the version of the interface, not the version of the .NET Framework. All interface names in the debugging API include version numbers except for interfaces that were introduced in the .NET Framework version 1. Any correspondence between interface version numbers and.NET Framework version numbers are coincidental. + +- Interfaces that were introduced in the .NET Framework version 1.0 do not include numbers, because they are all implicitly version 1. + +- The .NET Framework version 1.1 uses version 1.0 interfaces, and does not introduce any new debugging interfaces. + +- The 14 debugging interfaces introduced in the .NET Framework version 2.0 are logical extensions of their version 1 counterparts and include the number "2" in their names. + +- The .NET Framework versions 3.0 and 3.5 use the existing .NET Framework 2.0 interfaces, and do not introduce any new interfaces. + +- The .NET Framework 4 introduces a mix of interface versions. For example, both `ICorDebugThread3` and `ICorDebugThread4` appear as the third and fourth versions of the `ICorDebugThread` interface. The .NET Framework 4 also introduces the first version of the `ICorDebugStackWalk` interface and the second version of the `ICorDebugNativeFrame` interface (`ICorDebugNativeFrame2`). + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [Debugging Enumerations](debugging-enumerations.md) diff --git a/docs/framework/unmanaged-api/debugging/cordebugmdaflags-enumeration.md b/docs/framework/unmanaged-api/debugging/cordebugmdaflags-enumeration.md index e33956681497c..dc394f4d6c99c 100644 --- a/docs/framework/unmanaged-api/debugging/cordebugmdaflags-enumeration.md +++ b/docs/framework/unmanaged-api/debugging/cordebugmdaflags-enumeration.md @@ -2,52 +2,52 @@ description: "Learn more about: CorDebugMDAFlags Enumeration" title: "CorDebugMDAFlags Enumeration" ms.date: "03/30/2017" -api_name: +api_name: - "CorDebugMDAFlags" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "CorDebugMDAFlags" -helpviewer_keywords: +helpviewer_keywords: - "CorDebugMDAFlags enumeration [.NET Framework debugging]" ms.assetid: 7c0c92fe-8bd2-477f-b307-aca0143732ca -topic_type: +topic_type: - "apiref" --- # CorDebugMDAFlags Enumeration -Specifies the status of the thread on which the managed debugging assistant (MDA) is fired. - -## Syntax - -```cpp -typedef enum CorDebugMDAFlags { - MDA_FLAG_SLIP = 0x2 -} CorDebugMDAFlags; -``` - -## Members - -|Member|Description| -|------------|-----------------| -|`MDA_FLAG_SLIP`|The thread on which the MDA was fired has slipped since the MDA was fired.| - -## Remarks - - When the call stack no longer describes where the MDA was originally raised, the thread is considered to have *slipped*. This is an unusual circumstance brought about by the thread's execution of an invalid operation upon exiting. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +Specifies the status of the thread on which the managed debugging assistant (MDA) is fired. + +## Syntax + +```cpp +typedef enum CorDebugMDAFlags { + MDA_FLAG_SLIP = 0x2 +} CorDebugMDAFlags; +``` + +## Members + +|Member|Description| +|------------|-----------------| +|`MDA_FLAG_SLIP`|The thread on which the MDA was fired has slipped since the MDA was fired.| + +## Remarks + + When the call stack no longer describes where the MDA was originally raised, the thread is considered to have *slipped*. This is an unusual circumstance brought about by the thread's execution of an invalid operation upon exiting. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [Debugging Enumerations](debugging-enumerations.md) diff --git a/docs/framework/unmanaged-api/debugging/cordebugngenpolicy-enumeration.md b/docs/framework/unmanaged-api/debugging/cordebugngenpolicy-enumeration.md index ab99399f8da23..be2edd26c59b7 100644 --- a/docs/framework/unmanaged-api/debugging/cordebugngenpolicy-enumeration.md +++ b/docs/framework/unmanaged-api/debugging/cordebugngenpolicy-enumeration.md @@ -2,54 +2,54 @@ description: "Learn more about: CorDebugNGenPolicy Enumeration" title: "CorDebugNGenPolicy Enumeration" ms.date: "03/30/2017" -dev_langs: +dev_langs: - "cpp" -api_name: +api_name: - "CorDebugNGenPolicy" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "CorDebugNGenPolicy" -helpviewer_keywords: +helpviewer_keywords: - "CorDebugNgenPolicy enumeration [.NET Framework debugging]" ms.assetid: edb4e4d2-3166-44d4-8b17-bf302f7ea093 -topic_type: +topic_type: - "apiref" --- # CorDebugNGenPolicy Enumeration -Provides a value that determines whether a debugger loads native (NGen) images from the native image cache. - -## Syntax - +Provides a value that determines whether a debugger loads native (NGen) images from the native image cache. + +## Syntax + ```cpp -enum CorDebugNGENPolicy { - DISABLE_LOCAL_NIC = 1 -} CorDebugNGENPolicy; -``` - -## Members - -|Member name|Description| -|-----------------|-----------------| -|`DISABLE_LOCAL_NIC`|In a Windows 8.x Store app, the use of images from the local native image cache is disabled. In a desktop app, this setting has no effect.| - -## Remarks - - The `CorDebugNGENPolicy` enumeration is used by the [ICorDebugProcess5::EnableNGENPolicy](icordebugprocess5-enablengenpolicy-method.md) method. Disabling the use of images from the local native image cache provides for a consistent debugging experience by ensuring that the debugger loads debuggable JIT-compiled images instead of optimized native images. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - +enum CorDebugNGENPolicy { + DISABLE_LOCAL_NIC = 1 +} CorDebugNGENPolicy; +``` + +## Members + +|Member name|Description| +|-----------------|-----------------| +|`DISABLE_LOCAL_NIC`|In a Windows 8.x Store app, the use of images from the local native image cache is disabled. In a desktop app, this setting has no effect.| + +## Remarks + + The `CorDebugNGENPolicy` enumeration is used by the [ICorDebugProcess5::EnableNGENPolicy](icordebugprocess5-enablengenpolicy-method.md) method. Disabling the use of images from the local native image cache provides for a consistent debugging experience by ensuring that the debugger loads debuggable JIT-compiled images instead of optimized native images. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [Debugging Enumerations](debugging-enumerations.md) diff --git a/docs/framework/unmanaged-api/debugging/cordebugrecordformat-enumeration.md b/docs/framework/unmanaged-api/debugging/cordebugrecordformat-enumeration.md index 4b906c7768709..593592f134336 100644 --- a/docs/framework/unmanaged-api/debugging/cordebugrecordformat-enumeration.md +++ b/docs/framework/unmanaged-api/debugging/cordebugrecordformat-enumeration.md @@ -2,53 +2,53 @@ description: "Learn more about: CorDebugRecordFormat Enumeration" title: "CorDebugRecordFormat Enumeration" ms.date: "03/30/2017" -api_name: +api_name: - "CorDebugRecordFormat" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" ms.assetid: d680c1c0-16ab-4ccc-9444-39cf8e0e05ee -topic_type: +topic_type: - "apiref" --- # CorDebugRecordFormat Enumeration -Describes the format of the data in a byte array that contains information about a native exception debug event. - -## Syntax - -```cpp -typedef enum CorDebugRecordFormat { - FORMAT_WINDOWS_EXCEPTIONRECORD32 = 1, - FORMAT_WINDOWS_EXCEPTIONRECORD64 = 2, -} CorDebugRecordFormat; -``` - -## Members - -|Member|Description| -|------------|-----------------| -|`FORMAT_WINDOWS_EXCEPTIONRECORD32`|The data is a 32-bit Windows exception record.| -|`FORMAT_WINDOWS_EXCEPTIONRECORD64`|The data is a 64-bit Windows exception record.| - -## Remarks - - A member of the `CorDebugRecordFormat` enumeration is passed to the [DecodeEvent](icordebugprocess6-decodeevent-method.md) method to indicate the format of the byte array in its `pRecord` argument. - +Describes the format of the data in a byte array that contains information about a native exception debug event. + +## Syntax + +```cpp +typedef enum CorDebugRecordFormat { + FORMAT_WINDOWS_EXCEPTIONRECORD32 = 1, + FORMAT_WINDOWS_EXCEPTIONRECORD64 = 2, +} CorDebugRecordFormat; +``` + +## Members + +|Member|Description| +|------------|-----------------| +|`FORMAT_WINDOWS_EXCEPTIONRECORD32`|The data is a 32-bit Windows exception record.| +|`FORMAT_WINDOWS_EXCEPTIONRECORD64`|The data is a 64-bit Windows exception record.| + +## Remarks + + A member of the `CorDebugRecordFormat` enumeration is passed to the [DecodeEvent](icordebugprocess6-decodeevent-method.md) method to indicate the format of the byte array in its `pRecord` argument. + > [!NOTE] -> This enumeration is intended for use in .NET Native debugging scenarios only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This enumeration is intended for use in .NET Native debugging scenarios only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [Debugging Enumerations](debugging-enumerations.md) diff --git a/docs/framework/unmanaged-api/debugging/cordebugregister-enumeration.md b/docs/framework/unmanaged-api/debugging/cordebugregister-enumeration.md index 1d6581d8b7832..35d58827c6741 100644 --- a/docs/framework/unmanaged-api/debugging/cordebugregister-enumeration.md +++ b/docs/framework/unmanaged-api/debugging/cordebugregister-enumeration.md @@ -2,209 +2,209 @@ description: "Learn more about: CorDebugRegister Enumeration" title: "CorDebugRegister Enumeration" ms.date: "03/30/2017" -api_name: +api_name: - "CorDebugRegister" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "CorDebugRegister" -helpviewer_keywords: +helpviewer_keywords: - "CorDebugRegister enumeration [.NET Framework debugging]" ms.assetid: 003bb138-7960-4291-ac88-0d87e470ff70 -topic_type: +topic_type: - "apiref" --- # CorDebugRegister Enumeration -Specifies the registers associated with a given processor architecture. - -## Syntax - -```cpp -typedef enum CorDebugRegister { - - REGISTER_INSTRUCTION_POINTER = 0, - REGISTER_STACK_POINTER, - REGISTER_FRAME_POINTER, - - REGISTER_X86_EIP = 0, - REGISTER_X86_ESP, - REGISTER_X86_EBP, - - REGISTER_X86_EAX, - REGISTER_X86_ECX, - REGISTER_X86_EDX, - REGISTER_X86_EBX, - - REGISTER_X86_ESI, - REGISTER_X86_EDI, - - REGISTER_X86_FPSTACK_0, - REGISTER_X86_FPSTACK_1, - REGISTER_X86_FPSTACK_2, - REGISTER_X86_FPSTACK_3, - REGISTER_X86_FPSTACK_4, - REGISTER_X86_FPSTACK_5, - REGISTER_X86_FPSTACK_6, - REGISTER_X86_FPSTACK_7, - - REGISTER_AMD64_RIP = 0, - REGISTER_AMD64_RSP, - REGISTER_AMD64_RBP, - REGISTER_AMD64_RAX, - REGISTER_AMD64_RCX, - REGISTER_AMD64_RDX, - REGISTER_AMD64_RBX, - REGISTER_AMD64_RSI, - REGISTER_AMD64_RDI, - REGISTER_AMD64_R8, - REGISTER_AMD64_R9, - REGISTER_AMD64_R10, - REGISTER_AMD64_R11, - REGISTER_AMD64_R12, - REGISTER_AMD64_R13, - REGISTER_AMD64_R14, - REGISTER_AMD64_R15, - - REGISTER_AMD64_XMM0, - REGISTER_AMD64_XMM1, - REGISTER_AMD64_XMM2, - REGISTER_AMD64_XMM3, - REGISTER_AMD64_XMM4, - REGISTER_AMD64_XMM5, - REGISTER_AMD64_XMM6, - REGISTER_AMD64_XMM7, - REGISTER_AMD64_XMM8, - REGISTER_AMD64_XMM9, - REGISTER_AMD64_XMM10, - REGISTER_AMD64_XMM11, - REGISTER_AMD64_XMM12, - REGISTER_AMD64_XMM13, - REGISTER_AMD64_XMM14, - REGISTER_AMD64_XMM15, - - REGISTER_IA64_BSP = REGISTER_FRAME_POINTER, - REGISTER_IA64_R0 = REGISTER_IA64_BSP + 1, - REGISTER_IA64_F0 = REGISTER_IA64_R0 + 128, - REGISTER_ARM_PC = 0, - REGISTER_ARM_SP, - REGISTER_ARM_R0, - REGISTER_ARM_R1, - REGISTER_ARM_R2, - REGISTER_ARM_R3, - REGISTER_ARM_R4, - REGISTER_ARM_R5, - REGISTER_ARM_R6, - REGISTER_ARM_R7, - REGISTER_ARM_R8, - REGISTER_ARM_R9, - REGISTER_ARM_R10, - REGISTER_ARM_R11, - REGISTER_ARM_R12, - REGISTER_ARM_LR, - -} CorDebugRegister; -``` - -## Members - -|Member|Description| -|------------|-----------------| -|`REGISTER_INSTRUCTION_POINTER`|An instruction pointer register on any processor.| -|`REGISTER_STACK_POINTER`|A stack pointer register on any processor.| -|`REGISTER_FRAME_POINTER`|A frame pointer register on any processor.| -|`REGISTER_X86_EIP`|The instruction pointer register on the x86 processor.| -|`REGISTER_X86_ESP`|The stack pointer register on the x86 processor.| -|`REGISTER_X86_EBP`|The base pointer register on the x86 processor.| -|`REGISTER_X86_EAX`|The A data register on the x86 processor.| -|`REGISTER_X86_ECX`|The C data register on the x86 processor.| -|`REGISTER_X86_EDX`|The D data register on the x86 processor.| -|`REGISTER_X86_EBX`|The B data register on the x86 processor.| -|`REGISTER_X86_ESI`|The source index register on the x86 processor.| -|`REGISTER_X86_EDI`|The destination index register on the x86 processor.| -|`REGISTER_X86_FPSTACK_0`|The stack register 0 on the x86 floating-point (FP) processor.| -|`REGISTER_X86_FPSTACK_1`|The #1 stack register on the x86 FP processor.| -|`REGISTER_X86_FPSTACK_2`|The #2 stack register on the x86 FP processor.| -|`REGISTER_X86_FPSTACK_3`|The #3 stack register on the x86 FP processor.| -|`REGISTER_X86_FPSTACK_4`|The #4 stack register on the x86 FP processor.| -|`REGISTER_X86_FPSTACK_5`|The #5 stack register on the x86 FP processor.| -|`REGISTER_X86_FPSTACK_6`|The #6 stack register on the x86 FP processor.| -|`REGISTER_X86_FPSTACK_7`|The #7 stack register on the x86 FP processor.| -|`REGISTER_AMD64_RIP`|The instruction pointer register on the AMD64 processor.| -|`REGISTER_AMD64_RSP`|The stack pointer register on the AMD64 processor.| -|`REGISTER_AMD64_RBP`|The base pointer register on the AMD64 processor.| -|`REGISTER_AMD64_RAX`|The A data register on the AMD64 processor.| -|`REGISTER_AMD64_RCX`|The C data register on the AMD64 processor.| -|`REGISTER_AMD64_RDX`|The D data register on the AMD64 processor.| -|`REGISTER_AMD64_RBX`|The B data register on the AMD64 processor.| -|`REGISTER_AMD64_RSI`|The source index register on the AMD64 processor.| -|`REGISTER_AMD64_RDI`|The destination index register on the AMD64 processor.| -|`REGISTER_AMD64_R8`|The #8 data register on the AMD64 processor.| -|`REGISTER_AMD64_R9`|The #9 data register on the AMD64 processor.| -|`REGISTER_AMD64_R10`|The #10 data register on the AMD64 processor.| -|`REGISTER_AMD64_R11`|The #11 data register on the AMD64 processor.| -|`REGISTER_AMD64_R12`|The #12 data register on the AMD64 processor.| -|`REGISTER_AMD64_R13`|The #13 data register on the AMD64 processor.| -|`REGISTER_AMD64_R14`|The #14 data register on the AMD64 processor.| -|`REGISTER_AMD64_R15`|The #15 data register on the AMD64 processor.| -|`REGISTER_AMD64_XMM0`|The #0 multimedia register on the AMD64 processor.| -|`REGISTER_AMD64_XMM1`|The #1 multimedia register on the AMD64 processor.| -|`REGISTER_AMD64_XMM2`|The #2 multimedia register on the AMD64 processor.| -|`REGISTER_AMD64_XMM3`|The #3 multimedia register on the AMD64 processor.| -|`REGISTER_AMD64_XMM4`|The #4 multimedia register on the AMD64 processor.| -|`REGISTER_AMD64_XMM5`|The #5 multimedia register on the AMD64 processor.| -|`REGISTER_AMD64_XMM6`|The #6 multimedia register on the AMD64 processor.| -|`REGISTER_AMD64_XMM7`|The #7 multimedia register on the AMD64 processor.| -|`REGISTER_AMD64_XMM8`|The #8 multimedia register on the AMD64 processor.| -|`REGISTER_AMD64_XMM9`|The #9 multimedia register on the AMD64 processor.| -|`REGISTER_AMD64_XMM10`|The #10 multimedia register on the AMD64 processor.| -|`REGISTER_AMD64_XMM11`|The #11 multimedia register on the AMD64 processor.| -|`REGISTER_AMD64_XMM12`|The #12 multimedia register on the AMD64 processor.| -|`REGISTER_AMD64_XMM13`|The #13 multimedia register on the AMD64 processor.| -|`REGISTER_AMD64_XMM14`|The #14 multimedia register on the AMD64 processor.| -|`REGISTER_AMD64_XMM15`|The #15 multimedia register on the AMD64 processor.| -|`REGISTER_IA64_BSP`|The stack pointer register on the IA-64 processor.| -|`REGISTER_IA64_R0`|The #0 data register on the IA-64 processor.| -|`REGISTER_IA64_F0`|The #0 FP data register on the IA-64 processor.| -|`REGISTER_ARM_PC`|The program counter register (R15) on the ARM processor.| -|`REGISTER_ARM_SP`|The stack pointer register (R13) on the ARM processor.| -|`REGISTER_ARM_R0`|Data register R0 on the ARM processor.| -|`REGISTER_ARM_R1`|Data register R1 on the ARM processor.| -|`REGISTER_ARM_R2`|Data register R2 on the ARM processor.| -|`REGISTER_ARM_R3`|Data register R3 on the ARM processor.| -|`REGISTER_ARM_R4`|Register R4 on the ARM processor.| -|`REGISTER_ARM_R5`|Register R5 on the ARM processor.| -|`REGISTER_ARM_R6`|Register R6 on the ARM processor.| -|`REGISTER_ARM_R7`|Register R7 (the THUMB frame pointer) on the ARM processor.| -|`REGISTER_ARM_R8`|Register R8 on the ARM processor.| -|`REGISTER_ARM_R9`|Register R9 on the ARM processor.| -|`REGISTER_ARM_R10`|Register R10 on the ARM processor.| -|`REGISTER_ARM_R11`|The frame pointer on the ARM processor.| -|`REGISTER_ARM_R12`|Register R12 on the ARM processor.| -|`REGISTER_ARM_LR`|The link register (R14) on the ARM processor.| - -## Remarks - - There are 128 general-purpose data registers and 128 floating-point data registers on the IA-64 processor, but only values `REGISTER_IA64_R0` and `REGISTER_IA64_F0` are provided. The other values can be determined as follows: - -- Add the register number to `REGISTER_IA64_R0` for values `REGISTER_IA64_R1` through `REGISTER_IA64_R127`, which correspond to the #1 data register through the #127 data register on the IA-64 processor. - -- Add the register number to `REGISTER_IA64_F0` for values `REGISTER_IA64_F1` through `REGISTER_IA64_F127`, which correspond to the #1 FP data register through the #127 FP data register on the IA-64 processor. - - For example, if you need to specify the #83 data register on the IA-64 processor, use `REGISTER_IA64_R0` + 83. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Specifies the registers associated with a given processor architecture. + +## Syntax + +```cpp +typedef enum CorDebugRegister { + + REGISTER_INSTRUCTION_POINTER = 0, + REGISTER_STACK_POINTER, + REGISTER_FRAME_POINTER, + + REGISTER_X86_EIP = 0, + REGISTER_X86_ESP, + REGISTER_X86_EBP, + + REGISTER_X86_EAX, + REGISTER_X86_ECX, + REGISTER_X86_EDX, + REGISTER_X86_EBX, + + REGISTER_X86_ESI, + REGISTER_X86_EDI, + + REGISTER_X86_FPSTACK_0, + REGISTER_X86_FPSTACK_1, + REGISTER_X86_FPSTACK_2, + REGISTER_X86_FPSTACK_3, + REGISTER_X86_FPSTACK_4, + REGISTER_X86_FPSTACK_5, + REGISTER_X86_FPSTACK_6, + REGISTER_X86_FPSTACK_7, + + REGISTER_AMD64_RIP = 0, + REGISTER_AMD64_RSP, + REGISTER_AMD64_RBP, + REGISTER_AMD64_RAX, + REGISTER_AMD64_RCX, + REGISTER_AMD64_RDX, + REGISTER_AMD64_RBX, + REGISTER_AMD64_RSI, + REGISTER_AMD64_RDI, + REGISTER_AMD64_R8, + REGISTER_AMD64_R9, + REGISTER_AMD64_R10, + REGISTER_AMD64_R11, + REGISTER_AMD64_R12, + REGISTER_AMD64_R13, + REGISTER_AMD64_R14, + REGISTER_AMD64_R15, + + REGISTER_AMD64_XMM0, + REGISTER_AMD64_XMM1, + REGISTER_AMD64_XMM2, + REGISTER_AMD64_XMM3, + REGISTER_AMD64_XMM4, + REGISTER_AMD64_XMM5, + REGISTER_AMD64_XMM6, + REGISTER_AMD64_XMM7, + REGISTER_AMD64_XMM8, + REGISTER_AMD64_XMM9, + REGISTER_AMD64_XMM10, + REGISTER_AMD64_XMM11, + REGISTER_AMD64_XMM12, + REGISTER_AMD64_XMM13, + REGISTER_AMD64_XMM14, + REGISTER_AMD64_XMM15, + + REGISTER_IA64_BSP = REGISTER_FRAME_POINTER, + REGISTER_IA64_R0 = REGISTER_IA64_BSP + 1, + REGISTER_IA64_F0 = REGISTER_IA64_R0 + 128, + REGISTER_ARM_PC = 0, + REGISTER_ARM_SP, + REGISTER_ARM_R0, + REGISTER_ARM_R1, + REGISTER_ARM_R2, + REGISTER_ARM_R3, + REGISTER_ARM_R4, + REGISTER_ARM_R5, + REGISTER_ARM_R6, + REGISTER_ARM_R7, + REGISTER_ARM_R8, + REGISTER_ARM_R9, + REGISTER_ARM_R10, + REGISTER_ARM_R11, + REGISTER_ARM_R12, + REGISTER_ARM_LR, + +} CorDebugRegister; +``` + +## Members + +|Member|Description| +|------------|-----------------| +|`REGISTER_INSTRUCTION_POINTER`|An instruction pointer register on any processor.| +|`REGISTER_STACK_POINTER`|A stack pointer register on any processor.| +|`REGISTER_FRAME_POINTER`|A frame pointer register on any processor.| +|`REGISTER_X86_EIP`|The instruction pointer register on the x86 processor.| +|`REGISTER_X86_ESP`|The stack pointer register on the x86 processor.| +|`REGISTER_X86_EBP`|The base pointer register on the x86 processor.| +|`REGISTER_X86_EAX`|The A data register on the x86 processor.| +|`REGISTER_X86_ECX`|The C data register on the x86 processor.| +|`REGISTER_X86_EDX`|The D data register on the x86 processor.| +|`REGISTER_X86_EBX`|The B data register on the x86 processor.| +|`REGISTER_X86_ESI`|The source index register on the x86 processor.| +|`REGISTER_X86_EDI`|The destination index register on the x86 processor.| +|`REGISTER_X86_FPSTACK_0`|The stack register 0 on the x86 floating-point (FP) processor.| +|`REGISTER_X86_FPSTACK_1`|The #1 stack register on the x86 FP processor.| +|`REGISTER_X86_FPSTACK_2`|The #2 stack register on the x86 FP processor.| +|`REGISTER_X86_FPSTACK_3`|The #3 stack register on the x86 FP processor.| +|`REGISTER_X86_FPSTACK_4`|The #4 stack register on the x86 FP processor.| +|`REGISTER_X86_FPSTACK_5`|The #5 stack register on the x86 FP processor.| +|`REGISTER_X86_FPSTACK_6`|The #6 stack register on the x86 FP processor.| +|`REGISTER_X86_FPSTACK_7`|The #7 stack register on the x86 FP processor.| +|`REGISTER_AMD64_RIP`|The instruction pointer register on the AMD64 processor.| +|`REGISTER_AMD64_RSP`|The stack pointer register on the AMD64 processor.| +|`REGISTER_AMD64_RBP`|The base pointer register on the AMD64 processor.| +|`REGISTER_AMD64_RAX`|The A data register on the AMD64 processor.| +|`REGISTER_AMD64_RCX`|The C data register on the AMD64 processor.| +|`REGISTER_AMD64_RDX`|The D data register on the AMD64 processor.| +|`REGISTER_AMD64_RBX`|The B data register on the AMD64 processor.| +|`REGISTER_AMD64_RSI`|The source index register on the AMD64 processor.| +|`REGISTER_AMD64_RDI`|The destination index register on the AMD64 processor.| +|`REGISTER_AMD64_R8`|The #8 data register on the AMD64 processor.| +|`REGISTER_AMD64_R9`|The #9 data register on the AMD64 processor.| +|`REGISTER_AMD64_R10`|The #10 data register on the AMD64 processor.| +|`REGISTER_AMD64_R11`|The #11 data register on the AMD64 processor.| +|`REGISTER_AMD64_R12`|The #12 data register on the AMD64 processor.| +|`REGISTER_AMD64_R13`|The #13 data register on the AMD64 processor.| +|`REGISTER_AMD64_R14`|The #14 data register on the AMD64 processor.| +|`REGISTER_AMD64_R15`|The #15 data register on the AMD64 processor.| +|`REGISTER_AMD64_XMM0`|The #0 multimedia register on the AMD64 processor.| +|`REGISTER_AMD64_XMM1`|The #1 multimedia register on the AMD64 processor.| +|`REGISTER_AMD64_XMM2`|The #2 multimedia register on the AMD64 processor.| +|`REGISTER_AMD64_XMM3`|The #3 multimedia register on the AMD64 processor.| +|`REGISTER_AMD64_XMM4`|The #4 multimedia register on the AMD64 processor.| +|`REGISTER_AMD64_XMM5`|The #5 multimedia register on the AMD64 processor.| +|`REGISTER_AMD64_XMM6`|The #6 multimedia register on the AMD64 processor.| +|`REGISTER_AMD64_XMM7`|The #7 multimedia register on the AMD64 processor.| +|`REGISTER_AMD64_XMM8`|The #8 multimedia register on the AMD64 processor.| +|`REGISTER_AMD64_XMM9`|The #9 multimedia register on the AMD64 processor.| +|`REGISTER_AMD64_XMM10`|The #10 multimedia register on the AMD64 processor.| +|`REGISTER_AMD64_XMM11`|The #11 multimedia register on the AMD64 processor.| +|`REGISTER_AMD64_XMM12`|The #12 multimedia register on the AMD64 processor.| +|`REGISTER_AMD64_XMM13`|The #13 multimedia register on the AMD64 processor.| +|`REGISTER_AMD64_XMM14`|The #14 multimedia register on the AMD64 processor.| +|`REGISTER_AMD64_XMM15`|The #15 multimedia register on the AMD64 processor.| +|`REGISTER_IA64_BSP`|The stack pointer register on the IA-64 processor.| +|`REGISTER_IA64_R0`|The #0 data register on the IA-64 processor.| +|`REGISTER_IA64_F0`|The #0 FP data register on the IA-64 processor.| +|`REGISTER_ARM_PC`|The program counter register (R15) on the ARM processor.| +|`REGISTER_ARM_SP`|The stack pointer register (R13) on the ARM processor.| +|`REGISTER_ARM_R0`|Data register R0 on the ARM processor.| +|`REGISTER_ARM_R1`|Data register R1 on the ARM processor.| +|`REGISTER_ARM_R2`|Data register R2 on the ARM processor.| +|`REGISTER_ARM_R3`|Data register R3 on the ARM processor.| +|`REGISTER_ARM_R4`|Register R4 on the ARM processor.| +|`REGISTER_ARM_R5`|Register R5 on the ARM processor.| +|`REGISTER_ARM_R6`|Register R6 on the ARM processor.| +|`REGISTER_ARM_R7`|Register R7 (the THUMB frame pointer) on the ARM processor.| +|`REGISTER_ARM_R8`|Register R8 on the ARM processor.| +|`REGISTER_ARM_R9`|Register R9 on the ARM processor.| +|`REGISTER_ARM_R10`|Register R10 on the ARM processor.| +|`REGISTER_ARM_R11`|The frame pointer on the ARM processor.| +|`REGISTER_ARM_R12`|Register R12 on the ARM processor.| +|`REGISTER_ARM_LR`|The link register (R14) on the ARM processor.| + +## Remarks + + There are 128 general-purpose data registers and 128 floating-point data registers on the IA-64 processor, but only values `REGISTER_IA64_R0` and `REGISTER_IA64_F0` are provided. The other values can be determined as follows: + +- Add the register number to `REGISTER_IA64_R0` for values `REGISTER_IA64_R1` through `REGISTER_IA64_R127`, which correspond to the #1 data register through the #127 data register on the IA-64 processor. + +- Add the register number to `REGISTER_IA64_F0` for values `REGISTER_IA64_F1` through `REGISTER_IA64_F127`, which correspond to the #1 FP data register through the #127 FP data register on the IA-64 processor. + + For example, if you need to specify the #83 data register on the IA-64 processor, use `REGISTER_IA64_R0` + 83. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Enumerations](debugging-enumerations.md) diff --git a/docs/framework/unmanaged-api/debugging/cordebugsetcontextflag-enumeration.md b/docs/framework/unmanaged-api/debugging/cordebugsetcontextflag-enumeration.md index e98407156a0c4..702bb6386e1fe 100644 --- a/docs/framework/unmanaged-api/debugging/cordebugsetcontextflag-enumeration.md +++ b/docs/framework/unmanaged-api/debugging/cordebugsetcontextflag-enumeration.md @@ -2,55 +2,55 @@ description: "Learn more about: CorDebugSetContextFlag Enumeration" title: "CorDebugSetContextFlag Enumeration" ms.date: "03/30/2017" -api_name: +api_name: - "CorDebugSetContextFlag" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "CorDebugSetContextFlag" -helpviewer_keywords: +helpviewer_keywords: - "CorDebugSetContextFlag enumeration [.NET Framework debugging]" ms.assetid: b30280bb-fe75-44ed-8589-bcff081fae44 -topic_type: +topic_type: - "apiref" --- # CorDebugSetContextFlag Enumeration -Indicates whether the context is from the active (or leaf) frame on the stack or has been computed by unwinding from another frame. - -## Syntax - -```cpp -typedef enum CorDebugSetContextFlag -{ - SET_CONTEXT_FLAG_ACTIVE_FRAME = 1 - SET_CONTEXT_FLAG_UNWIND_FRAME = 2 -} CorDebugSetContextFlag; -``` - -## Members - -|Member|Description| -|------------|-----------------| -|SET_CONTEXT_FLAG_ACTIVE_FRAME|The context is the thread’s active context.| -|SET_CONTEXT_FLAG_UNWIND_FRAME|The context has been computed by unwinding from another frame.| - -## Remarks - - `CorDebugSetContextFlag` provides values that are used by the [ICorDebugStackWalk::SetContext](icordebugstackwalk-setcontext-method.md) method. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +Indicates whether the context is from the active (or leaf) frame on the stack or has been computed by unwinding from another frame. + +## Syntax + +```cpp +typedef enum CorDebugSetContextFlag +{ + SET_CONTEXT_FLAG_ACTIVE_FRAME = 1 + SET_CONTEXT_FLAG_UNWIND_FRAME = 2 +} CorDebugSetContextFlag; +``` + +## Members + +|Member|Description| +|------------|-----------------| +|SET_CONTEXT_FLAG_ACTIVE_FRAME|The context is the thread’s active context.| +|SET_CONTEXT_FLAG_UNWIND_FRAME|The context has been computed by unwinding from another frame.| + +## Remarks + + `CorDebugSetContextFlag` provides values that are used by the [ICorDebugStackWalk::SetContext](icordebugstackwalk-setcontext-method.md) method. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [Debugging Enumerations](debugging-enumerations.md) diff --git a/docs/framework/unmanaged-api/debugging/cordebugthreadstate-enumeration.md b/docs/framework/unmanaged-api/debugging/cordebugthreadstate-enumeration.md index 8d2fc1cb02a35..4744569bd97e3 100644 --- a/docs/framework/unmanaged-api/debugging/cordebugthreadstate-enumeration.md +++ b/docs/framework/unmanaged-api/debugging/cordebugthreadstate-enumeration.md @@ -2,56 +2,56 @@ description: "Learn more about: CorDebugThreadState Enumeration" title: "CorDebugThreadState Enumeration" ms.date: "03/30/2017" -api_name: +api_name: - "CorDebugThreadState" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "CorDebugThreadState" -helpviewer_keywords: +helpviewer_keywords: - "CorDebugThreadState enumeration [.NET Framework debugging]" ms.assetid: a3ccdf18-4ec6-494d-9024-48e5c8c724f5 -topic_type: +topic_type: - "apiref" --- # CorDebugThreadState Enumeration -Specifies the state of a thread for debugging. - -## Syntax - -```cpp -typedef enum CorDebugThreadState { - THREAD_RUN, - THREAD_SUSPEND -} CorDebugThreadState; -``` - -## Members - -|Member|Description| -|------------|-----------------| -|`THREAD_RUN`|The thread runs freely, unless a debug event occurs.| -|`THREAD_SUSPEND`|The thread cannot run.| - -## Remarks - - The debugger uses the `CorDebugThreadState` enumeration to control a thread's execution. The state of a thread can be set by using the [ICorDebugThread::SetDebugState](icordebugthread-setdebugstate-method.md) or [ICorDebugController::SetAllThreadsDebugState](icordebugcontroller-setallthreadsdebugstate-method.md) method. - - A callback provided to the [hosting API](../hosting/index.md) enables message pumping, so an interrupted state is not needed. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Specifies the state of a thread for debugging. + +## Syntax + +```cpp +typedef enum CorDebugThreadState { + THREAD_RUN, + THREAD_SUSPEND +} CorDebugThreadState; +``` + +## Members + +|Member|Description| +|------------|-----------------| +|`THREAD_RUN`|The thread runs freely, unless a debug event occurs.| +|`THREAD_SUSPEND`|The thread cannot run.| + +## Remarks + + The debugger uses the `CorDebugThreadState` enumeration to control a thread's execution. The state of a thread can be set by using the [ICorDebugThread::SetDebugState](icordebugthread-setdebugstate-method.md) or [ICorDebugController::SetAllThreadsDebugState](icordebugcontroller-setallthreadsdebugstate-method.md) method. + + A callback provided to the [hosting API](../hosting/index.md) enables message pumping, so an interrupted state is not needed. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Enumerations](debugging-enumerations.md) diff --git a/docs/framework/unmanaged-api/debugging/cordebugunmappedstop-enumeration.md b/docs/framework/unmanaged-api/debugging/cordebugunmappedstop-enumeration.md index 61cd4ac83b9fd..b5418a101fc54 100644 --- a/docs/framework/unmanaged-api/debugging/cordebugunmappedstop-enumeration.md +++ b/docs/framework/unmanaged-api/debugging/cordebugunmappedstop-enumeration.md @@ -2,64 +2,64 @@ description: "Learn more about: CorDebugUnmappedStop Enumeration" title: "CorDebugUnmappedStop Enumeration" ms.date: "03/30/2017" -api_name: +api_name: - "CorDebugUnmappedStop" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "CorDebugUnmappedStop" -helpviewer_keywords: +helpviewer_keywords: - "CorDebugUnmappedStop enumeration [.NET Framework debugging]" ms.assetid: a684f7d7-d0c2-4690-b721-639e613f11f8 -topic_type: +topic_type: - "apiref" --- # CorDebugUnmappedStop Enumeration -Specifies the type of unmapped code that can trigger a halt in code execution by the stepper. - -## Syntax - -```cpp -typedef enum CorDebugUnmappedStop { - STOP_NONE = 0x0, - STOP_PROLOG = 0x01, - STOP_EPILOG = 0x02, - STOP_NO_MAPPING_INFO = 0x04, - STOP_OTHER_UNMAPPED = 0x08, - STOP_UNMANAGED = 0x10, - STOP_ALL = 0xffff, -} CorDebugUnmappedStop; -``` - -## Members - -|Member|Description| -|------------|-----------------| -|`STOP_NONE`|Do not stop in any type of unmapped code.| -|`STOP_PROLOG`|Stop in prolog code.| -|`STOP_EPILOG`|Stop in epilog code.| -|`STOP_NO_MAPPING_INFO`|Stop in code that has no mapping information.| -|`STOP_OTHER_UNMAPPED`|Stop in unmapped code that does not fit into the prolog, epilog, no-mapping-information, or unmanaged category.| -|`STOP_UNMANAGED`|Stop in unmanaged code. This value is valid only with interop debugging.| -|`STOP_ALL`|Stop in all types of unmapped code.| - -## Remarks +Specifies the type of unmapped code that can trigger a halt in code execution by the stepper. - Use the [ICorDebugStepper::SetUnmappedStopMask](icordebugstepper-setunmappedstopmask-method.md) method to set the flags that specify the unmapped code in which the stepper will stop. - -## Requirements +## Syntax + +```cpp +typedef enum CorDebugUnmappedStop { + STOP_NONE = 0x0, + STOP_PROLOG = 0x01, + STOP_EPILOG = 0x02, + STOP_NO_MAPPING_INFO = 0x04, + STOP_OTHER_UNMAPPED = 0x08, + STOP_UNMANAGED = 0x10, + STOP_ALL = 0xffff, +} CorDebugUnmappedStop; +``` + +## Members + +|Member|Description| +|------------|-----------------| +|`STOP_NONE`|Do not stop in any type of unmapped code.| +|`STOP_PROLOG`|Stop in prolog code.| +|`STOP_EPILOG`|Stop in epilog code.| +|`STOP_NO_MAPPING_INFO`|Stop in code that has no mapping information.| +|`STOP_OTHER_UNMAPPED`|Stop in unmapped code that does not fit into the prolog, epilog, no-mapping-information, or unmanaged category.| +|`STOP_UNMANAGED`|Stop in unmanaged code. This value is valid only with interop debugging.| +|`STOP_ALL`|Stop in all types of unmapped code.| + +## Remarks + + Use the [ICorDebugStepper::SetUnmappedStopMask](icordebugstepper-setunmappedstopmask-method.md) method to set the flags that specify the unmapped code in which the stepper will stop. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - ## See also - [Debugging Enumerations](debugging-enumerations.md) diff --git a/docs/framework/unmanaged-api/debugging/cordebuguserstate-enumeration.md b/docs/framework/unmanaged-api/debugging/cordebuguserstate-enumeration.md index b6fe4d5b709bc..099fe26589070 100644 --- a/docs/framework/unmanaged-api/debugging/cordebuguserstate-enumeration.md +++ b/docs/framework/unmanaged-api/debugging/cordebuguserstate-enumeration.md @@ -2,70 +2,70 @@ description: "Learn more about: CorDebugUserState Enumeration" title: "CorDebugUserState Enumeration" ms.date: "03/30/2017" -api_name: +api_name: - "CorDebugUserState" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "CorDebugUserState" -helpviewer_keywords: +helpviewer_keywords: - "CorDebugUserState enumeration [.NET Framework debugging]" ms.assetid: 5f6c2bcd-8102-4e3b-abc5-86ab0bd62def -topic_type: +topic_type: - "apiref" --- # CorDebugUserState Enumeration -Indicates the user state of a thread. - -## Syntax - -```cpp -typedef enum CorDebugUserState { - USER_STOP_REQUESTED = 0x01, - USER_SUSPEND_REQUESTED = 0x02, - USER_BACKGROUND = 0x04, - USER_UNSTARTED = 0x08, - USER_STOPPED = 0x10, - USER_WAIT_SLEEP_JOIN = 0x20, - USER_SUSPENDED = 0x40, - USER_UNSAFE_POINT = 0x80, - USER_THREADPOOL = 0x100 -} CorDebugUserState; -``` - -## Members - -|Value|Description| -|-----------|-----------------| -|`USER_STOP_REQUESTED`|A termination of the thread has been requested.| -|`USER_SUSPEND_REQUESTED`|A suspension of the thread has been requested.| -|`USER_BACKGROUND`|The thread is running in the background.| -|`USER_UNSTARTED`|The thread has not started executing.| -|`USER_STOPPED`|The thread has been terminated.| -|`USER_WAIT_SLEEP_JOIN`|The thread is waiting for another thread to complete a task.| -|`USER_SUSPENDED`|The thread has been suspended.| -|`USER_UNSAFE_POINT`|The thread is at an unsafe point. That is, the thread is at a point in execution where it may block garbage collection.

Debug events may be dispatched from unsafe points, but suspending a thread at an unsafe point will very likely cause a deadlock until the thread is resumed. The safe and unsafe points are determined by the just-in-time (JIT) and garbage collection implementation.| -|`USER_THREADPOOL`|The thread is from the thread pool.| - -## Remarks +Indicates the user state of a thread. - The user state of a thread is the state that the thread has when the debugger examines it. A thread may have a combination of user states. - - Use the [ICorDebugThread::GetUserState](icordebugthread-getuserstate-method.md) method to retrieve a thread's user state. - -## Requirements +## Syntax + +```cpp +typedef enum CorDebugUserState { + USER_STOP_REQUESTED = 0x01, + USER_SUSPEND_REQUESTED = 0x02, + USER_BACKGROUND = 0x04, + USER_UNSTARTED = 0x08, + USER_STOPPED = 0x10, + USER_WAIT_SLEEP_JOIN = 0x20, + USER_SUSPENDED = 0x40, + USER_UNSAFE_POINT = 0x80, + USER_THREADPOOL = 0x100 +} CorDebugUserState; +``` + +## Members + +|Value|Description| +|-----------|-----------------| +|`USER_STOP_REQUESTED`|A termination of the thread has been requested.| +|`USER_SUSPEND_REQUESTED`|A suspension of the thread has been requested.| +|`USER_BACKGROUND`|The thread is running in the background.| +|`USER_UNSTARTED`|The thread has not started executing.| +|`USER_STOPPED`|The thread has been terminated.| +|`USER_WAIT_SLEEP_JOIN`|The thread is waiting for another thread to complete a task.| +|`USER_SUSPENDED`|The thread has been suspended.| +|`USER_UNSAFE_POINT`|The thread is at an unsafe point. That is, the thread is at a point in execution where it may block garbage collection.

Debug events may be dispatched from unsafe points, but suspending a thread at an unsafe point will very likely cause a deadlock until the thread is resumed. The safe and unsafe points are determined by the just-in-time (JIT) and garbage collection implementation.| +|`USER_THREADPOOL`|The thread is from the thread pool.| + +## Remarks + + The user state of a thread is the state that the thread has when the debugger examines it. A thread may have a combination of user states. + + Use the [ICorDebugThread::GetUserState](icordebugthread-getuserstate-method.md) method to retrieve a thread's user state. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - ## See also - [Debugging Enumerations](debugging-enumerations.md) diff --git a/docs/framework/unmanaged-api/debugging/corgcreferencetype-enumeration.md b/docs/framework/unmanaged-api/debugging/corgcreferencetype-enumeration.md index 9dcd79045a9b4..a08d9c2baf911 100644 --- a/docs/framework/unmanaged-api/debugging/corgcreferencetype-enumeration.md +++ b/docs/framework/unmanaged-api/debugging/corgcreferencetype-enumeration.md @@ -2,82 +2,82 @@ description: "Learn more about: CorGCReferenceType Enumeration" title: "CorGCReferenceType Enumeration" ms.date: "03/30/2017" -api_name: +api_name: - "CorGCReferenceType" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "CorGCReferenceType" -helpviewer_keywords: +helpviewer_keywords: - "CorGCReferenceType" ms.assetid: d9f16439-5a36-4474-8ffd-4f0b2c2bb686 -topic_type: +topic_type: - "apiref" --- # CorGCReferenceType Enumeration -Identifies the source of an object to be garbage-collected. - -## Syntax - -```cpp -typedef enum { - CorHandleStrong = 1, - CorHandleStrongPinning = 2, - CorHandleWeakShort = 4, - CorHandleWeakRefCount = 8, - CorHandleStrongRefCount = 32, - CorHandleStrongDependent = 64, - CorHandleStrongAsyncPinned = 128, - CorHandleStrongSizedByref = 256, - - CorReferenceStack = 0x80000001, - CorReferenceFinalizer = 0x80000002, - - CorHandleStrongOnly = 0x1E3, - CorHandleWeakOnly = 0xC, - CorHandleAll = 0x7FFFFFFF -} CorGCReferenceType -``` - -## Members - -|Member name|Description| -|-----------------|-----------------| -|`CorHandleStrong`|A handle to a strong reference from the object handle table.| -|`CorHandleStrongPinning`|A handle to a pinned strong reference from the object handle table.| -|`CorHandleWeakShort`|A handle to a weak reference from the object handle table.| -|`CorHandleWeakRefCount`|A handle to a weak reference-counted object from the object handle table.| -|`CorHandleStrongRefCount`|A handle to a reference-counted object from the object handle table.| -|`CorHandleStrongDependent`|A handle to a dependent object from the object handle table.| -|`CorHandleStrongAsyncPinned`|An asynchronous pinned object from the object handle table.| -|`CorHandleStrongSizedByref`|A strong handle that keeps an approximate size of the collective closure of all objects and object roots at garbage collection time.| -|`CorReferenceStack`|A reference from the managed stack.| -|`CorReferenceFinalizer`|A reference from the finalizer queue.| -|CorHandleStrongOnly|Return only strong references from the handle table. This value is used by the [ICorDebugProcess5::EnumerateHandles](icordebugprocess5-enumeratehandles-method.md) method only.| -|`CorHandleWeakOnly`|Return only weak references from the handle table. This value is used by the [ICorDebugProcess5::EnumerateHandles](icordebugprocess5-enumeratehandles-method.md) method only.| -|`CorHandleAll`|Return all references from the handle table. This value is used by the [ICorDebugProcess5::EnumerateHandles](icordebugprocess5-enumeratehandles-method.md) method only.| - -## Remarks - - The `CorGCReferenceType` enumeration is used as follows: - -- As the value of the `type` field of the [COR_GC_REFERENCE](cor-gc-reference-structure.md) structure, it indicates the source of a reference or handle. - -- As the `types` argument to the [ICorDebugProcess5::EnumerateHandles](icordebugprocess5-enumeratehandles-method.md) method, it specifies the types of handles to include in the enumeration. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - +Identifies the source of an object to be garbage-collected. + +## Syntax + +```cpp +typedef enum { + CorHandleStrong = 1, + CorHandleStrongPinning = 2, + CorHandleWeakShort = 4, + CorHandleWeakRefCount = 8, + CorHandleStrongRefCount = 32, + CorHandleStrongDependent = 64, + CorHandleStrongAsyncPinned = 128, + CorHandleStrongSizedByref = 256, + + CorReferenceStack = 0x80000001, + CorReferenceFinalizer = 0x80000002, + + CorHandleStrongOnly = 0x1E3, + CorHandleWeakOnly = 0xC, + CorHandleAll = 0x7FFFFFFF +} CorGCReferenceType +``` + +## Members + +|Member name|Description| +|-----------------|-----------------| +|`CorHandleStrong`|A handle to a strong reference from the object handle table.| +|`CorHandleStrongPinning`|A handle to a pinned strong reference from the object handle table.| +|`CorHandleWeakShort`|A handle to a weak reference from the object handle table.| +|`CorHandleWeakRefCount`|A handle to a weak reference-counted object from the object handle table.| +|`CorHandleStrongRefCount`|A handle to a reference-counted object from the object handle table.| +|`CorHandleStrongDependent`|A handle to a dependent object from the object handle table.| +|`CorHandleStrongAsyncPinned`|An asynchronous pinned object from the object handle table.| +|`CorHandleStrongSizedByref`|A strong handle that keeps an approximate size of the collective closure of all objects and object roots at garbage collection time.| +|`CorReferenceStack`|A reference from the managed stack.| +|`CorReferenceFinalizer`|A reference from the finalizer queue.| +|CorHandleStrongOnly|Return only strong references from the handle table. This value is used by the [ICorDebugProcess5::EnumerateHandles](icordebugprocess5-enumeratehandles-method.md) method only.| +|`CorHandleWeakOnly`|Return only weak references from the handle table. This value is used by the [ICorDebugProcess5::EnumerateHandles](icordebugprocess5-enumeratehandles-method.md) method only.| +|`CorHandleAll`|Return all references from the handle table. This value is used by the [ICorDebugProcess5::EnumerateHandles](icordebugprocess5-enumeratehandles-method.md) method only.| + +## Remarks + + The `CorGCReferenceType` enumeration is used as follows: + +- As the value of the `type` field of the [COR_GC_REFERENCE](cor-gc-reference-structure.md) structure, it indicates the source of a reference or handle. + +- As the `types` argument to the [ICorDebugProcess5::EnumerateHandles](icordebugprocess5-enumeratehandles-method.md) method, it specifies the types of handles to include in the enumeration. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [Debugging Enumerations](debugging-enumerations.md) diff --git a/docs/framework/unmanaged-api/debugging/corpubpublish-coclass.md b/docs/framework/unmanaged-api/debugging/corpubpublish-coclass.md index b7118327a841a..e8b71032a921c 100644 --- a/docs/framework/unmanaged-api/debugging/corpubpublish-coclass.md +++ b/docs/framework/unmanaged-api/debugging/corpubpublish-coclass.md @@ -2,60 +2,60 @@ description: "Learn more about: CorpubPublish Coclass" title: "CorpubPublish Coclass" ms.date: "03/30/2017" -api_name: +api_name: - "CorpubPublish Coclass" -api_location: +api_location: - "mscoree.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "CorpubPublish" -helpviewer_keywords: +helpviewer_keywords: - "CorpubPublish coclass [.NET Framework debugging]" ms.assetid: 191015da-f54a-4bac-a28a-1de7ab3c3428 -topic_type: +topic_type: - "apiref" --- # CorpubPublish Coclass -Provides interfaces for publishing information about application domains and processes. - -## Syntax - -```cpp -coclass CorpubPublish { - [default] interface ICorPublish; - interface ICorPublishProcess; - interface ICorPublishAppDomain; - interface ICorPublishProcessEnum; - interface ICorPublishAppDomainEnum; -}; -``` - -## Interfaces - -|Interface|Description| -|---------------|-----------------| -|[ICorPublish Interface](icorpublish-interface.md)|Provides methods for publishing information about processes and the application domains in those processes.| -|[ICorPublishAppDomain Interface](icorpublishappdomain-interface.md)|Represents, and provides information about, an application domain in a process.| -|[ICorPublishAppDomainEnum Interface](icorpublishappdomainenum-interface.md)|Provides methods that traverse a collection of application domains that currently exist within a process.| -|[ICorPublishProcess Interface](icorpublishprocess-interface.md)|Represents a process that is running on a computer.| -|[ICorPublishProcessEnum Interface](icorpublishprocessenum-interface.md)|Provides methods that traverse a collection of processes that are running on a computer.| - -## Remarks - - A typical publishing scenario involves a developer who wants to debug managed code that is running on a computer within an application domain. The hosting environment may be running more than one application domain within a process. The developer would like to use a graphical user interface or some other means to list all of the processes that are running on the computer, and pick a specific process. The listing should include all of the application domains within processes that are running managed code. The developer can then identify the specific application domain and attach a debugger to that domain. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorPub.idl - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Provides interfaces for publishing information about application domains and processes. + +## Syntax + +```cpp +coclass CorpubPublish { + [default] interface ICorPublish; + interface ICorPublishProcess; + interface ICorPublishAppDomain; + interface ICorPublishProcessEnum; + interface ICorPublishAppDomainEnum; +}; +``` + +## Interfaces + +|Interface|Description| +|---------------|-----------------| +|[ICorPublish Interface](icorpublish-interface.md)|Provides methods for publishing information about processes and the application domains in those processes.| +|[ICorPublishAppDomain Interface](icorpublishappdomain-interface.md)|Represents, and provides information about, an application domain in a process.| +|[ICorPublishAppDomainEnum Interface](icorpublishappdomainenum-interface.md)|Provides methods that traverse a collection of application domains that currently exist within a process.| +|[ICorPublishProcess Interface](icorpublishprocess-interface.md)|Represents a process that is running on a computer.| +|[ICorPublishProcessEnum Interface](icorpublishprocessenum-interface.md)|Provides methods that traverse a collection of processes that are running on a computer.| + +## Remarks + + A typical publishing scenario involves a developer who wants to debug managed code that is running on a computer within an application domain. The hosting environment may be running more than one application domain within a process. The developer would like to use a graphical user interface or some other means to list all of the processes that are running on the computer, and pick a specific process. The listing should include all of the application domains within processes that are running managed code. The developer can then identify the specific application domain and attach a debugger to that domain. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorPub.idl + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging](index.md) diff --git a/docs/framework/unmanaged-api/debugging/createcordbobject-function.md b/docs/framework/unmanaged-api/debugging/createcordbobject-function.md index 5824204c74194..5db31fb99fb9a 100644 --- a/docs/framework/unmanaged-api/debugging/createcordbobject-function.md +++ b/docs/framework/unmanaged-api/debugging/createcordbobject-function.md @@ -2,67 +2,67 @@ description: "Learn more about: CreateCordbObject Function" title: "CreateCordbObject Function" ms.date: "03/30/2017" -api_name: +api_name: - "CreateCoredbObject" -api_location: +api_location: - "mscordbi_macx86.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "CreateCordbObject" -helpviewer_keywords: +helpviewer_keywords: - "remote debugging API [Silverlight]" - "CreateCordbObject function" - "Silverlight, remote debugging" ms.assetid: b259821d-4fa7-464d-85cf-304dfffc8089 -topic_type: +topic_type: - "apiref" --- # CreateCordbObject Function -Creates a debugger interface ([ICorDebug](icordebug-interface.md)) that provides functionality for instantiating a managed debugging session on a remote process. - -## Syntax - -```cpp -HRESULT CordbCreateObject ( +Creates a debugger interface ([ICorDebug](icordebug-interface.md)) that provides functionality for instantiating a managed debugging session on a remote process. + +## Syntax + +```cpp +HRESULT CordbCreateObject ( [in] int iDebuggerVersion, - [out] IUnknown** ppCordb -); -``` - -## Parameters - - `iDebuggerVersion` - [in] Debugger version of the target process. This parameter must be CorDebugVersion_2_0 for remote debugging. - - `ppCordb` - [out] Pointer to a pointer to an object that will be cast to an [ICorDebug](icordebug-interface.md) interface and returned. - -## Return Value - - S_OK - The number of CLRs in the process was successfully determined, and the corresponding handle and path arrays were properly filled. - - E_INVALIDARG - `ppCordb` is null, or `iDebuggerVersion` is not CorDebugVersion_2_0. - - E_OUTOFMEMORY - Unable to allocate enough memory for `ppCordb` - - E_FAIL (or other E_ return codes) - Other failures. - -## Remarks - - The [ICorDebug](icordebug-interface.md) interface that is returned in `ppCordb` is the top-level debugging interface for all managed debugging services. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CoreClrRemoteDebuggingInterfaces.h - - **Library:** mscordbi_macx86.dll - + [out] IUnknown** ppCordb +); +``` + +## Parameters + + `iDebuggerVersion` + [in] Debugger version of the target process. This parameter must be CorDebugVersion_2_0 for remote debugging. + + `ppCordb` + [out] Pointer to a pointer to an object that will be cast to an [ICorDebug](icordebug-interface.md) interface and returned. + +## Return Value + + S_OK + The number of CLRs in the process was successfully determined, and the corresponding handle and path arrays were properly filled. + + E_INVALIDARG + `ppCordb` is null, or `iDebuggerVersion` is not CorDebugVersion_2_0. + + E_OUTOFMEMORY + Unable to allocate enough memory for `ppCordb` + + E_FAIL (or other E_ return codes) + Other failures. + +## Remarks + + The [ICorDebug](icordebug-interface.md) interface that is returned in `ppCordb` is the top-level debugging interface for all managed debugging services. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CoreClrRemoteDebuggingInterfaces.h + + **Library:** mscordbi_macx86.dll + **.NET Framework Versions:** 3.5 SP1 diff --git a/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversion-function-for-silverlight.md b/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversion-function-for-silverlight.md index 959b1c611f5cf..78db472d08169 100644 --- a/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversion-function-for-silverlight.md +++ b/docs/framework/unmanaged-api/debugging/createdebugginginterfacefromversion-function-for-silverlight.md @@ -2,9 +2,9 @@ description: "Learn more about: CreateDebuggingInterfaceFromVersion Function for Silverlight" title: "CreateDebuggingInterfaceFromVersion Function for Silverlight" ms.date: "03/30/2017" -f1_keywords: +f1_keywords: - "CreateDebuggingInterfaceFromVersion" -helpviewer_keywords: +helpviewer_keywords: - "CreateDebuggingInterfaceFromVersion function" - "debugging API [Silverlight]" - "Silverlight, debugging" @@ -12,52 +12,52 @@ ms.assetid: 35c7a18f-133a-4584-bd25-bb338568b0c6 --- # CreateDebuggingInterfaceFromVersion Function for Silverlight -Accepts a common language runtime (CLR) version string that is returned from the [CreateVersionStringFromModule function](../../../core/unmanaged-api/debugging/createversionstringfrommodule-function.md), and returns a corresponding debugger interface (typically, [ICorDebug](icordebug-interface.md)). - -## Syntax - -```cpp -HRESULT CreateDebuggingInterfaceFromVersion ( - [in] LPCWSTR szDebuggeeVersion, - [out] IUnknown** ppCordb, -); -``` - -## Parameters +Accepts a common language runtime (CLR) version string that is returned from the [CreateVersionStringFromModule function](../../../core/unmanaged-api/debugging/createversionstringfrommodule-function.md), and returns a corresponding debugger interface (typically, [ICorDebug](icordebug-interface.md)). + +## Syntax + +```cpp +HRESULT CreateDebuggingInterfaceFromVersion ( + [in] LPCWSTR szDebuggeeVersion, + [out] IUnknown** ppCordb, +); +``` + +## Parameters `szDebuggeeVersion`\ - [in] Version string of the CLR in the target debuggee, which is returned by the [CreateVersionStringFromModule function](../../../core/unmanaged-api/debugging/createversionstringfrommodule-function.md). - + [in] Version string of the CLR in the target debuggee, which is returned by the [CreateVersionStringFromModule function](../../../core/unmanaged-api/debugging/createversionstringfrommodule-function.md). + `ppCordb`\ - [out] Pointer to a pointer to a COM object (`IUnknown`). This object will be cast to an [ICorDebug](icordebug-interface.md) object before it is returned. - + [out] Pointer to a pointer to a COM object (`IUnknown`). This object will be cast to an [ICorDebug](icordebug-interface.md) object before it is returned. + ## Return Value `S_OK`\ - `ppCordb` references a valid object that implements the [ICorDebug interface](icordebug-interface.md) interface. - + `ppCordb` references a valid object that implements the [ICorDebug interface](icordebug-interface.md) interface. + `E_INVALIDARG`\ - Either `szDebuggeeVersion` or `ppCordb` is null. - + Either `szDebuggeeVersion` or `ppCordb` is null. + `CORDBG_E_DEBUG_COMPONENT_MISSING`\ - A component that is necessary for CLR debugging cannot be located. Either _mscordbi.dll_ or _mscordaccore.dll_ was not found in the same directory as the target CoreCLR.dll. - + A component that is necessary for CLR debugging cannot be located. Either _mscordbi.dll_ or _mscordaccore.dll_ was not found in the same directory as the target CoreCLR.dll. + `CORDBG_E_INCOMPATIBLE_PROTOCOL`\ - Either mscordbi.dll or mscordaccore.dll is not the same version as the target CoreCLR.dll. - + Either mscordbi.dll or mscordaccore.dll is not the same version as the target CoreCLR.dll. + `E_FAIL` (or other `E_` return codes)\ - Unable to return an [ICorDebug interface](icordebug-interface.md). - + Unable to return an [ICorDebug interface](icordebug-interface.md). + ## Remarks - The interface that is returned provides the facilities for attaching to a CLR in a target process and debugging the managed code that the CLR is running. - + The interface that is returned provides the facilities for attaching to a CLR in a target process and debugging the managed code that the CLR is running. + ## Requirements - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** dbgshim.h - - **Library:** dbgshim.dll - + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** dbgshim.h + + **Library:** dbgshim.dll + **.NET Framework Versions:** 3.5 SP1 diff --git a/docs/framework/unmanaged-api/debugging/createversionstringfrommodule-function-for-silverlight.md b/docs/framework/unmanaged-api/debugging/createversionstringfrommodule-function-for-silverlight.md index 94256e6e88684..5531c6ec8eed1 100644 --- a/docs/framework/unmanaged-api/debugging/createversionstringfrommodule-function-for-silverlight.md +++ b/docs/framework/unmanaged-api/debugging/createversionstringfrommodule-function-for-silverlight.md @@ -2,83 +2,83 @@ description: "Learn more about: CreateVersionStringFromModule Function for Silverlight" title: "CreateVersionStringFromModule Function for Silverlight" ms.date: "03/30/2017" -api_name: +api_name: - "CreateVersionStringFromModule" -api_location: +api_location: - "dbgshim.dll" -f1_keywords: +f1_keywords: - "CreateVersionStringFromModule" -helpviewer_keywords: +helpviewer_keywords: - "debugging API [Silverlight]" - "Silverlight, debugging" - "CreateVersionStringFromModule function" ms.assetid: 3d2fe9bd-75ef-4364-84a6-da1e1994ac1a -topic_type: +topic_type: - "apiref" --- # CreateVersionStringFromModule Function for Silverlight -Creates a version string from a common language runtime (CLR) path in a target process. - -## Syntax - -```cpp -HRESULT CreateVersionStringFromModule ( - [in] DWORD pidDebuggee, - [in] LPCWSTR szModuleName, - [out, size_is(cchBuffer), - length_is(*pdwLength)] LPWSTR Buffer, - [in] DWORD cchBuffer, - [out] DWORD* pdwLength -); -``` - -## Parameters - - `pidDebuggee` - [in] Identifier of the process in which the target CLR is loaded. - - `szModuleName` - [in] Full or relative path to the target CLR that is loaded in the process. - - `pBuffer` - [out] Return buffer for storing the version string for the target CLR. - - `cchBuffer` - [in] Size of `pBuffer`. - - `pdwLength` - [out] Length of the version string returned by `pBuffer`. - -## Return Value - - S_OK - The version string for the target CLR was successfully returned in `pBuffer`. - - E_INVALIDARG - `szModuleName` is null, or either `pBuffer` or `cchBuffer` is null. `pBuffer` and `cchBuffer` must both be null or non-null. - - HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER) - `pdwLength` is greater than `cchBuffer`. This may be an expected result if you have passed null for both `pBuffer` and `cchBuffer`, and queried the necessary buffer size by using `pdwLength`. - - HRESULT_FROM_WIN32(ERROR_MOD_NOT_FOUND) - `szModuleName` does not contain a path to a valid CLR in the target process. - - E_FAIL (or other E_ return codes) - `pidDebuggee` does not refer to a valid process, or other failure. - -## Remarks - - This function accepts a CLR process that is identified by `pidDebuggee` and a string path that is specified by `szModuleName`. The version string is returned in the buffer that `pBuffer` points to. This string is opaque to the function user; that is, there is no intrinsic meaning in the version string itself. It is used solely in the context of this function and the [CreateDebuggingInterfaceFromVersion function](createdebugginginterfacefromversion-function-for-silverlight.md). - - This function should be called twice. When you call it the first time, pass null for both `pBuffer` and `cchBuffer`. When you do this, the size of the buffer necessary for `pBuffer` will be returned in `pdwLength`. You can then call the function a second time, and pass the buffer in `pBuffer` and its size in `cchBuffer`. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** dbgshim.h - - **Library:** dbgshim.dll - +Creates a version string from a common language runtime (CLR) path in a target process. + +## Syntax + +```cpp +HRESULT CreateVersionStringFromModule ( + [in] DWORD pidDebuggee, + [in] LPCWSTR szModuleName, + [out, size_is(cchBuffer), + length_is(*pdwLength)] LPWSTR Buffer, + [in] DWORD cchBuffer, + [out] DWORD* pdwLength +); +``` + +## Parameters + + `pidDebuggee` + [in] Identifier of the process in which the target CLR is loaded. + + `szModuleName` + [in] Full or relative path to the target CLR that is loaded in the process. + + `pBuffer` + [out] Return buffer for storing the version string for the target CLR. + + `cchBuffer` + [in] Size of `pBuffer`. + + `pdwLength` + [out] Length of the version string returned by `pBuffer`. + +## Return Value + + S_OK + The version string for the target CLR was successfully returned in `pBuffer`. + + E_INVALIDARG + `szModuleName` is null, or either `pBuffer` or `cchBuffer` is null. `pBuffer` and `cchBuffer` must both be null or non-null. + + HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER) + `pdwLength` is greater than `cchBuffer`. This may be an expected result if you have passed null for both `pBuffer` and `cchBuffer`, and queried the necessary buffer size by using `pdwLength`. + + HRESULT_FROM_WIN32(ERROR_MOD_NOT_FOUND) + `szModuleName` does not contain a path to a valid CLR in the target process. + + E_FAIL (or other E_ return codes) + `pidDebuggee` does not refer to a valid process, or other failure. + +## Remarks + + This function accepts a CLR process that is identified by `pidDebuggee` and a string path that is specified by `szModuleName`. The version string is returned in the buffer that `pBuffer` points to. This string is opaque to the function user; that is, there is no intrinsic meaning in the version string itself. It is used solely in the context of this function and the [CreateDebuggingInterfaceFromVersion function](createdebugginginterfacefromversion-function-for-silverlight.md). + + This function should be called twice. When you call it the first time, pass null for both `pBuffer` and `cchBuffer`. When you do this, the size of the buffer necessary for `pBuffer` will be returned in `pdwLength`. You can then call the function a second time, and pass the buffer in `pBuffer` and its size in `cchBuffer`. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** dbgshim.h + + **Library:** dbgshim.dll + **.NET Framework Versions:** 3.5 SP1 diff --git a/docs/framework/unmanaged-api/debugging/debugging-enumerations.md b/docs/framework/unmanaged-api/debugging/debugging-enumerations.md index 90c52217f6589..d74e5036273fd 100644 --- a/docs/framework/unmanaged-api/debugging/debugging-enumerations.md +++ b/docs/framework/unmanaged-api/debugging/debugging-enumerations.md @@ -16,9 +16,48 @@ This section describes the unmanaged enumerations that the debugging API uses. [CLR_DEBUGGING_PROCESS_FLAGS Enumeration](clr-debugging-process-flags-enumeration.md)\ Provides values that are used by the [ICLRDebugging::OpenVirtualProcess](iclrdebugging-openvirtualprocess-method.md) method. + [CLRDataAddressType Enumeration](clrdataaddresstype-enumeration.md)\ + Indicates the type of data contained at a given address by the [IXCLRDataProcess::GetAddressType](ixclrdataprocess-getaddresstype-method.md) + + [CLRDataByNameFlag Enumeration](clrdatabynameflag-enumeration.md)\ + Indicates how names should match in a search. + + [CLRDataDetailedFrameType Enumeration](clrdatadetailedframetype-enumeration.md)\ + Describes a type of frame in the call stack in detail from the [IXCLRDataStackWalk::GetFrameType](ixclrdatastackwalk-getframetype-method.md) method. + [CLRDataEnumMemoryFlags Enumeration](clrdataenummemoryflags-enumeration.md)\ Indicates which memory regions a call to the [ICLRDataEnumMemoryRegions::EnumMemoryRegions](iclrdataenummemoryregions-enummemoryregions-method.md) method should include. + [CLRDataExceptionSameFlag Enumeration](clrdataexceptionsameflag-enumeration.md)\ + Indicates how exception states should match against system records. + + [CLRDataFieldFlag Enumeration](clrdatafieldflag-enumeration.md)\ + Indicates various attributes of a field. + + [CLRDataFollowStubInFlag Enumeration](clrdatafollowstubinflag-enumeration.md)\ + A set of flags passed to [IXCLRDataProcess::FollowStub](ixclrdataprocess-followstub-method.md) and [IXCLRDataProcess::FollowStub2](ixclrdataprocess-followstub2-method.md) that define how to follow the stub. + + [CLRDataFollowStubOutFlag Enumeration](clrdatafollowstuboutflag-enumeration.md)\ + A set of flags returned from [IXCLRDataProcess::FollowStub](ixclrdataprocess-followstub-method.md) and [IXCLRDataProcess::FollowStub2](ixclrdataprocess-followstub2-method.md) that indicate the result of following a stub. + + [CLRDataMethodCodeNotification Enumeration](clrdatamethodcodenotification-enumeration.md)\ + Indicates the type of notifications pertaining to method instance code that should be delivered. Used in calls to [IXCLRDataProcess::SetCodeNotifications](ixclrdataprocess-setcodenotifications-method.md) and [IXCLRDataProcess::SetAllCodeNotifications Method](ixclrdataprocess-setallcodenotifications-method.md). + + [CLRDataModuleExtentType Enumeration](clrdatamoduleextenttype-enumeration.md)\ + Indicates the type of memory region associated with a module via [IXCLRDataModule::EnumExtent](ixclrdatamodule-enumextent-method.md). + + [CLRDataOtherNotifyFlag Enumeration](clrdataothernotifyflag-enumeration.md)\ + Indicates the type of notifications that should be delivered. Used in calls to [IXCLRDataProcess::SetOtherNotificationFlags Method](ixclrdataprocess-setothernotificationflags-method.md). + + [CLRDataSimpleFrameType Enumeraiton](clrdatasimpleframetype-enumeration.md)\ + Describes a type of frame in the call stack from [IXCLRDataStackWalk::GetFrameType](ixclrdatastackwalk-getframetype-method.md). + + [CLRDataSourceType Enumeration](clrdatasourcetype-enumeration.md)\ + Provides values that are used by the CLRDATA_IL_ADDRESS_MAP structure. + + [CLRDataValueFlag Enumeration](clrdatavalueflag-enumeration.md)\ + Indicates various attributes of a value. + [COR_PUB_ENUMPROCESS Enumeration](cor-pub-enumprocess-enumeration.md)\ Identifies the type of process to be enumerated. @@ -133,9 +172,6 @@ This section describes the unmanaged enumerations that the debugging API uses. [WriteableMetadataUpdateMode Enumeration](writeablemetadataupdatemode-enumeration.md)\ Provides values that specify whether in-memory updates to metadata are visible to a debugger. - [ClrDataSourceType Enumeration](clrdatasourcetype-enumeration.md)\ - Provides values that are used by the CLRDATA_IL_ADDRESS_MAP structure. - ## Related Sections [Debugging Coclasses](debugging-coclasses.md) diff --git a/docs/framework/unmanaged-api/debugging/debugging-interfaces.md b/docs/framework/unmanaged-api/debugging/debugging-interfaces.md index 5109173db3228..9039e7fcb18bd 100644 --- a/docs/framework/unmanaged-api/debugging/debugging-interfaces.md +++ b/docs/framework/unmanaged-api/debugging/debugging-interfaces.md @@ -440,6 +440,30 @@ This section describes the unmanaged interfaces that handle the debugging of a p [ISOSDacInterface Interface](isosdacinterface-interface.md)\ Provides helper methods to access data from `SOS`. + [IXCLRDataAppDomain Interface](ixclrdataappdomain-interface.md)\ + Provides methods for querying information about an AppDomain. + + [IXCLRDataExceptionNotification Interface](ixclrdataexceptionnotification-interface.md)\ + Provides a set of callbacks to notify a caller about managed events. + + [IXCLRDataExceptionNotification2 Interface](ixclrdataexceptionnotification2-interface.md)\ + Provides a set of callbacks to notify a caller about managed events. + + [IXCLRDataExceptionNotification3 Interface](ixclrdataexceptionnotification3-interface.md)\ + Provides a set of callbacks to notify a caller about managed events. + + [IXCLRDataExceptionNotification4 Interface](ixclrdataexceptionnotification4-interface.md)\ + Provides a set of callbacks to notify a caller about managed events. + + [IXCLRDataExceptionNotification5 Interface](ixclrdataexceptionnotification5-interface.md)\ + Provides a set of callbacks to notify a caller about managed events. + + [IXCLRDataExceptionState Interface](ixclrdataexceptionstate-interface.md)\ + Provides methods for querying information about a managed exception. + + [IXCLRDataFrame Interface](ixclrdataframe-interface.md)\ + Provides methods for querying information about a stack frame + [IXCLRDataMethodDefinition Interface](ixclrdatamethoddefinition-interface.md)\ Provides methods for querying information about a method definition. @@ -452,6 +476,21 @@ This section describes the unmanaged interfaces that handle the debugging of a p [IXCLRDataProcess Interface](ixclrdataprocess-interface.md)\ Provides methods for querying information about a process. + [IXCLRDataStackWalk Interface](ixclrdatastackwalk-interface.md)\ + Provides methods for walking the stack. + + [IXCLRDataTask Interface](ixclrdatatask-interface.md)\ + Provides methods for querying information about a managed task. + + [IXCLRDataTypeDefinition Interface](ixclrdatatypedefinition-interface.md)\ + Provides methods for querying information about a type definition. + + [IXCLRDataTypeInstance Interface](ixclrdatatypeinstance-interface.md)\ + Provides methods for querying information about a type instance. + + [IXCLRDataValue Interface](ixclrdatavalue-interface.md)\ + Provides methods for querying information about a managed value. + ## Related Sections [Debugging Coclasses](debugging-coclasses.md)\ diff --git a/docs/framework/unmanaged-api/debugging/debugging-structures.md b/docs/framework/unmanaged-api/debugging/debugging-structures.md index 52d5c05cfde99..9ae69f36eebe3 100644 --- a/docs/framework/unmanaged-api/debugging/debugging-structures.md +++ b/docs/framework/unmanaged-api/debugging/debugging-structures.md @@ -20,6 +20,10 @@ This section describes the unmanaged structures that the debugging API uses. [CLRDATA_IL_ADDRESS_MAP Structure](clrdata-il-address-map-structure.md) Defines an IL to address mapping + [CLRDATA_METHDEF_EXTENT Structure](clrdata-methdef-extent-structure.md) Describes an IL code region associated with a method. + + [CLRDATA_MODULE_EXTENT Structure](clrdata-module-extent-structure.md) Describes a memory region associated with a module. + [CLR_DEBUGGING_VERSION Structure](clr-debugging-version-structure.md) Defines the product version of the common language runtime (CLR) for debugging purposes. @@ -89,6 +93,8 @@ This section describes the unmanaged structures that the debugging API uses. [DacpReJitData Structure](dacprejitdata-structure.md) Defines the basic information about a given profiler-instrumented method. + [GcEvtArgs Structure](gcevtargs-structure.md) Describes a particular GC event which occurred. + [StackTrace_SimpleContext Structure](stacktrace-simplecontext-structure.md) Provides a simple context that can be used in place of a full `CONTEXT` structure. diff --git a/docs/framework/unmanaged-api/debugging/efn-getmanagedexcepstack-function.md b/docs/framework/unmanaged-api/debugging/efn-getmanagedexcepstack-function.md index c6f300b0d0687..84f6cf0572cb4 100644 --- a/docs/framework/unmanaged-api/debugging/efn-getmanagedexcepstack-function.md +++ b/docs/framework/unmanaged-api/debugging/efn-getmanagedexcepstack-function.md @@ -2,61 +2,61 @@ description: "Learn more about: _EFN_GetManagedExcepStack Function" title: "_EFN_GetManagedExcepStack Function" ms.date: "03/30/2017" -api_name: +api_name: - "_EFN_GetManagedExcepStack" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "_EFN_GetManagedExcepStack" -helpviewer_keywords: +helpviewer_keywords: - "_EFN_GetManagedExcepStack function [.NET Framework debugging]" ms.assetid: 21ceed9e-62b2-4024-b027-6d095109955a -topic_type: +topic_type: - "apiref" --- # \_EFN\_GetManagedExcepStack Function -Given a managed exception object address, returns a string version of the stack trace contained inside. - -## Syntax - -```cpp -HRESULT _EFN_GetManagedExcepStack( - [in] PDEBUG_CLIENT Client, - [in] ULONG64 StackObjAddr, - [out] __out_ecount(cbString) PSTR szStackString, - [out] ULONG cbString -); -``` - -## Parameters - - `Client` - [in] The client being debugged. - - `StackObjAddr` - [in] A managed object pointer, derived from . - - szStackString - [out] The returned string. - - `cbString` - [out] The number of characters available in the string buffer. - -## Remarks - - If there is no managed code on the thread currently in context, the function returns HRESULT SOS_E_NOMANAGEDCODE with a facility value of 0xa0 and an error code of 0x1000. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** SOS_Stacktrace.h - - **.NET Framework Version:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +Given a managed exception object address, returns a string version of the stack trace contained inside. + +## Syntax + +```cpp +HRESULT _EFN_GetManagedExcepStack( + [in] PDEBUG_CLIENT Client, + [in] ULONG64 StackObjAddr, + [out] __out_ecount(cbString) PSTR szStackString, + [out] ULONG cbString +); +``` + +## Parameters + + `Client` + [in] The client being debugged. + + `StackObjAddr` + [in] A managed object pointer, derived from . + + szStackString + [out] The returned string. + + `cbString` + [out] The number of characters available in the string buffer. + +## Remarks + + If there is no managed code on the thread currently in context, the function returns HRESULT SOS_E_NOMANAGEDCODE with a facility value of 0xa0 and an error code of 0x1000. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** SOS_Stacktrace.h + + **.NET Framework Version:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [Debugging Global Static Functions](debugging-global-static-functions.md) diff --git a/docs/framework/unmanaged-api/debugging/efn-getmanagedobjectfieldinfo-function.md b/docs/framework/unmanaged-api/debugging/efn-getmanagedobjectfieldinfo-function.md index e0837dec38f3a..716fcd61f5275 100644 --- a/docs/framework/unmanaged-api/debugging/efn-getmanagedobjectfieldinfo-function.md +++ b/docs/framework/unmanaged-api/debugging/efn-getmanagedobjectfieldinfo-function.md @@ -2,67 +2,67 @@ description: "Learn more about: _EFN_GetManagedObjectFieldInfo Function" title: "_EFN_GetManagedObjectFieldInfo Function" ms.date: "03/30/2017" -api_name: +api_name: - "_EFN_GetManagedObjectFieldInfo" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "_EFN_GetManagedObjectFieldInfo" -helpviewer_keywords: +helpviewer_keywords: - "_EFN_GetManagedObjectFieldInfo function [.NET Framework debugging]" ms.assetid: 3b93bcff-62a4-47b2-babc-6bcf4216119a -topic_type: +topic_type: - "apiref" --- # \_EFN\_GetManagedObjectFieldInfo Function -Gets the offset from the start of an object to a field and the field's value, using the provided object pointer and field name. - -## Syntax - -```cpp -HRESULT _EFN_GetManagedObjectFieldInfo( - [in] PDEBUG_CLIENT Client, - [in] ULONG64 objAddr, - [in] __out_ecount (mdNameLen) PSTR szFieldName, - [out] PULONG64 pValue, - [out] PULONG pOffset -); -``` - -## Parameters - - `Client` - [in] A pointer to the debug client. - - `objAddr` - [in] A managed object pointer. - - szFieldName - [in] A managed object pointer to the field name. - - `pValue` - [out] The field value. This parameter can be null. - - `pOffset` - [out] The offset from `objAddr` to the field. This parameter can be null. - -## Remarks - - If the offset is 0, no offset is written. - - If there is no managed code on the thread currently in context, the function returns HRESULT SOS_E_NOMANAGEDCODE with a facility value of 0xa0 and an error code of 0x1000. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** SOS_Stacktrace.h - - **.NET Framework Version:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +Gets the offset from the start of an object to a field and the field's value, using the provided object pointer and field name. + +## Syntax + +```cpp +HRESULT _EFN_GetManagedObjectFieldInfo( + [in] PDEBUG_CLIENT Client, + [in] ULONG64 objAddr, + [in] __out_ecount (mdNameLen) PSTR szFieldName, + [out] PULONG64 pValue, + [out] PULONG pOffset +); +``` + +## Parameters + + `Client` + [in] A pointer to the debug client. + + `objAddr` + [in] A managed object pointer. + + szFieldName + [in] A managed object pointer to the field name. + + `pValue` + [out] The field value. This parameter can be null. + + `pOffset` + [out] The offset from `objAddr` to the field. This parameter can be null. + +## Remarks + + If the offset is 0, no offset is written. + + If there is no managed code on the thread currently in context, the function returns HRESULT SOS_E_NOMANAGEDCODE with a facility value of 0xa0 and an error code of 0x1000. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** SOS_Stacktrace.h + + **.NET Framework Version:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [Debugging Global Static Functions](debugging-global-static-functions.md) diff --git a/docs/framework/unmanaged-api/debugging/efn-getmanagedobjectname-function.md b/docs/framework/unmanaged-api/debugging/efn-getmanagedobjectname-function.md index 12568a68e0e4c..1eee33864e73c 100644 --- a/docs/framework/unmanaged-api/debugging/efn-getmanagedobjectname-function.md +++ b/docs/framework/unmanaged-api/debugging/efn-getmanagedobjectname-function.md @@ -2,61 +2,61 @@ description: "Learn more about: _EFN_GetManagedObjectName Function" title: "_EFN_GetManagedObjectName Function" ms.date: "03/30/2017" -api_name: +api_name: - "_EFN_GetManagedObjectName" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "_EFN_GetManagedObjectName" -helpviewer_keywords: +helpviewer_keywords: - "_EFN_GetManagedObjectName function [.NET Framework debugging]" ms.assetid: 6e7c6bee-7ced-495f-bf6c-2a5f0c716f7e -topic_type: +topic_type: - "apiref" --- # \_EFN\_GetManagedObjectName Function -Gets the name of a type using the provided managed object pointer. - -## Syntax - -```cpp -HRESULT _EFN_GetManagedObjectName( - [in] PDEBUG_CLIENT Client, - [in] ULONG64 objAddr, - [out] __out_ecount(cbName) PSTR szName, - [out] ULONG cbName -); -``` - -## Parameters - - `Client` - [in] A pointer to the debug client. - - `objAddr` - [in] A managed object pointer. - - szName - [out] The name of the type. - - `cbName` - [out] The number of characters available in the string buffer. - -## Remarks - - If there is no managed code on the thread currently in context, the function returns HRESULT SOS_E_NOMANAGEDCODE with a facility value of 0xa0 and an error code of 0x1000. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** SOS_Stacktrace.h - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +Gets the name of a type using the provided managed object pointer. + +## Syntax + +```cpp +HRESULT _EFN_GetManagedObjectName( + [in] PDEBUG_CLIENT Client, + [in] ULONG64 objAddr, + [out] __out_ecount(cbName) PSTR szName, + [out] ULONG cbName +); +``` + +## Parameters + + `Client` + [in] A pointer to the debug client. + + `objAddr` + [in] A managed object pointer. + + szName + [out] The name of the type. + + `cbName` + [out] The number of characters available in the string buffer. + +## Remarks + + If there is no managed code on the thread currently in context, the function returns HRESULT SOS_E_NOMANAGEDCODE with a facility value of 0xa0 and an error code of 0x1000. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** SOS_Stacktrace.h + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [Debugging Global Static Functions](debugging-global-static-functions.md) diff --git a/docs/framework/unmanaged-api/debugging/efn-stacktrace-function.md b/docs/framework/unmanaged-api/debugging/efn-stacktrace-function.md index ba462750a7de9..c528580d68342 100644 --- a/docs/framework/unmanaged-api/debugging/efn-stacktrace-function.md +++ b/docs/framework/unmanaged-api/debugging/efn-stacktrace-function.md @@ -2,102 +2,102 @@ description: "Learn more about: _EFN_StackTrace Function" title: "_EFN_StackTrace Function" ms.date: "03/30/2017" -api_name: +api_name: - "_EFN_StackTrace" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "_EFN_StackTrace" -helpviewer_keywords: +helpviewer_keywords: - "_EFN_StackTrace function [.NET Framework debugging]" ms.assetid: caea7754-867c-4360-a65c-5ced4408fd9d -topic_type: +topic_type: - "apiref" --- # \_EFN\_StackTrace Function -Provides a text representation of a managed stack trace and an array of `CONTEXT` records, one for each transition between unmanaged and managed code. - -## Syntax - -```cpp -HRESULT CALLBACK _EFN_StackTrace( - [in] PDEBUG_CLIENT Client, - [out] WCHAR wszTextOut[], - [out] size_t *puiTextLength, - [out] LPVOID pTransitionContexts, - [out] size_t *puiTransitionContextCount, - [in] size_t uiSizeOfContext, - [in] DWORD Flags -); -``` - -## Parameters - - `Client` - [in] The client being debugged. - - `wszTextOut` - [out] The text representation of the stack trace. - - `puiTextLength` - [out] A pointer to the number of characters in `wszTextOut`. - - `pTransitionContexts` - [out] The array of transition contexts. - - `puiTransitionContextCount` - [out] A pointer to the number of transition contexts in the array. - - `uiSizeOfContext` - [in] The size of the context structure. - - `Flags` - [in] Set to either 0 or SOS_STACKTRACE_SHOWADDRESSES (0x01) to show the EBP register and the enter stack pointer (ESP) in front of each `module!functionname` line. - -## Remarks - - The `_EFN_StackTrace` structure can be called from a WinDbg programmatic interface. Parameters are used as follows: - -- If `wszTextOut` is null and `puiTextLength` is not null, the function returns the string length in `puiTextLength`. - -- If `wszTextOut` is not null, the function stores text in `wszTextOut` up to the location indicated by `puiTextLength`. It returns successfully if there was enough room in the buffer, or returns E_OUTOFMEMORY if the buffer was not long enough. - -- The transition portion of the function is ignored if `pTransitionContexts` and `puiTransitionContextCount` are both null. In this case, the function provides callers with text output of only the function names. - -- If `pTransitionContexts` is null and `puiTransitionContextCount` is not null, the function returns the necessary number of context entries in `puiTransitionContextCount`. - -- If `pTransitionContexts` is not null, the function treats it as an array of structures of length `puiTransitionContextCount`. The structure size is given by `uiSizeOfContext`, and must be the size of [SimpleContext](stacktrace-simplecontext-structure.md) or `CONTEXT` for the architecture. - -- `wszTextOut` is written in the following format: - - ```output - "![+] - ... - (TRANSITION) - ..." - ``` - -- If the offset in hex is 0x0, no offset is written. - -- If there is no managed code on the thread currently in context, the function returns SOS_E_NOMANAGEDCODE. - -- The `Flags` parameter is either 0 or SOS_STACKTRACE_SHOWADDRESSES to see EBP and ESP in front of each `module!functionname` line. By default, it is 0. - - ```cpp - #define SOS_STACKTRACE_SHOWADDRESSES 0x00000001 - ``` - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** SOS_Stacktrace.h - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +Provides a text representation of a managed stack trace and an array of `CONTEXT` records, one for each transition between unmanaged and managed code. + +## Syntax + +```cpp +HRESULT CALLBACK _EFN_StackTrace( + [in] PDEBUG_CLIENT Client, + [out] WCHAR wszTextOut[], + [out] size_t *puiTextLength, + [out] LPVOID pTransitionContexts, + [out] size_t *puiTransitionContextCount, + [in] size_t uiSizeOfContext, + [in] DWORD Flags +); +``` + +## Parameters + + `Client` + [in] The client being debugged. + + `wszTextOut` + [out] The text representation of the stack trace. + + `puiTextLength` + [out] A pointer to the number of characters in `wszTextOut`. + + `pTransitionContexts` + [out] The array of transition contexts. + + `puiTransitionContextCount` + [out] A pointer to the number of transition contexts in the array. + + `uiSizeOfContext` + [in] The size of the context structure. + + `Flags` + [in] Set to either 0 or SOS_STACKTRACE_SHOWADDRESSES (0x01) to show the EBP register and the enter stack pointer (ESP) in front of each `module!functionname` line. + +## Remarks + + The `_EFN_StackTrace` structure can be called from a WinDbg programmatic interface. Parameters are used as follows: + +- If `wszTextOut` is null and `puiTextLength` is not null, the function returns the string length in `puiTextLength`. + +- If `wszTextOut` is not null, the function stores text in `wszTextOut` up to the location indicated by `puiTextLength`. It returns successfully if there was enough room in the buffer, or returns E_OUTOFMEMORY if the buffer was not long enough. + +- The transition portion of the function is ignored if `pTransitionContexts` and `puiTransitionContextCount` are both null. In this case, the function provides callers with text output of only the function names. + +- If `pTransitionContexts` is null and `puiTransitionContextCount` is not null, the function returns the necessary number of context entries in `puiTransitionContextCount`. + +- If `pTransitionContexts` is not null, the function treats it as an array of structures of length `puiTransitionContextCount`. The structure size is given by `uiSizeOfContext`, and must be the size of [SimpleContext](stacktrace-simplecontext-structure.md) or `CONTEXT` for the architecture. + +- `wszTextOut` is written in the following format: + + ```output + "![+] + ... + (TRANSITION) + ..." + ``` + +- If the offset in hex is 0x0, no offset is written. + +- If there is no managed code on the thread currently in context, the function returns SOS_E_NOMANAGEDCODE. + +- The `Flags` parameter is either 0 or SOS_STACKTRACE_SHOWADDRESSES to see EBP and ESP in front of each `module!functionname` line. By default, it is 0. + + ```cpp + #define SOS_STACKTRACE_SHOWADDRESSES 0x00000001 + ``` + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** SOS_Stacktrace.h + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [Debugging Global Static Functions](debugging-global-static-functions.md) diff --git a/docs/framework/unmanaged-api/debugging/enumerateclrs-function-for-silverlight.md b/docs/framework/unmanaged-api/debugging/enumerateclrs-function-for-silverlight.md index 2728266285cb4..e5d03989e09d4 100644 --- a/docs/framework/unmanaged-api/debugging/enumerateclrs-function-for-silverlight.md +++ b/docs/framework/unmanaged-api/debugging/enumerateclrs-function-for-silverlight.md @@ -2,79 +2,79 @@ description: "Learn more about: EnumerateCLRs Function for Silverlight" title: "EnumerateCLRs Function for Silverlight" ms.date: "03/30/2017" -api_name: +api_name: - "EnumerateCLRs" -api_location: +api_location: - "dbgshim.dll" -f1_keywords: +f1_keywords: - "EnumerateCLRs" -helpviewer_keywords: +helpviewer_keywords: - "debugging API [Silverlight]" - "Silverlight, debugging" - "EnumerateCLRs function" ms.assetid: f8d50cb3-ec4f-4529-8fe3-bd61fd28e13c -topic_type: +topic_type: - "apiref" --- # EnumerateCLRs Function for Silverlight -Provides a mechanism for enumerating the CLRs in a process. - -## Syntax - -```cpp -HRESULT EnumerateCLRs ( - [in] DWORD debuggeePID, - [out] HANDLE** ppHandleArrayOut, - [out] LPWSTR** ppStringArrayOut, - [out] DWORD* pdwArrayLengthOut -); -``` - -## Parameters - - `debuggeePID` - [in] Process identifier of the process from which loaded CLRs will be enumerated. - - `ppHandleArrayOut` - [out] Pointer to an array containing event handles that are used to continue a CLR startup. Each handle in the array is not guaranteed to be valid. If valid, the handle is to be used as the continue-startup event for the corresponding runtime located in the same index of `ppStringArrayOut`. - - `ppStringArrayOut` - [out] Pointer to an array of strings that specify full paths to CLRs loaded in the process. - - `pdwArrayLengthOut` - [out] Pointer to a DWORD that contains the length of the equally sized `ppHandleArrayOut` and `pdwArrayLengthOut`. - -## Return Value - - S_OK - The number of CLRs in the process was successfully determined, and the corresponding handle and path arrays were properly filled. - - E_INVALIDARG - Either `ppHandleArrayOut` or `ppStringArrayOut` is null, or `pdwArrayLengthOut` is null. - - E_OUTOFMEMORY - The function is unable to allocate enough memory for the handle and path arrays. - - E_FAIL (or other E_ return codes) - Unable to enumerate loaded CLRs. - -## Remarks - - For a target process that is identified by `debuggeePID`, the function returns an array of paths, `ppStringArrayOut`, to CLRs loaded in the process; an array of event handles, `ppHandleArrayOut`, which may contain a continue-startup event for the CLR at the same index; and the size of the arrays, `pdwArrayLengthOut`, which specifies the number of CLRs that are loaded. - - On the Windows operating system, `debuggeePID` maps to an OS process identifier. - - The memory for `ppHandleArrayOut` and `ppStringArrayOut` are allocated by this function. To free the memory allocated, you must call [CloseCLREnumeration Function](../../../core/unmanaged-api/debugging/closeclrenumeration-function.md). - - This function can be called with both array parameters set to null in order to return the count of CLRs in the target process. From this count, a caller can infer the size of the buffer that will be created: `(sizeof(HANDLE) * count) + (sizeof(LPWSTR) * count) + (sizeof(WCHAR*) * count * MAX_PATH)`. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** dbgshim.h - - **Library:** dbgshim.dll - +Provides a mechanism for enumerating the CLRs in a process. + +## Syntax + +```cpp +HRESULT EnumerateCLRs ( + [in] DWORD debuggeePID, + [out] HANDLE** ppHandleArrayOut, + [out] LPWSTR** ppStringArrayOut, + [out] DWORD* pdwArrayLengthOut +); +``` + +## Parameters + + `debuggeePID` + [in] Process identifier of the process from which loaded CLRs will be enumerated. + + `ppHandleArrayOut` + [out] Pointer to an array containing event handles that are used to continue a CLR startup. Each handle in the array is not guaranteed to be valid. If valid, the handle is to be used as the continue-startup event for the corresponding runtime located in the same index of `ppStringArrayOut`. + + `ppStringArrayOut` + [out] Pointer to an array of strings that specify full paths to CLRs loaded in the process. + + `pdwArrayLengthOut` + [out] Pointer to a DWORD that contains the length of the equally sized `ppHandleArrayOut` and `pdwArrayLengthOut`. + +## Return Value + + S_OK + The number of CLRs in the process was successfully determined, and the corresponding handle and path arrays were properly filled. + + E_INVALIDARG + Either `ppHandleArrayOut` or `ppStringArrayOut` is null, or `pdwArrayLengthOut` is null. + + E_OUTOFMEMORY + The function is unable to allocate enough memory for the handle and path arrays. + + E_FAIL (or other E_ return codes) + Unable to enumerate loaded CLRs. + +## Remarks + + For a target process that is identified by `debuggeePID`, the function returns an array of paths, `ppStringArrayOut`, to CLRs loaded in the process; an array of event handles, `ppHandleArrayOut`, which may contain a continue-startup event for the CLR at the same index; and the size of the arrays, `pdwArrayLengthOut`, which specifies the number of CLRs that are loaded. + + On the Windows operating system, `debuggeePID` maps to an OS process identifier. + + The memory for `ppHandleArrayOut` and `ppStringArrayOut` are allocated by this function. To free the memory allocated, you must call [CloseCLREnumeration Function](../../../core/unmanaged-api/debugging/closeclrenumeration-function.md). + + This function can be called with both array parameters set to null in order to return the count of CLRs in the target process. From this count, a caller can infer the size of the buffer that will be created: `(sizeof(HANDLE) * count) + (sizeof(LPWSTR) * count) + (sizeof(WCHAR*) * count * MAX_PATH)`. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** dbgshim.h + + **Library:** dbgshim.dll + **.NET Framework Versions:** 3.5 SP1 diff --git a/docs/framework/unmanaged-api/debugging/gcevtargs-structure.md b/docs/framework/unmanaged-api/debugging/gcevtargs-structure.md new file mode 100644 index 0000000000000..75546d5d67b96 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/gcevtargs-structure.md @@ -0,0 +1,69 @@ +--- +description: "Learn more about: GcEvtArgs Structure" +title: "GcEvtArgs Structure" +ms.date: "07/01/2024" +api_name: + - "GcEvtArgs" +api_location: + - "mscordacwks.dll" +api_type: + - "COM" +f1_keywords: + - "GcEvtArgs" +helpviewer_keywords: + - "GcEvtArgs structure [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# GcEvtArgs Structure + +Describes a particular GC event which occurred. Such notification is given via the `IXCLRDataExceptionNotification3::OnGcEvent` callback. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +struct GcEvtArgs +{ + GcEvt_t typ; + + union + { + int condemnedGeneration; + } +}; +``` + +## Members + +|Member|Description| +|------------|-----------------| +|`typ` | Indicates the type of GC event.| +|`condemnedGeneration` | The condemned GC generation.| + +Note that the `typ` member is an enumeration containing one of the following values: + +|Member|Value|Description| +|------------|-----------------|-----------------| +|`GC_MARK_END` | 1 | Indicates the end of the mark phase of the GC. | + +## Remarks + +This structure lives inside the runtime and is not exposed through any headers or library files. To use it, define the structure as specified above. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging Structures](debugging-structures.md) +- [Debugging](index.md) +- [IXCLRDataExceptionNotification4 Interface](ixclrdataexceptionnotification4-interface.md) +- [IXCLRDataExceptionNotification3::OnGcEvent Method](ixclrdataexceptionnotification3-ongcevent-method.md) diff --git a/docs/framework/unmanaged-api/debugging/getstartupnotificationevent-function-for-silverlight.md b/docs/framework/unmanaged-api/debugging/getstartupnotificationevent-function-for-silverlight.md index adcfbee44af49..833be5a4fc476 100644 --- a/docs/framework/unmanaged-api/debugging/getstartupnotificationevent-function-for-silverlight.md +++ b/docs/framework/unmanaged-api/debugging/getstartupnotificationevent-function-for-silverlight.md @@ -2,65 +2,65 @@ description: "Learn more about: GetStartupNotificationEvent Function for Silverlight" title: "GetStartupNotificationEvent Function for Silverlight" ms.date: "03/30/2017" -api_name: +api_name: - "GetStartupNotificationEvent" -api_location: +api_location: - "dbgshim.dll" -f1_keywords: +f1_keywords: - "GetStartupNotificationEvent" -helpviewer_keywords: +helpviewer_keywords: - "GetStartupNotificationEvent function" - "debugging API [Silverlight]" - "Silverlight, debugging" ms.assetid: c94b1b61-045a-4695-bacd-0f18c5acc246 -topic_type: +topic_type: - "apiref" --- # GetStartupNotificationEvent Function for Silverlight -Creates or opens an event handle that will be signaled upon by any common language runtime (CLR) that is loading in the specified target process. - -## Syntax - -```cpp -HRESULT GetStartupNotificationEvent - ( - [in] DWORD debuggeePID, - [out] HANDLE* phStartupEvent - ); -``` - -## Parameters - - `debuggeePID` - [in] Process identifier of the target process from which to receive CLR startup notifications. - - `phStartupEvent` - [out] A pointer to a handle that will be signaled by a CLR on startup. - -## Return Value - - S_OK - Successfully obtained the handle to the startup notification event. - - E_INVALIDARG - `phStartupEvent` is null or `debuggeePID` does not refer to a process that is currently running. - - E_FAIL (or other E_ return codes) - Unable to obtain the handle to the startup notification event. - -## Remarks - - On the Windows operating system, `debuggeePID` maps to an OS process identifier. - - The event is signaled before any managed code is executed by the CLR that signaled the event. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** dbgshim.h - - **Library:** dbgshim.dll - +Creates or opens an event handle that will be signaled upon by any common language runtime (CLR) that is loading in the specified target process. + +## Syntax + +```cpp +HRESULT GetStartupNotificationEvent + ( + [in] DWORD debuggeePID, + [out] HANDLE* phStartupEvent + ); +``` + +## Parameters + + `debuggeePID` + [in] Process identifier of the target process from which to receive CLR startup notifications. + + `phStartupEvent` + [out] A pointer to a handle that will be signaled by a CLR on startup. + +## Return Value + + S_OK + Successfully obtained the handle to the startup notification event. + + E_INVALIDARG + `phStartupEvent` is null or `debuggeePID` does not refer to a process that is currently running. + + E_FAIL (or other E_ return codes) + Unable to obtain the handle to the startup notification event. + +## Remarks + + On the Windows operating system, `debuggeePID` maps to an OS process identifier. + + The event is signaled before any managed code is executed by the CLR that signaled the event. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** dbgshim.h + + **Library:** dbgshim.dll + **.NET Framework Versions:** 3.5 SP1 diff --git a/docs/framework/unmanaged-api/debugging/iclrdataenummemoryregions-enummemoryregions-method.md b/docs/framework/unmanaged-api/debugging/iclrdataenummemoryregions-enummemoryregions-method.md index 6bad160975202..6bd874be6cc6a 100644 --- a/docs/framework/unmanaged-api/debugging/iclrdataenummemoryregions-enummemoryregions-method.md +++ b/docs/framework/unmanaged-api/debugging/iclrdataenummemoryregions-enummemoryregions-method.md @@ -2,62 +2,62 @@ description: "Learn more about: ICLRDataEnumMemoryRegions::EnumMemoryRegions Method" title: "ICLRDataEnumMemoryRegions::EnumMemoryRegions Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICLRDataEnumMemoryRegions.EnumMemoryRegions" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICLRDataEnumMemoryRegions::EnumMemoryRegions" -helpviewer_keywords: +helpviewer_keywords: - "ICLRDataEnumMemoryRegions::EnumMemoryRegions method [.NET Framework debugging]" - "EnumMemoryRegions method [.NET Framework debugging]" ms.assetid: 22d2e339-f174-40b5-a478-0b744501566f -topic_type: +topic_type: - "apiref" --- # ICLRDataEnumMemoryRegions::EnumMemoryRegions Method -Enumerates specified areas of memory. - -## Syntax - -```cpp -HRESULT EnumMemoryRegions ( - [in] ICLRDataEnumMemoryRegionsCallback *callback, - [in] ULONG32 miniDumpFlags, - [in] CLRDataEnumMemoryFlags clrFlags -); -``` - -## Parameters - - `callback` - [in] A pointer to an [ICLRDataEnumMemoryRegionsCallback](iclrdataenummemoryregionscallback-interface.md) instance that is called by this method for each memory region being enumerated to notify the debugger of the result. - - The enumeration of memory regions continues even if the callback indicates a failure. - - `miniDumpFlags` - [in] Not used. - - `clrFlags` - [in] A value of the [CLRDataEnumMemoryFlags](clrdataenummemoryflags-enumeration.md) enumeration that specifies the regions of memory to be enumerated. - -## Remarks - - This method uses the specified [ICLRDataEnumMemoryRegionsCallback](iclrdataenummemoryregionscallback-interface.md) instance to notify the caller of results. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** ClrData.idl, ClrData.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +Enumerates specified areas of memory. + +## Syntax + +```cpp +HRESULT EnumMemoryRegions ( + [in] ICLRDataEnumMemoryRegionsCallback *callback, + [in] ULONG32 miniDumpFlags, + [in] CLRDataEnumMemoryFlags clrFlags +); +``` + +## Parameters + + `callback` + [in] A pointer to an [ICLRDataEnumMemoryRegionsCallback](iclrdataenummemoryregionscallback-interface.md) instance that is called by this method for each memory region being enumerated to notify the debugger of the result. + + The enumeration of memory regions continues even if the callback indicates a failure. + + `miniDumpFlags` + [in] Not used. + + `clrFlags` + [in] A value of the [CLRDataEnumMemoryFlags](clrdataenummemoryflags-enumeration.md) enumeration that specifies the regions of memory to be enumerated. + +## Remarks + + This method uses the specified [ICLRDataEnumMemoryRegionsCallback](iclrdataenummemoryregionscallback-interface.md) instance to notify the caller of results. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** ClrData.idl, ClrData.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [ICLRDataEnumMemoryRegions Interface](iclrdataenummemoryregions-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/iclrdataenummemoryregionscallback-enummemoryregion-method.md b/docs/framework/unmanaged-api/debugging/iclrdataenummemoryregionscallback-enummemoryregion-method.md index e0bc2268611f1..ce1f83d3fe353 100644 --- a/docs/framework/unmanaged-api/debugging/iclrdataenummemoryregionscallback-enummemoryregion-method.md +++ b/docs/framework/unmanaged-api/debugging/iclrdataenummemoryregionscallback-enummemoryregion-method.md @@ -2,58 +2,58 @@ description: "Learn more about: ICLRDataEnumMemoryRegionsCallback::EnumMemoryRegion Method" title: "ICLRDataEnumMemoryRegionsCallback::EnumMemoryRegion Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICLRDataEnumMemoryRegionsCallback.EnumMemoryRegion" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICLRDataEnumMemoryRegionsCallback::EnumMemoryRegion" -helpviewer_keywords: +helpviewer_keywords: - "EnumMemoryRegion method [.NET Framework debugging]" - "ICLRDataEnumMemoryRegionsCallback::EnumMemoryRegion method [.NET Framework debugging]" ms.assetid: 9bb93fab-57e8-4f9a-9ef3-1794504fa896 -topic_type: +topic_type: - "apiref" --- # ICLRDataEnumMemoryRegionsCallback::EnumMemoryRegion Method -Called by [ICLRDataEnumMemoryRegions::EnumMemoryRegions](iclrdataenummemoryregions-enummemoryregions-method.md) to report to the debugger the result of an attempt to enumerate a specified region of memory. - -## Syntax - -```cpp -HRESULT EnumMemoryRegion ( - [in] CLRDATA_ADDRESS address, - [in] ULONG32 size -); -``` - -## Parameters - - `address` - [in] The starting address of the memory region that was to be enumerated. - - `size` - [in] The size, in bytes, of the memory region. - -## Remarks - - The `ICLRDataEnumMemoryRegions::EnumMemoryRegions` method will call this callback method after each attempt to enumerate a memory region. The enumeration will continue even if this method returns an HRESULT indicating failure. - - Regions reported by this callback may be duplicates or overlapping regions. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** ClrData.idl, ClrData.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +Called by [ICLRDataEnumMemoryRegions::EnumMemoryRegions](iclrdataenummemoryregions-enummemoryregions-method.md) to report to the debugger the result of an attempt to enumerate a specified region of memory. + +## Syntax + +```cpp +HRESULT EnumMemoryRegion ( + [in] CLRDATA_ADDRESS address, + [in] ULONG32 size +); +``` + +## Parameters + + `address` + [in] The starting address of the memory region that was to be enumerated. + + `size` + [in] The size, in bytes, of the memory region. + +## Remarks + + The `ICLRDataEnumMemoryRegions::EnumMemoryRegions` method will call this callback method after each attempt to enumerate a memory region. The enumeration will continue even if this method returns an HRESULT indicating failure. + + Regions reported by this callback may be duplicates or overlapping regions. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** ClrData.idl, ClrData.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [ICLRDataEnumMemoryRegionsCallback Interface](iclrdataenummemoryregionscallback-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/iclrdatatarget-getcurrentthreadid-method.md b/docs/framework/unmanaged-api/debugging/iclrdatatarget-getcurrentthreadid-method.md index 8f25e6487d7e4..2baab55949c1c 100644 --- a/docs/framework/unmanaged-api/debugging/iclrdatatarget-getcurrentthreadid-method.md +++ b/docs/framework/unmanaged-api/debugging/iclrdatatarget-getcurrentthreadid-method.md @@ -2,52 +2,52 @@ description: "Learn more about: ICLRDataTarget::GetCurrentThreadID Method" title: "ICLRDataTarget::GetCurrentThreadID Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICLRDataTarget.GetCurrentThreadID" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICLRDataTarget::GetCurrentThreadID" -helpviewer_keywords: +helpviewer_keywords: - "GetCurrentThreadID method, ICLRDataTarget interface [.NET Framework debugging]" - "ICLRDataTarget::GetCurrentThreadID method [.NET Framework debugging]" ms.assetid: dc9a0a6c-d592-4fb7-86ed-62684da3b0e1 -topic_type: +topic_type: - "apiref" --- # ICLRDataTarget::GetCurrentThreadID Method -Gets the operating system identifier for the current thread. - -## Syntax - -```cpp -HRESULT GetCurrentThreadID ( - [out] ULONG32 *threadID -); -``` - -## Parameters - - `threadID` - [out] A pointer to the operating system identifier of the current thread for the target process. - -## Remarks - - If there is no current thread for the target process, the `GetCurrentThreadID` method may fail. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** ClrData.idl, ClrData.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +Gets the operating system identifier for the current thread. + +## Syntax + +```cpp +HRESULT GetCurrentThreadID ( + [out] ULONG32 *threadID +); +``` + +## Parameters + + `threadID` + [out] A pointer to the operating system identifier of the current thread for the target process. + +## Remarks + + If there is no current thread for the target process, the `GetCurrentThreadID` method may fail. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** ClrData.idl, ClrData.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [ICLRDataTarget Interface](iclrdatatarget-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/iclrdatatarget-getimagebase-method.md b/docs/framework/unmanaged-api/debugging/iclrdatatarget-getimagebase-method.md index 441a702c9cdcc..4e1954476bab6 100644 --- a/docs/framework/unmanaged-api/debugging/iclrdatatarget-getimagebase-method.md +++ b/docs/framework/unmanaged-api/debugging/iclrdatatarget-getimagebase-method.md @@ -2,56 +2,56 @@ description: "Learn more about: ICLRDataTarget::GetImageBase Method" title: "ICLRDataTarget::GetImageBase Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICLRDataTarget.GetImageBase" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICLRDataTarget::GetImageBase" -helpviewer_keywords: +helpviewer_keywords: - "ICLRDataTarget::GetImageBase method [.NET Framework debugging]" - "GetImageBase method [.NET Framework debugging]" ms.assetid: 091c5f32-c160-49e3-a75f-4692e084c8e4 -topic_type: +topic_type: - "apiref" --- # ICLRDataTarget::GetImageBase Method -Gets the base memory address of the specified image. - -## Syntax - -```cpp -HRESULT GetImageBase ( - [in, string] LPCWSTR imagePath, - [out] CLRDATA_ADDRESS *baseAddress -); -``` - -## Parameters - - `imagePath` - [in] The file name of the image, including its path. - - `baseAddress` - [out] A pointer to a CLRDATA_ADDRESS that stores the base address of the image. - -## Remarks - - The image file name may or may not have a path. If a path is specified, matching is done on the whole path; otherwise, matching is done only on the file name. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** ClrData.idl, ClrData.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +Gets the base memory address of the specified image. + +## Syntax + +```cpp +HRESULT GetImageBase ( + [in, string] LPCWSTR imagePath, + [out] CLRDATA_ADDRESS *baseAddress +); +``` + +## Parameters + + `imagePath` + [in] The file name of the image, including its path. + + `baseAddress` + [out] A pointer to a CLRDATA_ADDRESS that stores the base address of the image. + +## Remarks + + The image file name may or may not have a path. If a path is specified, matching is done on the whole path; otherwise, matching is done only on the file name. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** ClrData.idl, ClrData.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [ICLRDataTarget Interface](iclrdatatarget-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/iclrdatatarget-getpointersize-method.md b/docs/framework/unmanaged-api/debugging/iclrdatatarget-getpointersize-method.md index cf4701759a58a..94a1e6214b9bf 100644 --- a/docs/framework/unmanaged-api/debugging/iclrdatatarget-getpointersize-method.md +++ b/docs/framework/unmanaged-api/debugging/iclrdatatarget-getpointersize-method.md @@ -2,52 +2,52 @@ description: "Learn more about: ICLRDataTarget::GetPointerSize Method" title: "ICLRDataTarget::GetPointerSize Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICLRDataTarget.GetPointerSize" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICLRDataTarget::GetPointerSize" -helpviewer_keywords: +helpviewer_keywords: - "GetPointerSize method [.NET Framework debugging]" - "ICLRDataTarget::GetPointerSize method [.NET Framework debugging]" ms.assetid: 51d9f4a4-81a7-4527-8537-5212bdb05c70 -topic_type: +topic_type: - "apiref" --- # ICLRDataTarget::GetPointerSize Method -Gets the size, in bytes, of the pointer type that the target process uses. This method is called by the common language runtime data access services. - -## Syntax - -```cpp -HRESULT GetPointerSize ( - [out] ULONG32 *pointerSize -); -``` - -## Parameters - - `pointerSize` - [out] A pointer to an integer value that specifies the size, in bytes, of a pointer on the target process. - -## Remarks - - This method is implemented by the writer of the debugging application. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** ClrData.idl, ClrData.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +Gets the size, in bytes, of the pointer type that the target process uses. This method is called by the common language runtime data access services. + +## Syntax + +```cpp +HRESULT GetPointerSize ( + [out] ULONG32 *pointerSize +); +``` + +## Parameters + + `pointerSize` + [out] A pointer to an integer value that specifies the size, in bytes, of a pointer on the target process. + +## Remarks + + This method is implemented by the writer of the debugging application. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** ClrData.idl, ClrData.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [ICLRDataTarget Interface](iclrdatatarget-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/iclrdatatarget-getthreadcontext-method.md b/docs/framework/unmanaged-api/debugging/iclrdatatarget-getthreadcontext-method.md index 8e7413595a665..83b6b9fb671cc 100644 --- a/docs/framework/unmanaged-api/debugging/iclrdatatarget-getthreadcontext-method.md +++ b/docs/framework/unmanaged-api/debugging/iclrdatatarget-getthreadcontext-method.md @@ -2,67 +2,67 @@ description: "Learn more about: ICLRDataTarget::GetThreadContext Method" title: "ICLRDataTarget::GetThreadContext Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICLRDataTarget.GetThreadContext" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICLRDataTarget::GetThreadContext" -helpviewer_keywords: +helpviewer_keywords: - "ICLRDataTarget::GetThreadContext method [.NET Framework debugging]" - "GetThreadContext method, ICLRDataTarget interface [.NET Framework debugging]" ms.assetid: b9d8c3b5-3a2e-4225-95d4-dd052c4532c3 -topic_type: +topic_type: - "apiref" --- # ICLRDataTarget::GetThreadContext Method -Gets the current execution context for the given thread in the target process. This method is called by the common language runtime data access services. - -## Syntax - -```cpp -HRESULT GetThreadContext ( - [in] ULONG32 threadID, - [in] ULONG32 contextFlags, - [in] ULONG32 contextSize, +Gets the current execution context for the given thread in the target process. This method is called by the common language runtime data access services. + +## Syntax + +```cpp +HRESULT GetThreadContext ( + [in] ULONG32 threadID, + [in] ULONG32 contextFlags, + [in] ULONG32 contextSize, [out, size_is(contextSize)] - BYTE *context -); -``` - -## Parameters - - `threadID` - [in] The operating system identifier of a thread in the target process. - - `contextFlags` - [in] Flags that specify which parts of the context to return. The implementation will return at least these parts of the context. - - `contextSize` - [in] The size of the context. - - `context` - [out] Pointer to a buffer in which to place the context. - - The data in the `context` buffer must be in the format of the Win32 `CONTEXT` structure. The context specifies processor-specific register data, so the definition of the Win32 `CONTEXT` structure depends on the processor's architecture. Refer to the WinNT.h header file for the definition of the Win32 `CONTEXT` structure. - -## Remarks - - This method is implemented by the writer of the debugging application. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** ClrData.idl, ClrData.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - + BYTE *context +); +``` + +## Parameters + + `threadID` + [in] The operating system identifier of a thread in the target process. + + `contextFlags` + [in] Flags that specify which parts of the context to return. The implementation will return at least these parts of the context. + + `contextSize` + [in] The size of the context. + + `context` + [out] Pointer to a buffer in which to place the context. + + The data in the `context` buffer must be in the format of the Win32 `CONTEXT` structure. The context specifies processor-specific register data, so the definition of the Win32 `CONTEXT` structure depends on the processor's architecture. Refer to the WinNT.h header file for the definition of the Win32 `CONTEXT` structure. + +## Remarks + + This method is implemented by the writer of the debugging application. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** ClrData.idl, ClrData.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [ICLRDataTarget Interface](iclrdatatarget-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/iclrdatatarget-gettlsvalue-method.md b/docs/framework/unmanaged-api/debugging/iclrdatatarget-gettlsvalue-method.md index 6224a1bc49beb..a5a8b00b4aaa2 100644 --- a/docs/framework/unmanaged-api/debugging/iclrdatatarget-gettlsvalue-method.md +++ b/docs/framework/unmanaged-api/debugging/iclrdatatarget-gettlsvalue-method.md @@ -2,60 +2,60 @@ description: "Learn more about: ICLRDataTarget::GetTLSValue Method" title: "ICLRDataTarget::GetTLSValue Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICLRDataTarget.GetTLSValue" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICLRDataTarget::GetTLSValue" -helpviewer_keywords: +helpviewer_keywords: - "GetTLSValue method [.NET Framework debugging]" - "ICLRDataTarget::GetTLSValue method [.NET Framework debugging]" ms.assetid: 0d8a7730-edc9-4728-898f-41b219cf5a28 -topic_type: +topic_type: - "apiref" --- # ICLRDataTarget::GetTLSValue Method -Gets a value from the thread local storage (TLS) of the specified thread in the target process. This method is called by the common language runtime (CLR) data access services. - -## Syntax - -```cpp -HRESULT GetTLSValue ( - [in] ULONG32 threadID, - [in] ULONG32 index, - [out] CLRDATA_ADDRESS *value -); -``` - -## Parameters - - `threadID` - [in] The operating system identifier of a thread in the target process. - - `index` - [in] The index of the location. This value must be a valid index in the local store of the specified thread. - - `value` - [out] A pointer to a `CLRDATA_ADDRESS` value that specifies the value returned from the given TLS location. - -## Remarks - - This method is implemented by the writer of the debugging application. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** ClrData.idl, ClrData.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +Gets a value from the thread local storage (TLS) of the specified thread in the target process. This method is called by the common language runtime (CLR) data access services. + +## Syntax + +```cpp +HRESULT GetTLSValue ( + [in] ULONG32 threadID, + [in] ULONG32 index, + [out] CLRDATA_ADDRESS *value +); +``` + +## Parameters + + `threadID` + [in] The operating system identifier of a thread in the target process. + + `index` + [in] The index of the location. This value must be a valid index in the local store of the specified thread. + + `value` + [out] A pointer to a `CLRDATA_ADDRESS` value that specifies the value returned from the given TLS location. + +## Remarks + + This method is implemented by the writer of the debugging application. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** ClrData.idl, ClrData.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [ICLRDataTarget Interface](iclrdatatarget-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/iclrdatatarget-interface.md b/docs/framework/unmanaged-api/debugging/iclrdatatarget-interface.md index f084f69a0c3de..649bf92cc6017 100644 --- a/docs/framework/unmanaged-api/debugging/iclrdatatarget-interface.md +++ b/docs/framework/unmanaged-api/debugging/iclrdatatarget-interface.md @@ -2,54 +2,54 @@ description: "Learn more about: ICLRDataTarget Interface" title: "ICLRDataTarget Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICLRDataTarget" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICLRDataTarget" -helpviewer_keywords: +helpviewer_keywords: - "ICLRDataTarget interface [.NET Framework debugging]" ms.assetid: e2f05155-9bef-4e11-b703-7f05890665ca -topic_type: +topic_type: - "apiref" --- # ICLRDataTarget Interface -Provides methods for interaction with a target item of the common language runtime (CLR). - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetCurrentThreadID Method](iclrdatatarget-getcurrentthreadid-method.md)|Gets the operating system identifier for the current thread.| -|[GetImageBase Method](iclrdatatarget-getimagebase-method.md)|Gets the base memory address for the specified image.| -|[GetMachineType Method](iclrdatatarget-getmachinetype-method.md)|Gets an identifier for the kind of instruction set that the target process is using.| -|[GetPointerSize Method](iclrdatatarget-getpointersize-method.md)|Gets the size, in bytes, of a pointer to the current target.| -|[GetThreadContext Method](iclrdatatarget-getthreadcontext-method.md)|Gets a pointer to the context of the thread with the specified identifier.| -|[GetTLSValue Method](iclrdatatarget-gettlsvalue-method.md)|Gets a value in thread local storage (TLS) at the specified index for the specified thread.| -|[ReadVirtual Method](iclrdatatarget-readvirtual-method.md)|Reads data from the specified virtual memory address into the specified buffer.| -|[Request Method](iclrdatatarget-request-method.md)|Called by the common language runtime (CLR) data access services to request an operation, as defined by the implementation.| -|[SetThreadContext Method](iclrdatatarget-setthreadcontext-method.md)|Sets the current context of the specified thread in the target process.| -|[SetTLSValue Method](iclrdatatarget-settlsvalue-method.md)|Sets a value in the thread local storage (TLS) of the specified thread in the target process.| -|[WriteVirtual Method](iclrdatatarget-writevirtual-method.md)|Writes data from the specified buffer to the specified virtual memory address.| - -## Remarks - - The API client (that is, the debugger) must implement this interface as appropriate for the particular target item. For example, a live process would have an implementation different from that of a memory dump. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** ClrData.idl, ClrData.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +Provides methods for interaction with a target item of the common language runtime (CLR). + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetCurrentThreadID Method](iclrdatatarget-getcurrentthreadid-method.md)|Gets the operating system identifier for the current thread.| +|[GetImageBase Method](iclrdatatarget-getimagebase-method.md)|Gets the base memory address for the specified image.| +|[GetMachineType Method](iclrdatatarget-getmachinetype-method.md)|Gets an identifier for the kind of instruction set that the target process is using.| +|[GetPointerSize Method](iclrdatatarget-getpointersize-method.md)|Gets the size, in bytes, of a pointer to the current target.| +|[GetThreadContext Method](iclrdatatarget-getthreadcontext-method.md)|Gets a pointer to the context of the thread with the specified identifier.| +|[GetTLSValue Method](iclrdatatarget-gettlsvalue-method.md)|Gets a value in thread local storage (TLS) at the specified index for the specified thread.| +|[ReadVirtual Method](iclrdatatarget-readvirtual-method.md)|Reads data from the specified virtual memory address into the specified buffer.| +|[Request Method](iclrdatatarget-request-method.md)|Called by the common language runtime (CLR) data access services to request an operation, as defined by the implementation.| +|[SetThreadContext Method](iclrdatatarget-setthreadcontext-method.md)|Sets the current context of the specified thread in the target process.| +|[SetTLSValue Method](iclrdatatarget-settlsvalue-method.md)|Sets a value in the thread local storage (TLS) of the specified thread in the target process.| +|[WriteVirtual Method](iclrdatatarget-writevirtual-method.md)|Writes data from the specified buffer to the specified virtual memory address.| + +## Remarks + + The API client (that is, the debugger) must implement this interface as appropriate for the particular target item. For example, a live process would have an implementation different from that of a memory dump. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** ClrData.idl, ClrData.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [ICLRDataTarget2 Interface](iclrdatatarget2-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/iclrdatatarget-request-method.md b/docs/framework/unmanaged-api/debugging/iclrdatatarget-request-method.md index 2f821295d4bf7..e5c75a1663b21 100644 --- a/docs/framework/unmanaged-api/debugging/iclrdatatarget-request-method.md +++ b/docs/framework/unmanaged-api/debugging/iclrdatatarget-request-method.md @@ -2,72 +2,72 @@ description: "Learn more about: ICLRDataTarget::Request Method" title: "ICLRDataTarget::Request Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICLRDataTarget.Request" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICLRDataTarget::Request" -helpviewer_keywords: +helpviewer_keywords: - "ICLRDataTarget::Request method [.NET Framework debugging]" - "Request method [.NET Framework debugging]" ms.assetid: 4723bd1c-eddb-4ed2-897a-010024a47e01 -topic_type: +topic_type: - "apiref" --- # ICLRDataTarget::Request Method -Called by the common language runtime (CLR) data access services to request an operation, as defined by the implementation. - -## Syntax - -```cpp -HRESULT Request ( - [in] ULONG32 reqCode, - [in] ULONG32 inBufferSize, +Called by the common language runtime (CLR) data access services to request an operation, as defined by the implementation. + +## Syntax + +```cpp +HRESULT Request ( + [in] ULONG32 reqCode, + [in] ULONG32 inBufferSize, [in, size_is(inBufferSize)] - BYTE *inBuffer, - [in] ULONG32 outBufferSize, + BYTE *inBuffer, + [in] ULONG32 outBufferSize, [out, size_is(outBufferSize)] - BYTE *outBuffer -); -``` - -## Parameters - - `reqCode` - [in] User-defined. - - `inBufferSize` - [in] The size of the input buffer, which is used for the incoming request. - - `inBuffer` - [in] A buffer containing the request. - - `outBufferSize` - [in] The size of the output buffer, which is used for the response. - - `outBuffer` - [out] A Buffer containing the response. - -## Remarks - - The `Request` method facilitates the addition of unspecified custom operations. That is, this method provides extensibility without requiring revision of the interface definition. - - This method is implemented by the writer of the debugging application. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** ClrData.idl, ClrData.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - + BYTE *outBuffer +); +``` + +## Parameters + + `reqCode` + [in] User-defined. + + `inBufferSize` + [in] The size of the input buffer, which is used for the incoming request. + + `inBuffer` + [in] A buffer containing the request. + + `outBufferSize` + [in] The size of the output buffer, which is used for the response. + + `outBuffer` + [out] A Buffer containing the response. + +## Remarks + + The `Request` method facilitates the addition of unspecified custom operations. That is, this method provides extensibility without requiring revision of the interface definition. + + This method is implemented by the writer of the debugging application. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** ClrData.idl, ClrData.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [ICLRDataTarget Interface](iclrdatatarget-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/iclrdatatarget-setthreadcontext-method.md b/docs/framework/unmanaged-api/debugging/iclrdatatarget-setthreadcontext-method.md index 8e4d94f0b3fed..a8055ca9e4a83 100644 --- a/docs/framework/unmanaged-api/debugging/iclrdatatarget-setthreadcontext-method.md +++ b/docs/framework/unmanaged-api/debugging/iclrdatatarget-setthreadcontext-method.md @@ -2,63 +2,63 @@ description: "Learn more about: ICLRDataTarget::SetThreadContext Method" title: "ICLRDataTarget::SetThreadContext Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICLRDataTarget.SetThreadContext" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICLRDataTarget::SetThreadContext" -helpviewer_keywords: +helpviewer_keywords: - "SetThreadContext method, ICLRDataTarget interface [.NET Framework debugging]" - "ICLRDataTarget::SetThreadContext method [.NET Framework debugging]" ms.assetid: 103c8502-81fe-40d7-9c1e-9008d8fb19e1 -topic_type: +topic_type: - "apiref" --- # ICLRDataTarget::SetThreadContext Method -Sets the current context of the specified thread in the target process. This method is called by the common language runtime (CLR) data access services. - -## Syntax - -```cpp -HRESULT SetThreadContext ( - [in] ULONG32 threadID, - [in] ULONG32 contextSize, +Sets the current context of the specified thread in the target process. This method is called by the common language runtime (CLR) data access services. + +## Syntax + +```cpp +HRESULT SetThreadContext ( + [in] ULONG32 threadID, + [in] ULONG32 contextSize, [in, size_is(contextSize)] - BYTE *context -); -``` - -## Parameters - - `threadID` - [in] The operating system identifier of a thread in the target process. - - `contextSize` - [in] The size of the context. - - `context` - [in] Pointer to a buffer containing the context. - - The data in the `context` buffer will be in the format of the Win32 `CONTEXT` structure. The context specifies processor-specific register data, so the definition of the Win32 `CONTEXT` structure depends on the processor's architecture. Refer to the WinNT.h header file for the definition of the Win32 `CONTEXT` structure. - -## Remarks - - This method is implemented by the writer of the debugging application. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** ClrData.idl, ClrData.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - + BYTE *context +); +``` + +## Parameters + + `threadID` + [in] The operating system identifier of a thread in the target process. + + `contextSize` + [in] The size of the context. + + `context` + [in] Pointer to a buffer containing the context. + + The data in the `context` buffer will be in the format of the Win32 `CONTEXT` structure. The context specifies processor-specific register data, so the definition of the Win32 `CONTEXT` structure depends on the processor's architecture. Refer to the WinNT.h header file for the definition of the Win32 `CONTEXT` structure. + +## Remarks + + This method is implemented by the writer of the debugging application. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** ClrData.idl, ClrData.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [ICLRDataTarget Interface](iclrdatatarget-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/iclrdatatarget-settlsvalue-method.md b/docs/framework/unmanaged-api/debugging/iclrdatatarget-settlsvalue-method.md index f8742ad704872..028aa5c5e3141 100644 --- a/docs/framework/unmanaged-api/debugging/iclrdatatarget-settlsvalue-method.md +++ b/docs/framework/unmanaged-api/debugging/iclrdatatarget-settlsvalue-method.md @@ -2,60 +2,60 @@ description: "Learn more about: ICLRDataTarget::SetTLSValue Method" title: "ICLRDataTarget::SetTLSValue Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICLRDataTarget.SetTLSValue" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICLRDataTarget::SetTLSValue" -helpviewer_keywords: +helpviewer_keywords: - "ICLRDataTarget::SetTLSValue method [.NET Framework debugging]" - "SetTLSValue method [.NET Framework debugging]" ms.assetid: 4a2d6a24-749a-47ad-9f01-4517203d3f35 -topic_type: +topic_type: - "apiref" --- # ICLRDataTarget::SetTLSValue Method -Sets a value in the thread local storage (TLS) of the specified thread in the target process. This method is called by the common language runtime (CLR) data access services. - -## Syntax - -```cpp -HRESULT SetTLSValue ( - [in] ULONG32 threadID, - [in] ULONG32 index, - [in] CLRDATA_ADDRESS value -); -``` - -## Parameters - - `threadID` - [in] The operating system identifier of a thread in the target process. - - `index` - [in] The index of the location. This value must be a valid index in the local store of the specified thread. - - `value` - [in] A `CLRDATA_ADDRESS` value that specifies the value to place in the given TLS location. - -## Remarks - - This method is implemented by the writer of the debugging application. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** ClrData.idl, ClrData.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +Sets a value in the thread local storage (TLS) of the specified thread in the target process. This method is called by the common language runtime (CLR) data access services. + +## Syntax + +```cpp +HRESULT SetTLSValue ( + [in] ULONG32 threadID, + [in] ULONG32 index, + [in] CLRDATA_ADDRESS value +); +``` + +## Parameters + + `threadID` + [in] The operating system identifier of a thread in the target process. + + `index` + [in] The index of the location. This value must be a valid index in the local store of the specified thread. + + `value` + [in] A `CLRDATA_ADDRESS` value that specifies the value to place in the given TLS location. + +## Remarks + + This method is implemented by the writer of the debugging application. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** ClrData.idl, ClrData.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [ICLRDataTarget Interface](iclrdatatarget-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/iclrdatatarget2-allocvirtual-method.md b/docs/framework/unmanaged-api/debugging/iclrdatatarget2-allocvirtual-method.md index 2f4ad762fb264..6d7ba886ea678 100644 --- a/docs/framework/unmanaged-api/debugging/iclrdatatarget2-allocvirtual-method.md +++ b/docs/framework/unmanaged-api/debugging/iclrdatatarget2-allocvirtual-method.md @@ -2,70 +2,70 @@ description: "Learn more about: ICLRDataTarget2::AllocVirtual Method" title: "ICLRDataTarget2::AllocVirtual Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICLRDataTarget2.AllocVirtual" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICLRDataTarget2::AllocVirtual" -helpviewer_keywords: +helpviewer_keywords: - "ICLRDataTarget2::AllocVirtual method [.NET Framework debugging]" - "AllocVirtual method [.NET Framework debugging]" ms.assetid: e3226230-964b-47fb-9f53-d6fdbeda1e9e -topic_type: +topic_type: - "apiref" --- # ICLRDataTarget2::AllocVirtual Method -Called by the common language runtime (CLR) data access services to allocate memory in the address space of this target process. - -## Syntax - -```cpp -HRESULT AllocVirtual( - [in] CLRDATA_ADDRESS addr, - [in] ULONG32 size, - [in] ULONG32 typeFlags, - [in] ULONG32 protectFlags, - [out] CLRDATA_ADDRESS* virt -); -``` - -## Parameters - - `addr` - [in] A `CLRDATA_ADDRESS` value that specifies the requested starting address of the memory to be allocated. - - `size` - [in] The size, in bytes, of the memory to be allocated. - - `typeFlags` - [in] Flags that control the allocation of memory. See the Win32 `VirtualAlloc` function. - - `protectFlags` - [in] The protection attributes for the allocated memory. See the Win32 `VirtualAlloc` function. - - `virt` - [out] A pointer to a `CLRDATA_ADDRESS` value that specifies the actual starting address of the allocated memory. - -## Remarks - - The `AllocVirtual` method serves as a logical wrapper for the Win32 `VirtualAlloc` function. - - This method is implemented by the writer of the debugging application. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** ClrData.idl, ClrData.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +Called by the common language runtime (CLR) data access services to allocate memory in the address space of this target process. + +## Syntax + +```cpp +HRESULT AllocVirtual( + [in] CLRDATA_ADDRESS addr, + [in] ULONG32 size, + [in] ULONG32 typeFlags, + [in] ULONG32 protectFlags, + [out] CLRDATA_ADDRESS* virt +); +``` + +## Parameters + + `addr` + [in] A `CLRDATA_ADDRESS` value that specifies the requested starting address of the memory to be allocated. + + `size` + [in] The size, in bytes, of the memory to be allocated. + + `typeFlags` + [in] Flags that control the allocation of memory. See the Win32 `VirtualAlloc` function. + + `protectFlags` + [in] The protection attributes for the allocated memory. See the Win32 `VirtualAlloc` function. + + `virt` + [out] A pointer to a `CLRDATA_ADDRESS` value that specifies the actual starting address of the allocated memory. + +## Remarks + + The `AllocVirtual` method serves as a logical wrapper for the Win32 `VirtualAlloc` function. + + This method is implemented by the writer of the debugging application. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** ClrData.idl, ClrData.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [ICLRDataTarget2 Interface](iclrdatatarget2-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/iclrdatatarget2-freevirtual-method.md b/docs/framework/unmanaged-api/debugging/iclrdatatarget2-freevirtual-method.md index ef9c5fc3a972f..866e984433ab6 100644 --- a/docs/framework/unmanaged-api/debugging/iclrdatatarget2-freevirtual-method.md +++ b/docs/framework/unmanaged-api/debugging/iclrdatatarget2-freevirtual-method.md @@ -2,62 +2,62 @@ description: "Learn more about: ICLRDataTarget2::FreeVirtual Method" title: "ICLRDataTarget2::FreeVirtual Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICLRDataTarget2.FreeVirtual" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICLRDataTarget2::FreeVirtual" -helpviewer_keywords: +helpviewer_keywords: - "ICLRDataTarget::FreeVirtual method [.NET Framework debugging]" - "FreeVirtual method [.NET Framework debugging]" ms.assetid: 26fb69f8-1467-4711-bd24-cb117c63938f -topic_type: +topic_type: - "apiref" --- # ICLRDataTarget2::FreeVirtual Method -Called by the common language runtime (CLR) data access services to free memory that was previously allocated in the address space of the target process. - -## Syntax - -```cpp -HRESULT FreeVirtual( - [in] CLRDATA_ADDRESS addr, - [in] ULONG32 size, - [in] ULONG32 typeFlags -); -``` - -## Parameters - - `addr` - [in] A `CLRDATA_ADDRESS` value that specifies the starting address of the memory to be freed. - - `size` - [in] The size, in bytes, of the memory to be freed. - - `typeFlags` - [in] Flags that control the freeing of memory. See the Win32 `VirtualFree` function. - -## Remarks - - The `FreeVirtual` method serves as a logical wrapper for the Win32 `VirtualFree` function. - - This method is implemented by the writer of the debugging application. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** ClrData.idl, ClrData.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +Called by the common language runtime (CLR) data access services to free memory that was previously allocated in the address space of the target process. + +## Syntax + +```cpp +HRESULT FreeVirtual( + [in] CLRDATA_ADDRESS addr, + [in] ULONG32 size, + [in] ULONG32 typeFlags +); +``` + +## Parameters + + `addr` + [in] A `CLRDATA_ADDRESS` value that specifies the starting address of the memory to be freed. + + `size` + [in] The size, in bytes, of the memory to be freed. + + `typeFlags` + [in] Flags that control the freeing of memory. See the Win32 `VirtualFree` function. + +## Remarks + + The `FreeVirtual` method serves as a logical wrapper for the Win32 `VirtualFree` function. + + This method is implemented by the writer of the debugging application. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** ClrData.idl, ClrData.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [ICLRDataTarget2 Interface](iclrdatatarget2-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/iclrdatatarget2-interface.md b/docs/framework/unmanaged-api/debugging/iclrdatatarget2-interface.md index a57f48aa5fdff..6923cf6c095c3 100644 --- a/docs/framework/unmanaged-api/debugging/iclrdatatarget2-interface.md +++ b/docs/framework/unmanaged-api/debugging/iclrdatatarget2-interface.md @@ -2,45 +2,45 @@ description: "Learn more about: ICLRDataTarget2 Interface" title: "ICLRDataTarget2 Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICLRDataTarget2" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICLRDataTarget2" -helpviewer_keywords: +helpviewer_keywords: - "ICLRDataTarget2 interface [.NET Framework debugging]" ms.assetid: 94249397-861b-4294-a538-cf01466a66d3 -topic_type: +topic_type: - "apiref" --- # ICLRDataTarget2 Interface -A subclass of [ICLRDataTarget](iclrdatatarget-interface.md) that is used by the data access services layer to manipulate virtual memory regions in the target process. - -## Methods - -|Method|Description| -|------------|-----------------| -|[AllocVirtual Method](iclrdatatarget2-allocvirtual-method.md)|Allocates memory in the address space of the target process.| -|[FreeVirtual Method](iclrdatatarget2-freevirtual-method.md)|Frees memory that was previously allocated in the address space of the target process.| - -## Remarks - - The API client (that is, the debugger) must implement this interface as appropriate for the particular target process. For example, a live process would have an implementation different from that of a memory dump. The target may not support modification of its memory regions. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** ClrData.idl, ClrData.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +A subclass of [ICLRDataTarget](iclrdatatarget-interface.md) that is used by the data access services layer to manipulate virtual memory regions in the target process. + +## Methods + +|Method|Description| +|------------|-----------------| +|[AllocVirtual Method](iclrdatatarget2-allocvirtual-method.md)|Allocates memory in the address space of the target process.| +|[FreeVirtual Method](iclrdatatarget2-freevirtual-method.md)|Frees memory that was previously allocated in the address space of the target process.| + +## Remarks + + The API client (that is, the debugger) must implement this interface as appropriate for the particular target process. For example, a live process would have an implementation different from that of a memory dump. The target may not support modification of its memory regions. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** ClrData.idl, ClrData.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [ICLRDataTarget Interface](iclrdatatarget-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/iclrdatatarget3-getexceptioncontextrecord-method.md b/docs/framework/unmanaged-api/debugging/iclrdatatarget3-getexceptioncontextrecord-method.md index 4b51440ef1ed7..3f2770e302d66 100644 --- a/docs/framework/unmanaged-api/debugging/iclrdatatarget3-getexceptioncontextrecord-method.md +++ b/docs/framework/unmanaged-api/debugging/iclrdatatarget3-getexceptioncontextrecord-method.md @@ -2,69 +2,69 @@ description: "Learn more about: ICLRDataTarget3::GetExceptionContextRecord Method" title: "ICLRDataTarget3::GetExceptionContextRecord Method" ms.date: "03/30/2017" -dev_langs: +dev_langs: - "cpp" -api_name: +api_name: - "ICLRDataTarget3.GetContextRecord" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" ms.assetid: 66076ed5-f05c-4114-9788-94cb143abb8a -topic_type: +topic_type: - "apiref" --- # ICLRDataTarget3::GetExceptionContextRecord Method -Called by the common language runtime (CLR) data access services to retrieve the context record associated with the target process. For example, for a dump target, this would be equivalent to the context record passed in via the `ExceptionParam` argument to the [MiniDumpWriteDump](/windows/desktop/api/minidumpapiset/nf-minidumpapiset-minidumpwritedump) function in the Windows Debug Help Library (DbgHelp). - -## Syntax - -```cpp -HRESULT GetExceptionContextRecord( - [in] ULONG32 bufferSize, - [out] ULONG32* bufferUsed, - [out, size_is(bufferSize)] BYTE* buffer -); -``` - -## Parameters - - `bufferSize` - [in] The input buffer size, in bytes. This must be large enough to accommodate the context record. - - `bufferUsed` - [out] A pointer to a `ULONG32` type that receives the number of bytes actually written to the buffer. - - `buffer` - [out] A pointer to a memory buffer that receives a copy of the context record. The exception record is returned as a [CONTEXT](/windows/win32/api/winnt/ns-winnt-arm64_nt_context) type. - -## Return Value - - The return value is `S_OK` on success, or a failure `HRESULT` code on failure. The `HRESULT` codes can include but are not limited to the following: - -|Return code|Description| -|-----------------|-----------------| -|`S_OK`|Method succeeded. The context record has been copied to the output buffer.| -|`HRESULT_FROM_WIN32(ERROR_NOT_FOUND)`|No context record is associated with the target.| -|`HRESULT_FROM_WIN32(ERROR_BAD_LENGTH)`|The input buffer size is not large enough to accommodate the context record.| - -## Remarks - - [CONTEXT](/windows/win32/api/winnt/ns-winnt-arm64_nt_context) is a platform-specific structure defined in headers provided by the Windows SDK. - - This method is implemented by the writer of the debugging application. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** ClrData.idl, ClrData.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[v451_update](../../../../includes/net-current-v451-nov-plus.md)] - +Called by the common language runtime (CLR) data access services to retrieve the context record associated with the target process. For example, for a dump target, this would be equivalent to the context record passed in via the `ExceptionParam` argument to the [MiniDumpWriteDump](/windows/desktop/api/minidumpapiset/nf-minidumpapiset-minidumpwritedump) function in the Windows Debug Help Library (DbgHelp). + +## Syntax + +```cpp +HRESULT GetExceptionContextRecord( + [in] ULONG32 bufferSize, + [out] ULONG32* bufferUsed, + [out, size_is(bufferSize)] BYTE* buffer +); +``` + +## Parameters + + `bufferSize` + [in] The input buffer size, in bytes. This must be large enough to accommodate the context record. + + `bufferUsed` + [out] A pointer to a `ULONG32` type that receives the number of bytes actually written to the buffer. + + `buffer` + [out] A pointer to a memory buffer that receives a copy of the context record. The exception record is returned as a [CONTEXT](/windows/win32/api/winnt/ns-winnt-arm64_nt_context) type. + +## Return Value + + The return value is `S_OK` on success, or a failure `HRESULT` code on failure. The `HRESULT` codes can include but are not limited to the following: + +|Return code|Description| +|-----------------|-----------------| +|`S_OK`|Method succeeded. The context record has been copied to the output buffer.| +|`HRESULT_FROM_WIN32(ERROR_NOT_FOUND)`|No context record is associated with the target.| +|`HRESULT_FROM_WIN32(ERROR_BAD_LENGTH)`|The input buffer size is not large enough to accommodate the context record.| + +## Remarks + + [CONTEXT](/windows/win32/api/winnt/ns-winnt-arm64_nt_context) is a platform-specific structure defined in headers provided by the Windows SDK. + + This method is implemented by the writer of the debugging application. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** ClrData.idl, ClrData.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[v451_update](../../../../includes/net-current-v451-nov-plus.md)] + ## See also - [ICLRDataTarget3 Interface](iclrdatatarget3-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/iclrdatatarget3-getexceptionrecord-method.md b/docs/framework/unmanaged-api/debugging/iclrdatatarget3-getexceptionrecord-method.md index 48c1bab7e91cf..ec3b8948be6ed 100644 --- a/docs/framework/unmanaged-api/debugging/iclrdatatarget3-getexceptionrecord-method.md +++ b/docs/framework/unmanaged-api/debugging/iclrdatatarget3-getexceptionrecord-method.md @@ -2,69 +2,69 @@ description: "Learn more about: ICLRDataTarget3::GetExceptionRecord Method" title: "ICLRDataTarget3::GetExceptionRecord Method" ms.date: "03/30/2017" -dev_langs: +dev_langs: - "cpp" -api_name: +api_name: - "ICLRDataTarget3.GetExceptionRecord" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" ms.assetid: 6643c2af-2ee6-4789-aa25-1d8eaf500c94 -topic_type: +topic_type: - "apiref" --- # ICLRDataTarget3::GetExceptionRecord Method -Called by the common language runtime (CLR) data access services to retrieve the exception record associated with the target process. For example, for a dump target, this would be equivalent to the exception record passed in via the `ExceptionParam` argument to the [MiniDumpWriteDump](/windows/desktop/api/minidumpapiset/nf-minidumpapiset-minidumpwritedump) function in the Windows Debug Help Library (DbgHelp). - -## Syntax - -```cpp -HRESULT GetExceptionRecord( - [in] ULONG32 bufferSize, - [out] ULONG32* bufferUsed, - [out, size_is(bufferSize] BYTE* buffer -); -``` - -## Parameters - - `bufferSize` - [in] The input buffer size, in bytes. This must be equal to `sizeof(`[MINIDUMP_EXCEPTION](/windows/win32/api/minidumpapiset/ns-minidumpapiset-minidump_exception)`)`. - - `bufferUsed` - [out] A pointer to a `ULONG32` type that receives the number of bytes actually written to the buffer. - - `buffer` - [out] A pointer to a memory buffer that receives a copy of the exception record. The exception record is returned as a [MINIDUMP_EXCEPTION](/windows/win32/api/minidumpapiset/ns-minidumpapiset-minidump_exception) type. - -## Return Value - - The return value is `S_OK` on success, or a failure `HRESULT` code on failure. The `HRESULT` codes can include but are not limited to the following: - -|Return code|Description| -|-----------------|-----------------| -|`S_OK`|Method succeeded. The exception record has been copied to the output buffer.| -|`HRESULT_FROM_WIN32(ERROR_NOT_FOUND)`|No exception record is associated with the target.| -|`HRESULT_FROM_WIN32(ERROR_BAD_LENGTH)`|The input buffer size is not equal to `sizeof(MINIDUMP_EXCEPTION)`.| - -## Remarks - - [MINIDUMP_EXCEPTION](/windows/win32/api/minidumpapiset/ns-minidumpapiset-minidump_exception) is a structure defined in dbghelp.h and imagehlp.h in the Windows SDK. - - This method is implemented by the writer of the debugging application. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** ClrData.idl, ClrData.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[v451_update](../../../../includes/net-current-v451-nov-plus.md)] - +Called by the common language runtime (CLR) data access services to retrieve the exception record associated with the target process. For example, for a dump target, this would be equivalent to the exception record passed in via the `ExceptionParam` argument to the [MiniDumpWriteDump](/windows/desktop/api/minidumpapiset/nf-minidumpapiset-minidumpwritedump) function in the Windows Debug Help Library (DbgHelp). + +## Syntax + +```cpp +HRESULT GetExceptionRecord( + [in] ULONG32 bufferSize, + [out] ULONG32* bufferUsed, + [out, size_is(bufferSize] BYTE* buffer +); +``` + +## Parameters + + `bufferSize` + [in] The input buffer size, in bytes. This must be equal to `sizeof(`[MINIDUMP_EXCEPTION](/windows/win32/api/minidumpapiset/ns-minidumpapiset-minidump_exception)`)`. + + `bufferUsed` + [out] A pointer to a `ULONG32` type that receives the number of bytes actually written to the buffer. + + `buffer` + [out] A pointer to a memory buffer that receives a copy of the exception record. The exception record is returned as a [MINIDUMP_EXCEPTION](/windows/win32/api/minidumpapiset/ns-minidumpapiset-minidump_exception) type. + +## Return Value + + The return value is `S_OK` on success, or a failure `HRESULT` code on failure. The `HRESULT` codes can include but are not limited to the following: + +|Return code|Description| +|-----------------|-----------------| +|`S_OK`|Method succeeded. The exception record has been copied to the output buffer.| +|`HRESULT_FROM_WIN32(ERROR_NOT_FOUND)`|No exception record is associated with the target.| +|`HRESULT_FROM_WIN32(ERROR_BAD_LENGTH)`|The input buffer size is not equal to `sizeof(MINIDUMP_EXCEPTION)`.| + +## Remarks + + [MINIDUMP_EXCEPTION](/windows/win32/api/minidumpapiset/ns-minidumpapiset-minidump_exception) is a structure defined in dbghelp.h and imagehlp.h in the Windows SDK. + + This method is implemented by the writer of the debugging application. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** ClrData.idl, ClrData.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[v451_update](../../../../includes/net-current-v451-nov-plus.md)] + ## See also - [ICLRDataTarget3 Interface](iclrdatatarget3-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/iclrdatatarget3-getexceptionthreadid-method.md b/docs/framework/unmanaged-api/debugging/iclrdatatarget3-getexceptionthreadid-method.md index 35ce57757a179..2fb7715fa2b0f 100644 --- a/docs/framework/unmanaged-api/debugging/iclrdatatarget3-getexceptionthreadid-method.md +++ b/docs/framework/unmanaged-api/debugging/iclrdatatarget3-getexceptionthreadid-method.md @@ -2,58 +2,58 @@ description: "Learn more about: ICLRDataTarget3::GetExceptionThreadID Method" title: "ICLRDataTarget3::GetExceptionThreadID Method" ms.date: "03/30/2017" -dev_langs: +dev_langs: - "cpp" -api_name: +api_name: - "ICLRDataTarget3.GetExceptionThreadID" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" ms.assetid: 307d6ac7-4a86-45f3-999d-6b47004a68f2 -topic_type: +topic_type: - "apiref" --- # ICLRDataTarget3::GetExceptionThreadID Method -Called by the common language runtime (CLR) data access services to get the ID of the thread that threw the exception. - -## Syntax - -```cpp -HRESULT GetExceptionThreadID( - [out] ULONG32* threadID -); -``` - -## Parameters - - `threadID` - [out] The ID of the thread that threw the exception. - -## Return Value - - The return value is `S_OK` on success, or a failure `HRESULT` code on failure. The `HRESULT` codes can include but are not limited to the following: - -|Return code|Description| -|-----------------|-----------------| -|`S_OK`|Method succeeded.| -|`HRESULT_FROM_WIN32(ERROR_NOT_FOUND)`|Could not find a valid thread ID for the exception.| - -## Remarks - - This method is implemented by the writer of the debugging application. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** ClrData.idl, ClrData.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[v451_update](../../../../includes/net-current-v451-nov-plus.md)] - +Called by the common language runtime (CLR) data access services to get the ID of the thread that threw the exception. + +## Syntax + +```cpp +HRESULT GetExceptionThreadID( + [out] ULONG32* threadID +); +``` + +## Parameters + + `threadID` + [out] The ID of the thread that threw the exception. + +## Return Value + + The return value is `S_OK` on success, or a failure `HRESULT` code on failure. The `HRESULT` codes can include but are not limited to the following: + +|Return code|Description| +|-----------------|-----------------| +|`S_OK`|Method succeeded.| +|`HRESULT_FROM_WIN32(ERROR_NOT_FOUND)`|Could not find a valid thread ID for the exception.| + +## Remarks + + This method is implemented by the writer of the debugging application. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** ClrData.idl, ClrData.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[v451_update](../../../../includes/net-current-v451-nov-plus.md)] + ## See also - [ICLRDataTarget3 Interface](iclrdatatarget3-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/iclrdatatarget3-interface.md b/docs/framework/unmanaged-api/debugging/iclrdatatarget3-interface.md index eb5dc06638b06..2f31799df8e59 100644 --- a/docs/framework/unmanaged-api/debugging/iclrdatatarget3-interface.md +++ b/docs/framework/unmanaged-api/debugging/iclrdatatarget3-interface.md @@ -2,42 +2,42 @@ description: "Learn more about: ICLRDataTarget3 Interface" title: "ICLRDataTarget3 Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICLRDataTarget3" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" ms.assetid: d2711bdf-64b3-404c-a0c3-01ba4907f703 -topic_type: +topic_type: - "apiref" --- # ICLRDataTarget3 Interface -A subclass of [ICLRDataTarget2](iclrdatatarget2-interface.md) that provides access to exception information. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetExceptionRecord Method](iclrdatatarget3-getexceptionrecord-method.md)|Called by the common language runtime (CLR) data access services to retrieve the exception record associated with the target process.| -|[GetExceptionContextRecord Method](iclrdatatarget3-getexceptioncontextrecord-method.md)|Called by the CLR data access services to retrieve the context record associated with the target process.| -|[GetExceptionThreadID Method](iclrdatatarget3-getexceptionthreadid-method.md)|Called by the CLR data access services to get the ID of the thread that threw the exception.| - -## Remarks - - The API client (that is, the debugger) must implement this interface as appropriate for the particular target process. For example, a live process would have an implementation different from that of a memory dump. The target may not support modification of its memory regions. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** ClrData.idl, ClrData.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[v451_update](../../../../includes/net-current-v451-nov-plus.md)] - +A subclass of [ICLRDataTarget2](iclrdatatarget2-interface.md) that provides access to exception information. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetExceptionRecord Method](iclrdatatarget3-getexceptionrecord-method.md)|Called by the common language runtime (CLR) data access services to retrieve the exception record associated with the target process.| +|[GetExceptionContextRecord Method](iclrdatatarget3-getexceptioncontextrecord-method.md)|Called by the CLR data access services to retrieve the context record associated with the target process.| +|[GetExceptionThreadID Method](iclrdatatarget3-getexceptionthreadid-method.md)|Called by the CLR data access services to get the ID of the thread that threw the exception.| + +## Remarks + + The API client (that is, the debugger) must implement this interface as appropriate for the particular target process. For example, a live process would have an implementation different from that of a memory dump. The target may not support modification of its memory regions. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** ClrData.idl, ClrData.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[v451_update](../../../../includes/net-current-v451-nov-plus.md)] + ## See also - [ICLRDataTarget Interface](iclrdatatarget-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/iclrdebugging-canunloadnow-method.md b/docs/framework/unmanaged-api/debugging/iclrdebugging-canunloadnow-method.md index 8c50d3ec951ce..c184c9b211fd2 100644 --- a/docs/framework/unmanaged-api/debugging/iclrdebugging-canunloadnow-method.md +++ b/docs/framework/unmanaged-api/debugging/iclrdebugging-canunloadnow-method.md @@ -2,62 +2,62 @@ description: "Learn more about: ICLRDebugging::CanUnloadNow Method" title: "ICLRDebugging::CanUnloadNow Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICLRDebugging.CanUnloadNow Method" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICLRDebugging::CanUnloadNow" -helpviewer_keywords: +helpviewer_keywords: - "CanUnloadNow method [.NET Framework debugging]" - "ICLRDebugging::CanUnloadNow method [.NET Framework debugging]" ms.assetid: 62e0630c-8cb7-45d2-b622-5a472abfd8cf -topic_type: +topic_type: - "apiref" --- # ICLRDebugging::CanUnloadNow Method -Determines whether a library that was provided by an [ICLRDebuggingLibraryProvider](iclrdebugginglibraryprovider-interface.md) interface is still in use or can be unloaded. - -## Syntax - -```cpp -HRESULT CanUnloadNow(HMODULE hModule); -``` - -## Parameters - - `hmodule` - [in] The base address of a module in the target process. - -## Return Value - - This method returns the following specific HRESULTs as well as HRESULT errors that indicate method failure. - -|HRESULT|Description| -|-------------|-----------------| -|S_OK|The module that is referenced by `hmodule` can be unloaded.| -|S_FALSE|The module that is referenced by `hmodule` is still in use.| -|COR_E_NOT_CLR|The indicated module is not a CLR module.| - -## Exceptions - -## Remarks - - This method checks to see if all instances of `ICorDebug*` interfaces have been released and no thread is currently within a call to the [ICLRDebugging::OpenVirtualProcess](iclrdebugging-openvirtualprocess-method.md) method. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +Determines whether a library that was provided by an [ICLRDebuggingLibraryProvider](iclrdebugginglibraryprovider-interface.md) interface is still in use or can be unloaded. + +## Syntax + +```cpp +HRESULT CanUnloadNow(HMODULE hModule); +``` + +## Parameters + + `hmodule` + [in] The base address of a module in the target process. + +## Return Value + + This method returns the following specific HRESULTs as well as HRESULT errors that indicate method failure. + +|HRESULT|Description| +|-------------|-----------------| +|S_OK|The module that is referenced by `hmodule` can be unloaded.| +|S_FALSE|The module that is referenced by `hmodule` is still in use.| +|COR_E_NOT_CLR|The indicated module is not a CLR module.| + +## Exceptions + +## Remarks + + This method checks to see if all instances of `ICorDebug*` interfaces have been released and no thread is currently within a call to the [ICLRDebugging::OpenVirtualProcess](iclrdebugging-openvirtualprocess-method.md) method. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/iclrdebugging-interface.md b/docs/framework/unmanaged-api/debugging/iclrdebugging-interface.md index 6e1a0348b3a8c..290d21d555268 100644 --- a/docs/framework/unmanaged-api/debugging/iclrdebugging-interface.md +++ b/docs/framework/unmanaged-api/debugging/iclrdebugging-interface.md @@ -2,45 +2,45 @@ description: "Learn more about: ICLRDebugging Interface" title: "ICLRDebugging Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICLRDebugging" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICLRDebugging" -helpviewer_keywords: +helpviewer_keywords: - "ICLRDebugging interface [.NET Framework debugging]" ms.assetid: 429d8fce-b1b1-49d7-895c-28c1c1aa2dbd -topic_type: +topic_type: - "apiref" --- # ICLRDebugging Interface -Provides methods that handle loading and unloading modules for debugging. - -## Methods - -|Method|Description| -|------------|-----------------| -|[OpenVirtualProcess Method](iclrdebugging-openvirtualprocess-method.md)|Gets the "ICorDebugProcess" interface that corresponds to a common language runtime (CLR) module loaded in the process.| -|[CanUnloadNow Method](iclrdebugging-canunloadnow-method.md)|Determines whether a library that was provided by an [ICLRDebuggingLibraryProvider](iclrdebugginglibraryprovider-interface.md) interface is still in use or can be unloaded.| - -## Remarks - - You can obtain an instance of the `ICLRDebugging` interface by using the [CLRCreateInstance](../hosting/clrcreateinstance-function.md) function. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +Provides methods that handle loading and unloading modules for debugging. + +## Methods + +|Method|Description| +|------------|-----------------| +|[OpenVirtualProcess Method](iclrdebugging-openvirtualprocess-method.md)|Gets the "ICorDebugProcess" interface that corresponds to a common language runtime (CLR) module loaded in the process.| +|[CanUnloadNow Method](iclrdebugging-canunloadnow-method.md)|Determines whether a library that was provided by an [ICLRDebuggingLibraryProvider](iclrdebugginglibraryprovider-interface.md) interface is still in use or can be unloaded.| + +## Remarks + + You can obtain an instance of the `ICLRDebugging` interface by using the [CLRCreateInstance](../hosting/clrcreateinstance-function.md) function. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/iclrmetadatalocator-getmetadata-method.md b/docs/framework/unmanaged-api/debugging/iclrmetadatalocator-getmetadata-method.md index 5ce51f8b3187b..3b4d5d2c7efb4 100644 --- a/docs/framework/unmanaged-api/debugging/iclrmetadatalocator-getmetadata-method.md +++ b/docs/framework/unmanaged-api/debugging/iclrmetadatalocator-getmetadata-method.md @@ -2,85 +2,85 @@ description: "Learn more about: ICLRMetadataLocator::GetMetadata Method" title: "ICLRMetadataLocator::GetMetadata Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICLRMetadataLocator.GetMetadata" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICLRMetadataLocator::GetMetadata" -helpviewer_keywords: +helpviewer_keywords: - "GetMetadata method, ICLRMetadataLocator interface [.NET Framework debugging]" - "ICLRMetadataLocator::GetMetadata method [.NET Framework debugging]" ms.assetid: 704a8893-ac56-43b4-90ea-715f38ccb40e -topic_type: +topic_type: - "apiref" --- # ICLRMetadataLocator::GetMetadata Method -Called by the common language runtime (CLR) data access services to retrieve the metadata of an image. - -## Syntax - -```cpp -HRESULT GetMetadata( - [in] LPCWSTR imagePath, - [in] ULONG32 imageTimestamp, - [in] ULONG32 imageSize, - [in] GUID* mvid, - [in] ULONG32 mdRva, - [in] ULONG32 flags, - [in] ULONG32 bufferSize, - [out, size_is(bufferSize), length_is(*dataSize)] - BYTE* buffer, - [out] ULONG32* dataSize -); -``` - -## Parameters - - `imagePath` - [in] A string that specifies the path of the image file. - - `imageTimestamp` - [in] The time stamp of the image file. - - `imageSize` - [in] The size of the image file. - - `mvid` - [in] The globally unique identifier of the image. - - `mdRva` - [in] The relative virtual address (RVA) of the metadata. The address is relative to the image base address. - - `flags` - [in] Reserved for future use. - - `bufferSize` - [in] The size of the buffer in which to place the metadata. - - `buffer` - [out] The buffer in which to place the metadata. - - `dataSize` - [out] The size of the metadata that is returned. - -## Remarks - - This method is implemented by the writer of the debugging application. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** ClrData.idl, ClrData.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +Called by the common language runtime (CLR) data access services to retrieve the metadata of an image. + +## Syntax + +```cpp +HRESULT GetMetadata( + [in] LPCWSTR imagePath, + [in] ULONG32 imageTimestamp, + [in] ULONG32 imageSize, + [in] GUID* mvid, + [in] ULONG32 mdRva, + [in] ULONG32 flags, + [in] ULONG32 bufferSize, + [out, size_is(bufferSize), length_is(*dataSize)] + BYTE* buffer, + [out] ULONG32* dataSize +); +``` + +## Parameters + + `imagePath` + [in] A string that specifies the path of the image file. + + `imageTimestamp` + [in] The time stamp of the image file. + + `imageSize` + [in] The size of the image file. + + `mvid` + [in] The globally unique identifier of the image. + + `mdRva` + [in] The relative virtual address (RVA) of the metadata. The address is relative to the image base address. + + `flags` + [in] Reserved for future use. + + `bufferSize` + [in] The size of the buffer in which to place the metadata. + + `buffer` + [out] The buffer in which to place the metadata. + + `dataSize` + [out] The size of the metadata that is returned. + +## Remarks + + This method is implemented by the writer of the debugging application. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** ClrData.idl, ClrData.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [ICLRMetadataLocator Interface](iclrmetadatalocator-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/iclrmetadatalocator-interface.md b/docs/framework/unmanaged-api/debugging/iclrmetadatalocator-interface.md index 3501e4be19098..4445eb63ee313 100644 --- a/docs/framework/unmanaged-api/debugging/iclrmetadatalocator-interface.md +++ b/docs/framework/unmanaged-api/debugging/iclrmetadatalocator-interface.md @@ -2,44 +2,44 @@ description: "Learn more about: ICLRMetadataLocator Interface" title: "ICLRMetadataLocator Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICLRMetadataLocator" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICLRMetadataLocator" -helpviewer_keywords: +helpviewer_keywords: - "ICLRMetadataLocator interface [.NET Framework debugging]" ms.assetid: 43c944f4-406a-4df6-981e-0eabb33dd5d0 -topic_type: +topic_type: - "apiref" --- # ICLRMetadataLocator Interface -Used by the data access services layer to locate metadata of assemblies in a target process. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetMetadata Method](iclrmetadatalocator-getmetadata-method.md)|Retrieves the metadata of an image from the target process.| - -## Remarks - - The API client (that is, the debugger) must implement this interface as appropriate for the particular target process. For example, the implementation for a live process would be different from that of a memory dump. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** ClrData.idl, ClrData.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +Used by the data access services layer to locate metadata of assemblies in a target process. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetMetadata Method](iclrmetadatalocator-getmetadata-method.md)|Retrieves the metadata of an image from the target process.| + +## Remarks + + The API client (that is, the debugger) must implement this interface as appropriate for the particular target process. For example, the implementation for a live process would be different from that of a memory dump. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** ClrData.idl, ClrData.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebug-canlaunchorattach-method.md b/docs/framework/unmanaged-api/debugging/icordebug-canlaunchorattach-method.md index 74eae6a50a0ae..d18ad6ea08f08 100644 --- a/docs/framework/unmanaged-api/debugging/icordebug-canlaunchorattach-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebug-canlaunchorattach-method.md @@ -2,70 +2,70 @@ description: "Learn more about: ICorDebug::CanLaunchOrAttach Method" title: "ICorDebug::CanLaunchOrAttach Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebug.CanLaunchOrAttach" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebug::CanLaunchOrAttach" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebug::CanLaunchOrAttach method [.NET Framework debugging]" - "CanLaunchOrAttach method [.NET Framework debugging]" ms.assetid: ca7723db-7c07-4cdd-bd92-fba34928b623 -topic_type: +topic_type: - "apiref" --- # ICorDebug::CanLaunchOrAttach Method -Returns an HRESULT that indicates whether launching a new process or attaching to the specified existing process is possible within the context of the current machine and runtime configuration. - -## Syntax - -```cpp -HRESULT CanLaunchOrAttach ( - [in] DWORD dwProcessId, - [in] BOOL win32DebuggingEnabled -); -``` - -## Parameters - - `dwProcessId` - [in] The ID of an existing process. - - `win32DebuggingEnabled` - [in] Pass in `true` if you plan to launch with Win32 debugging enabled, or to attach with Win32 debugging enabled; otherwise, pass `false`. - -## Return Value - - S_OK if the debugging services determine that launching a new process or attaching to the given process is possible, given the information about the current machine and runtime configuration. Possible HRESULT values are: - -- S_OK - -- CORDBG_E_DEBUGGING_NOT_POSSIBLE - -- CORDBG_E_KERNEL_DEBUGGER_PRESENT - -- CORDBG_E_KERNEL_DEBUGGER_ENABLED - -## Remarks - - This method is purely informational. The interface will not stop you from launching or attaching to a process, regardless of the value returned by `CanLaunchOrAttach`. - - If you plan to launch with Win32 debugging enabled or attach with Win32 debugging enabled, pass `true` for `win32DebuggingEnabled`. The HRESULT returned by `CanLaunchOrAttach` might differ if you use this option. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Returns an HRESULT that indicates whether launching a new process or attaching to the specified existing process is possible within the context of the current machine and runtime configuration. + +## Syntax + +```cpp +HRESULT CanLaunchOrAttach ( + [in] DWORD dwProcessId, + [in] BOOL win32DebuggingEnabled +); +``` + +## Parameters + + `dwProcessId` + [in] The ID of an existing process. + + `win32DebuggingEnabled` + [in] Pass in `true` if you plan to launch with Win32 debugging enabled, or to attach with Win32 debugging enabled; otherwise, pass `false`. + +## Return Value + + S_OK if the debugging services determine that launching a new process or attaching to the given process is possible, given the information about the current machine and runtime configuration. Possible HRESULT values are: + +- S_OK + +- CORDBG_E_DEBUGGING_NOT_POSSIBLE + +- CORDBG_E_KERNEL_DEBUGGER_PRESENT + +- CORDBG_E_KERNEL_DEBUGGER_ENABLED + +## Remarks + + This method is purely informational. The interface will not stop you from launching or attaching to a process, regardless of the value returned by `CanLaunchOrAttach`. + + If you plan to launch with Win32 debugging enabled or attach with Win32 debugging enabled, pass `true` for `win32DebuggingEnabled`. The HRESULT returned by `CanLaunchOrAttach` might differ if you use this option. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [ICorDebug Interface](icordebug-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebug-createprocess-method.md b/docs/framework/unmanaged-api/debugging/icordebug-createprocess-method.md index cd78630a3de1b..25489ba943124 100644 --- a/docs/framework/unmanaged-api/debugging/icordebug-createprocess-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebug-createprocess-method.md @@ -2,102 +2,102 @@ description: "Learn more about: ICorDebug::CreateProcess Method" title: "ICorDebug::CreateProcess Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebug.CreateProcess" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebug::CreateProcess" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebug::CreateProcess method [.NET Framework debugging]" - "CreateProcess method, ICorDebugProcess interface [.NET Framework debugging]" ms.assetid: b6128694-11ed-46e7-bd4e-49ea1914c46a -topic_type: +topic_type: - "apiref" --- # ICorDebug::CreateProcess Method -Launches a process and its primary thread under the control of the debugger. - -## Syntax - -```cpp -HRESULT CreateProcess ( - [in] LPCWSTR lpApplicationName, - [in] LPWSTR lpCommandLine, - [in] LPSECURITY_ATTRIBUTES lpProcessAttributes, - [in] LPSECURITY_ATTRIBUTES lpThreadAttributes, - [in] BOOL bInheritHandles, - [in] DWORD dwCreationFlags, - [in] PVOID lpEnvironment, - [in] LPCWSTR lpCurrentDirectory, - [in] LPSTARTUPINFOW lpStartupInfo, - [in] LPPROCESS_INFORMATION lpProcessInformation, - [in] CorDebugCreateProcessFlags debuggingFlags, - [out] ICorDebugProcess **ppProcess -); -``` - -## Parameters - - `lpApplicationName` - [in] Pointer to a null-terminated string that specifies the module to be executed by the launched process. The module is executed in the security context of the calling process. - - `lpCommandLine` - [in] Pointer to a null-terminated string that specifies the command line to be executed by the launched process. The application name (for example, "SomeApp.exe") must be the first argument. - - `lpProcessAttributes` - [in] Pointer to a Win32 `SECURITY_ATTRIBUTES` structure that specifies the security descriptor for the process. If `lpProcessAttributes` is null, the process gets a default security descriptor. - - `lpThreadAttributes` - [in] Pointer to a Win32 `SECURITY_ATTRIBUTES` structure that specifies the security descriptor for the primary thread of the process. If `lpThreadAttributes` is null, the thread gets a default security descriptor. - - `bInheritHandles` - [in] Set to `true` to indicate that each inheritable handle in the calling process is inherited by the launched process, or `false` to indicate that the handles are not inherited. The inherited handles have the same value and access rights as the original handles. - - `dwCreationFlags` - [in] A bitwise combination of the [Win32 Process Creation Flags](/windows/win32/procthread/process-creation-flags) that control the priority class and the behavior of the launched process. - - `lpEnvironment` - [in] Pointer to an environment block for the new process. - - `lpCurrentDirectory` - [in] Pointer to a null-terminated string that specifies the full path to the current directory for the process. If this parameter is null, the new process will have the same current drive and directory as the calling process. - - `lpStartupInfo` - [in] Pointer to a Win32 `STARTUPINFOW` structure that specifies the window station, desktop, standard handles, and appearance of the main window for the launched process. - - `lpProcessInformation` - [in] Pointer to a Win32 `PROCESS_INFORMATION` structure that specifies the identification information about the process to be launched. - - `debuggingFlags` - [in] A value of the CorDebugCreateProcessFlags enumeration that specifies the debugging options. - - `ppProcess` - [out] A pointer to the address of a ICorDebugProcess object that represents the process. - -## Remarks - - The parameters of this method are the same as those of the Win32 `CreateProcess` method. - - To enable unmanaged mixed-mode debugging, set `dwCreationFlags` to DEBUG_PROCESS | DEBUG_ONLY_THIS_PROCESS. If you want to use only managed debugging, do not set these flags. - - If the debugger and the process to be debugged (the attached process) share a single console, and if interop debugging is used, it is possible for the attached process to hold console locks and stop at a debug event. The debugger will then block any attempt to use the console. To avoid this problem, set the CREATE_NEW_CONSOLE flag in the `dwCreationFlags` parameter. - - Interop debugging is not supported on Win9x and non-x86 platforms such as IA-64-based and AMD64-based platforms. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Launches a process and its primary thread under the control of the debugger. + +## Syntax + +```cpp +HRESULT CreateProcess ( + [in] LPCWSTR lpApplicationName, + [in] LPWSTR lpCommandLine, + [in] LPSECURITY_ATTRIBUTES lpProcessAttributes, + [in] LPSECURITY_ATTRIBUTES lpThreadAttributes, + [in] BOOL bInheritHandles, + [in] DWORD dwCreationFlags, + [in] PVOID lpEnvironment, + [in] LPCWSTR lpCurrentDirectory, + [in] LPSTARTUPINFOW lpStartupInfo, + [in] LPPROCESS_INFORMATION lpProcessInformation, + [in] CorDebugCreateProcessFlags debuggingFlags, + [out] ICorDebugProcess **ppProcess +); +``` + +## Parameters + + `lpApplicationName` + [in] Pointer to a null-terminated string that specifies the module to be executed by the launched process. The module is executed in the security context of the calling process. + + `lpCommandLine` + [in] Pointer to a null-terminated string that specifies the command line to be executed by the launched process. The application name (for example, "SomeApp.exe") must be the first argument. + + `lpProcessAttributes` + [in] Pointer to a Win32 `SECURITY_ATTRIBUTES` structure that specifies the security descriptor for the process. If `lpProcessAttributes` is null, the process gets a default security descriptor. + + `lpThreadAttributes` + [in] Pointer to a Win32 `SECURITY_ATTRIBUTES` structure that specifies the security descriptor for the primary thread of the process. If `lpThreadAttributes` is null, the thread gets a default security descriptor. + + `bInheritHandles` + [in] Set to `true` to indicate that each inheritable handle in the calling process is inherited by the launched process, or `false` to indicate that the handles are not inherited. The inherited handles have the same value and access rights as the original handles. + + `dwCreationFlags` + [in] A bitwise combination of the [Win32 Process Creation Flags](/windows/win32/procthread/process-creation-flags) that control the priority class and the behavior of the launched process. + + `lpEnvironment` + [in] Pointer to an environment block for the new process. + + `lpCurrentDirectory` + [in] Pointer to a null-terminated string that specifies the full path to the current directory for the process. If this parameter is null, the new process will have the same current drive and directory as the calling process. + + `lpStartupInfo` + [in] Pointer to a Win32 `STARTUPINFOW` structure that specifies the window station, desktop, standard handles, and appearance of the main window for the launched process. + + `lpProcessInformation` + [in] Pointer to a Win32 `PROCESS_INFORMATION` structure that specifies the identification information about the process to be launched. + + `debuggingFlags` + [in] A value of the CorDebugCreateProcessFlags enumeration that specifies the debugging options. + + `ppProcess` + [out] A pointer to the address of a ICorDebugProcess object that represents the process. + +## Remarks + + The parameters of this method are the same as those of the Win32 `CreateProcess` method. + + To enable unmanaged mixed-mode debugging, set `dwCreationFlags` to DEBUG_PROCESS | DEBUG_ONLY_THIS_PROCESS. If you want to use only managed debugging, do not set these flags. + + If the debugger and the process to be debugged (the attached process) share a single console, and if interop debugging is used, it is possible for the attached process to hold console locks and stop at a debug event. The debugger will then block any attempt to use the console. To avoid this problem, set the CREATE_NEW_CONSOLE flag in the `dwCreationFlags` parameter. + + Interop debugging is not supported on Win9x and non-x86 platforms such as IA-64-based and AMD64-based platforms. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [ICorDebug Interface](icordebug-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebug-debugactiveprocess-method.md b/docs/framework/unmanaged-api/debugging/icordebug-debugactiveprocess-method.md index 38262a7f427ee..136a8393ff49f 100644 --- a/docs/framework/unmanaged-api/debugging/icordebug-debugactiveprocess-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebug-debugactiveprocess-method.md @@ -2,60 +2,60 @@ description: "Learn more about: ICorDebug::DebugActiveProcess Method" title: "ICorDebug::DebugActiveProcess Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebug.DebugActiveProcess" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebug::DebugActiveProcess" -helpviewer_keywords: +helpviewer_keywords: - "DebugActiveProcess method [.NET Framework debugging]" - "ICorDebug::DebugActiveProcess method [.NET Framework debugging]" ms.assetid: fdab0ade-7f56-4fa2-b3ef-f7a1d2852bba -topic_type: +topic_type: - "apiref" --- # ICorDebug::DebugActiveProcess Method -Attaches the debugger to an existing process. - -## Syntax - -```cpp -HRESULT DebugActiveProcess ( - [in] DWORD id, - [in] BOOL win32Attach, - [out] ICorDebugProcess **ppProcess -); -``` - -## Parameters - - `id` - [in] The ID of the process to which the debugger is to be attached. - - `win32Attach` - [in] Boolean value that is set to `true` if the debugger should behave as the Win32 debugger for the process and dispatch the unmanaged callbacks; otherwise, `false`. - - `ppProcess` - [out] A pointer to the address of an "ICorDebugProcess" object that represents the process to which the debugger has been attached. - -## Remarks - - Interop debugging is not supported on Win9x and non-x86 platforms, such as IA-64-based and AMD64-based platforms. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Attaches the debugger to an existing process. + +## Syntax + +```cpp +HRESULT DebugActiveProcess ( + [in] DWORD id, + [in] BOOL win32Attach, + [out] ICorDebugProcess **ppProcess +); +``` + +## Parameters + + `id` + [in] The ID of the process to which the debugger is to be attached. + + `win32Attach` + [in] Boolean value that is set to `true` if the debugger should behave as the Win32 debugger for the process and dispatch the unmanaged callbacks; otherwise, `false`. + + `ppProcess` + [out] A pointer to the address of an "ICorDebugProcess" object that represents the process to which the debugger has been attached. + +## Remarks + + Interop debugging is not supported on Win9x and non-x86 platforms, such as IA-64-based and AMD64-based platforms. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [ICorDebug Interface](icordebug-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebug-initialize-method.md b/docs/framework/unmanaged-api/debugging/icordebug-initialize-method.md index 5eb56b2d61163..2c8a2aea6ee19 100644 --- a/docs/framework/unmanaged-api/debugging/icordebug-initialize-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebug-initialize-method.md @@ -2,45 +2,45 @@ description: "Learn more about: ICorDebug::Initialize Method" title: "ICorDebug::Initialize Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebug.Initialize" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebug::Initialize" -helpviewer_keywords: +helpviewer_keywords: - "Initialize method, ICorDebug interface [.NET Framework debugging]" - "ICorDebug::Initialize method [.NET Framework debugging]" ms.assetid: 6fae3b23-5c9f-47c0-85d8-6bb75e050786 -topic_type: +topic_type: - "apiref" --- # ICorDebug::Initialize Method -Initializes the `ICorDebug` object. - -## Syntax - -```cpp -HRESULT Initialize (); -``` - -## Remarks - - The debugger must call `Initialize` at creation time to initialize the debugging services. This method must be called before any other method on `ICorDebug` is called. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Initializes the `ICorDebug` object. + +## Syntax + +```cpp +HRESULT Initialize (); +``` + +## Remarks + + The debugger must call `Initialize` at creation time to initialize the debugging services. This method must be called before any other method on `ICorDebug` is called. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [ICorDebug Interface](icordebug-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebug-interface.md b/docs/framework/unmanaged-api/debugging/icordebug-interface.md index 6bb065709a0e0..61dec178ae5e2 100644 --- a/docs/framework/unmanaged-api/debugging/icordebug-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebug-interface.md @@ -2,60 +2,60 @@ description: "Learn more about: ICorDebug Interface" title: "ICorDebug Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebug" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebug" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebug interface [.NET Framework debugging]" ms.assetid: 33f431d7-ab1a-494d-8af2-20ab15aba194 -topic_type: +topic_type: - "apiref" --- # ICorDebug Interface -Provides methods that allow developers to debug applications in the common language runtime (CLR) environment. - +Provides methods that allow developers to debug applications in the common language runtime (CLR) environment. + > [!NOTE] -> Mixed-mode (managed and native code) debugging is not supported on non-x86 platforms (such as IA64 and AMD64). - -## Methods - -|Method|Description| -|------------|-----------------| -|[CanLaunchOrAttach Method](icordebug-canlaunchorattach-method.md)|Determines whether launching a new process or attaching to the given process is possible within the context of the current machine and runtime configuration.| -|[CreateProcess Method](icordebug-createprocess-method.md)|Launches a process and its primary thread under the control of the debugger.| -|[DebugActiveProcess Method](icordebug-debugactiveprocess-method.md)|Attaches the debugger to an existing process.| -|[EnumerateProcesses Method](icordebug-enumerateprocesses-method.md)|Gets an enumerator for the processes that are being debugged.| -|[GetProcess Method](icordebug-getprocess-method.md)|Returns the "ICorDebugProcess" object with the given process ID.| -|[Initialize Method](icordebug-initialize-method.md)|Initializes the `ICorDebug` object.| -|[SetManagedHandler Method](icordebug-setmanagedhandler-method.md)|Specifies the event handler object for managed events.| -|[SetUnmanagedHandler Method](icordebug-setunmanagedhandler-method.md)|Specifies the event handler object for unmanaged events.| -|[Terminate Method](icordebug-terminate-method.md)|Terminates the `ICorDebug` object.| - -## Remarks - - `ICorDebug` represents an event processing loop for a debugger process. The debugger must wait for the [ICorDebugManagedCallback::ExitProcess](icordebugmanagedcallback-exitprocess-method.md) callback from all processes being debugged before releasing this interface. - - The `ICorDebug` object is the initial object to control all further managed debugging. In the .NET Framework versions 1.0 and 1.1, this object was a `CoClass` object created from COM. In .NET Framework version 2.0, this object is no longer a `CoClass` object. It must be created by the [CreateDebuggingInterfaceFromVersion](../hosting/createdebugginginterfacefromversion-function.md) function, which is more version-aware. This new creation function enables clients to get a specific implementation of `ICorDebug`, which also emulates a specific version of the debugging API. - +> Mixed-mode (managed and native code) debugging is not supported on non-x86 platforms (such as IA64 and AMD64). + +## Methods + +|Method|Description| +|------------|-----------------| +|[CanLaunchOrAttach Method](icordebug-canlaunchorattach-method.md)|Determines whether launching a new process or attaching to the given process is possible within the context of the current machine and runtime configuration.| +|[CreateProcess Method](icordebug-createprocess-method.md)|Launches a process and its primary thread under the control of the debugger.| +|[DebugActiveProcess Method](icordebug-debugactiveprocess-method.md)|Attaches the debugger to an existing process.| +|[EnumerateProcesses Method](icordebug-enumerateprocesses-method.md)|Gets an enumerator for the processes that are being debugged.| +|[GetProcess Method](icordebug-getprocess-method.md)|Returns the "ICorDebugProcess" object with the given process ID.| +|[Initialize Method](icordebug-initialize-method.md)|Initializes the `ICorDebug` object.| +|[SetManagedHandler Method](icordebug-setmanagedhandler-method.md)|Specifies the event handler object for managed events.| +|[SetUnmanagedHandler Method](icordebug-setunmanagedhandler-method.md)|Specifies the event handler object for unmanaged events.| +|[Terminate Method](icordebug-terminate-method.md)|Terminates the `ICorDebug` object.| + +## Remarks + + `ICorDebug` represents an event processing loop for a debugger process. The debugger must wait for the [ICorDebugManagedCallback::ExitProcess](icordebugmanagedcallback-exitprocess-method.md) callback from all processes being debugged before releasing this interface. + + The `ICorDebug` object is the initial object to control all further managed debugging. In the .NET Framework versions 1.0 and 1.1, this object was a `CoClass` object created from COM. In .NET Framework version 2.0, this object is no longer a `CoClass` object. It must be created by the [CreateDebuggingInterfaceFromVersion](../hosting/createdebugginginterfacefromversion-function.md) function, which is more version-aware. This new creation function enables clients to get a specific implementation of `ICorDebug`, which also emulates a specific version of the debugging API. + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebug-setmanagedhandler-method.md b/docs/framework/unmanaged-api/debugging/icordebug-setmanagedhandler-method.md index ae164c3209331..405a184145a21 100644 --- a/docs/framework/unmanaged-api/debugging/icordebug-setmanagedhandler-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebug-setmanagedhandler-method.md @@ -2,54 +2,54 @@ description: "Learn more about: ICorDebug::SetManagedHandler Method" title: "ICorDebug::SetManagedHandler Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebug.SetManagedHandler" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebug::SetManagedHandler" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebug::SetManagedHandler method [.NET Framework debugging]" - "SetManagedHandler method [.NET Framework debugging]" ms.assetid: d079131b-685b-4869-95be-826b88d28bd2 -topic_type: +topic_type: - "apiref" --- # ICorDebug::SetManagedHandler Method -Specifies the event handler object for managed events. - -## Syntax - -```cpp -HRESULT SetManagedHandler ( - [in] ICorDebugManagedCallback *pCallback -); -``` - -## Parameters - - `pCallback` - [in] A pointer to an [ICorDebugManagedCallback](icordebugmanagedcallback-interface.md) object, which is the event handler object. - -## Remarks - - `SetManagedHandler` must be called at creation time. - - If the `ICorDebugManagedCallback` implementation does not contain sufficient interfaces to handle debugging events for the application that is being debugged, `SetManagedHandler` returns an HRESULT of E_NOINTERFACE. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Specifies the event handler object for managed events. + +## Syntax + +```cpp +HRESULT SetManagedHandler ( + [in] ICorDebugManagedCallback *pCallback +); +``` + +## Parameters + + `pCallback` + [in] A pointer to an [ICorDebugManagedCallback](icordebugmanagedcallback-interface.md) object, which is the event handler object. + +## Remarks + + `SetManagedHandler` must be called at creation time. + + If the `ICorDebugManagedCallback` implementation does not contain sufficient interfaces to handle debugging events for the application that is being debugged, `SetManagedHandler` returns an HRESULT of E_NOINTERFACE. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [ICorDebug Interface](icordebug-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebug-setunmanagedhandler-method.md b/docs/framework/unmanaged-api/debugging/icordebug-setunmanagedhandler-method.md index 36b18f07b5897..4fc874a455738 100644 --- a/docs/framework/unmanaged-api/debugging/icordebug-setunmanagedhandler-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebug-setunmanagedhandler-method.md @@ -2,52 +2,52 @@ description: "Learn more about: ICorDebug::SetUnmanagedHandler Method" title: "ICorDebug::SetUnmanagedHandler Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebug.SetUnmanagedHandler" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebug::SetUnmanagedHandler" -helpviewer_keywords: +helpviewer_keywords: - "SetUnmanagedHandler method [.NET Framework debugging]" - "ICorDebug::SetUnmanagedHandler method [.NET Framework debugging]" ms.assetid: 6b546be4-f86d-4536-8cfc-1d08e5066eb6 -topic_type: +topic_type: - "apiref" --- # ICorDebug::SetUnmanagedHandler Method -Specifies the event handler object for unmanaged events. - -## Syntax - -```cpp -HRESULT SetUnmanagedHandler ( - [in] ICorDebugUnmanagedCallback *pCallback -); -``` - -## Parameters - - `pCallback` - [in] A pointer to an [ICorDebugUnmanagedCallback](icordebugunmanagedcallback-interface.md) object that represents the event handler for unmanaged events. - -## Remarks - - The event handler object for unmanaged events must be set after a call to [ICorDebug::Initialize](icordebug-initialize-method.md) and before any calls to [ICorDebug::CreateProcess](icordebug-createprocess-method.md) or [ICorDebug::DebugActiveProcess](icordebug-debugactiveprocess-method.md). However, for legacy purposes, you are not required to set the event handler object for unmanaged events until the first native debug event is raised. Specifically, if `ICorDebug::CreateProcess` has set the CREATE_SUSPENDED flag, native debug events cannot be dispatched until the main thread is resumed. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Specifies the event handler object for unmanaged events. + +## Syntax + +```cpp +HRESULT SetUnmanagedHandler ( + [in] ICorDebugUnmanagedCallback *pCallback +); +``` + +## Parameters + + `pCallback` + [in] A pointer to an [ICorDebugUnmanagedCallback](icordebugunmanagedcallback-interface.md) object that represents the event handler for unmanaged events. + +## Remarks + + The event handler object for unmanaged events must be set after a call to [ICorDebug::Initialize](icordebug-initialize-method.md) and before any calls to [ICorDebug::CreateProcess](icordebug-createprocess-method.md) or [ICorDebug::DebugActiveProcess](icordebug-debugactiveprocess-method.md). However, for legacy purposes, you are not required to set the event handler object for unmanaged events until the first native debug event is raised. Specifically, if `ICorDebug::CreateProcess` has set the CREATE_SUSPENDED flag, native debug events cannot be dispatched until the main thread is resumed. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [ICorDebug Interface](icordebug-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebug-terminate-method.md b/docs/framework/unmanaged-api/debugging/icordebug-terminate-method.md index 4889b69d358a7..8c83a93871586 100644 --- a/docs/framework/unmanaged-api/debugging/icordebug-terminate-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebug-terminate-method.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebug::Terminate Method" title: "ICorDebug::Terminate Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebug.Terminate" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebug::Terminate" -helpviewer_keywords: +helpviewer_keywords: - "Terminate method, ICorDebug interface [.NET Framework debugging]" - "ICorDebug::Terminate method [.NET Framework debugging]" ms.assetid: fffe5616-0896-4426-ab5e-21869b514883 -topic_type: +topic_type: - "apiref" --- # ICorDebug::Terminate Method -Terminates the `ICorDebug` object. - +Terminates the `ICorDebug` object. + > [!NOTE] -> `Terminate` should not be called until an [ICorDebugManagedCallback::ExitProcess](icordebugmanagedcallback-exitprocess-method.md) callback has been received for all processes being debugged. - -## Syntax - -```cpp -HRESULT Terminate (); -``` - -## Remarks - - `Terminate` must be called when the `ICorDebug` object is no longer needed. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> `Terminate` should not be called until an [ICorDebugManagedCallback::ExitProcess](icordebugmanagedcallback-exitprocess-method.md) callback has been received for all processes being debugged. + +## Syntax + +```cpp +HRESULT Terminate (); +``` + +## Remarks + + `Terminate` must be called when the `ICorDebug` object is no longer needed. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [ICorDebug Interface](icordebug-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugappdomain-attach-method.md b/docs/framework/unmanaged-api/debugging/icordebugappdomain-attach-method.md index 9ca7d68b583e0..24635cfee9e7e 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugappdomain-attach-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugappdomain-attach-method.md @@ -2,41 +2,41 @@ description: "Learn more about: ICorDebugAppDomain::Attach Method" title: "ICorDebugAppDomain::Attach Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugAppDomain.Attach" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugAppDomain::Attach" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugAppDomain::Attach method [.NET Framework debugging]" - "Attach method [.NET Framework debugging]" ms.assetid: 0358b84a-4236-4c34-945b-4babff7df570 -topic_type: +topic_type: - "apiref" --- # ICorDebugAppDomain::Attach Method -Attaches the debugger to the application domain. - -## Syntax - -```cpp -HRESULT Attach (); -``` - -## Remarks - - The debugger must be attached to the application domain to receive events and to enable debugging of the application domain. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Attaches the debugger to the application domain. + +## Syntax + +```cpp +HRESULT Attach (); +``` + +## Remarks + + The debugger must be attached to the application domain to receive events and to enable debugging of the application domain. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugappdomain-enumeratebreakpoints-method.md b/docs/framework/unmanaged-api/debugging/icordebugappdomain-enumeratebreakpoints-method.md index c5debb99835ac..23070555c7dac 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugappdomain-enumeratebreakpoints-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugappdomain-enumeratebreakpoints-method.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugAppDomain::EnumerateBreakpoints Method" title: "ICorDebugAppDomain::EnumerateBreakpoints Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugAppDomain.EnumerateBreakpoints" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugAppDomain::EnumerateBreakpoints" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugAppDomain::EnumerateBreakpoints method [.NET Framework debugging]" - "EnumerateBreakpoints method [.NET Framework debugging]" ms.assetid: 206069c5-25cb-4794-9d69-67c5aa7ed0af -topic_type: +topic_type: - "apiref" --- # ICorDebugAppDomain::EnumerateBreakpoints Method -Gets an enumerator for all active breakpoints in the application domain. - -## Syntax - -```cpp -HRESULT EnumerateBreakpoints ( - [out] ICorDebugBreakpointEnum **ppBreakpoints -); -``` - -## Parameters - - `ppBreakpoints` - [out] A pointer to the address of an ICorDebugBreakpointEnum object that is the enumerator for all active breakpoints in the application domain. - -## Remarks - - The enumerator includes all types of breakpoints, including function breakpoints and data breakpoints. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets an enumerator for all active breakpoints in the application domain. + +## Syntax + +```cpp +HRESULT EnumerateBreakpoints ( + [out] ICorDebugBreakpointEnum **ppBreakpoints +); +``` + +## Parameters + + `ppBreakpoints` + [out] A pointer to the address of an ICorDebugBreakpointEnum object that is the enumerator for all active breakpoints in the application domain. + +## Remarks + + The enumerator includes all types of breakpoints, including function breakpoints and data breakpoints. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugappdomain-getid-method.md b/docs/framework/unmanaged-api/debugging/icordebugappdomain-getid-method.md index ba0c3fb54b63f..db5ff6068d88d 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugappdomain-getid-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugappdomain-getid-method.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugAppDomain::GetId Method" title: "ICorDebugAppDomain::GetId Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugAppDomain.GetId" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugAppDomain::GetId" -helpviewer_keywords: +helpviewer_keywords: - "GetId method, ICorDebugAppDomain interface [.NET Framework debugging]" - "ICorDebugAppDomain::GetId method [.NET Framework debugging]" ms.assetid: 32c27576-71fa-42ee-8230-67b92913ea08 -topic_type: +topic_type: - "apiref" --- # ICorDebugAppDomain::GetId Method -Gets the unique identifier of the application domain. - -## Syntax - -```cpp -HRESULT GetID ( - [out] ULONG32 *pId -); -``` - -## Parameters - - `pId` - [out] The unique identifier of the application domain. - -## Remarks - - The identifier for the application domain is unique within the containing process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets the unique identifier of the application domain. + +## Syntax + +```cpp +HRESULT GetID ( + [out] ULONG32 *pId +); +``` + +## Parameters + + `pId` + [out] The unique identifier of the application domain. + +## Remarks + + The identifier for the application domain is unique within the containing process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugappdomain-getname-method.md b/docs/framework/unmanaged-api/debugging/icordebugappdomain-getname-method.md index 5d895db5c37a2..5cab217034ae5 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugappdomain-getname-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugappdomain-getname-method.md @@ -2,57 +2,57 @@ description: "Learn more about: ICorDebugAppDomain::GetName Method" title: "ICorDebugAppDomain::GetName Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugAppDomain.GetName" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugAppDomain::GetName" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugAppDomain::GetName method [.NET Framework debugging]" - "GetName method, ICorDebugAppDomain interface [.NET Framework debugging]" ms.assetid: 02c596d7-00b0-4e2c-856b-5425158fcefd -topic_type: +topic_type: - "apiref" --- # ICorDebugAppDomain::GetName Method -Gets the name of the application domain. - -## Syntax - -```cpp -HRESULT GetName ( - [in] ULONG32 cchName, - [out] ULONG32 *pcchName, +Gets the name of the application domain. + +## Syntax + +```cpp +HRESULT GetName ( + [in] ULONG32 cchName, + [out] ULONG32 *pcchName, [out, size_is(cchName), length_is(*pcchName)] - WCHAR szName[] -); -``` - -## Parameters - - `cchName` - [in] The size of the `szName` array. Set this value to zero to put this method in query mode. - - `pcchName` - [out] A pointer to the size of the name or the number of characters actually returned in `szName`. In query mode, this value lets the caller know how large a buffer to allocate for the name. - - `szName` - [out] An array that stores the name of the application domain. - -## Remarks - - A debugger calls the `GetName` method once to get the size of a buffer needed for the name. The debugger allocates the buffer, and then calls the method a second time to fill the buffer. The first call, to get the size of the name, is referred to as *query mode*. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - + WCHAR szName[] +); +``` + +## Parameters + + `cchName` + [in] The size of the `szName` array. Set this value to zero to put this method in query mode. + + `pcchName` + [out] A pointer to the size of the name or the number of characters actually returned in `szName`. In query mode, this value lets the caller know how large a buffer to allocate for the name. + + `szName` + [out] An array that stores the name of the application domain. + +## Remarks + + A debugger calls the `GetName` method once to get the size of a buffer needed for the name. The debugger allocates the buffer, and then calls the method a second time to fill the buffer. The first call, to get the size of the name, is referred to as *query mode*. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugappdomain-getobject-method.md b/docs/framework/unmanaged-api/debugging/icordebugappdomain-getobject-method.md index ca8f0563bf5af..ade7370621b2a 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugappdomain-getobject-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugappdomain-getobject-method.md @@ -2,52 +2,52 @@ description: "Learn more about: ICorDebugAppDomain::GetObject Method" title: "ICorDebugAppDomain::GetObject Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugAppDomain.GetObject" -api_location: +api_location: - "corguids.lib" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugAppDomain::GetObject" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugAppDomain::GetObject method [.NET Framework debugging]" - "GetObject method, ICorDebugAppDomain interface [.NET Framework debugging]" ms.assetid: 78232e6f-ae18-4cfa-a6cd-e79471cf9d76 -topic_type: +topic_type: - "apiref" --- # ICorDebugAppDomain::GetObject Method -Gets an interface pointer to the common language runtime (CLR) application domain. - -## Syntax - -```cpp -HRESULT GetObject ( - [out] ICorDebugValue **ppObject -); -``` - -## Parameters - - `ppObject` - [out] A pointer to the address of an ICorDebugValue interface object that represents the CLR application domain. - -## Return Value - - If a managed object hasn't been constructed for this application domain, the method returns `S_FALSE` and places `NULL` in `*ppObject`. - -## Remarks - - Each application domain in a process may have a managed object in the runtime that represents it. This function gets an ICorDebugValue interface object that corresponds to this managed object. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets an interface pointer to the common language runtime (CLR) application domain. + +## Syntax + +```cpp +HRESULT GetObject ( + [out] ICorDebugValue **ppObject +); +``` + +## Parameters + + `ppObject` + [out] A pointer to the address of an ICorDebugValue interface object that represents the CLR application domain. + +## Return Value + + If a managed object hasn't been constructed for this application domain, the method returns `S_FALSE` and places `NULL` in `*ppObject`. + +## Remarks + + Each application domain in a process may have a managed object in the runtime that represents it. This function gets an ICorDebugValue interface object that corresponds to this managed object. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugappdomain-interface.md b/docs/framework/unmanaged-api/debugging/icordebugappdomain-interface.md index b3da0b723b774..e6e0387039881 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugappdomain-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugappdomain-interface.md @@ -2,54 +2,54 @@ description: "Learn more about: ICorDebugAppDomain Interface" title: "ICorDebugAppDomain Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugAppDomain" -api_location: +api_location: - "corguids.lib" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugAppDomain" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugAppDomain interface [.NET Framework debugging]" ms.assetid: be7ae711-1217-4a44-be40-166e29641b77 -topic_type: +topic_type: - "apiref" --- # ICorDebugAppDomain Interface -Provides methods for debugging application domains. This interface is a subclass of ICorDebugController. - -## Methods - -|Method|Description| -|------------|-----------------| -|[Attach Method](icordebugappdomain-attach-method.md)|Attaches the debugger to the application domain.| -|[EnumerateAssemblies Method](icordebugappdomain-enumerateassemblies-method.md)|Gets an enumerator for the assemblies in the application domain.| -|[EnumerateBreakpoints Method](icordebugappdomain-enumeratebreakpoints-method.md)|Gets an enumerator for all active breakpoints in the application domain.| -|[EnumerateSteppers Method](icordebugappdomain-enumeratesteppers-method.md)|Gets an enumerator for all active steppers in the application domain.| -|[GetId Method](icordebugappdomain-getid-method.md)|Gets the unique ID of the application domain.| -|[GetModuleFromMetaDataInterface Method](icordebugappdomain-getmodulefrommetadatainterface-method.md)|Gets the ICorDebugModule object with the given metadata interface.| -|[GetName Method](icordebugappdomain-getname-method.md)|Gets the name of the application domain.| -|[GetObject Method](icordebugappdomain-getobject-method.md)|Gets an interface pointer to the common language runtime (CLR) application domain.| -|[GetProcess Method](icordebugappdomain-getprocess-method.md)|Gets the process containing the application domain.| -|[IsAttached Method](icordebugappdomain-isattached-method.md)|Determines whether the debugger is attached to the application domain.| - -## Remarks - +Provides methods for debugging application domains. This interface is a subclass of ICorDebugController. + +## Methods + +|Method|Description| +|------------|-----------------| +|[Attach Method](icordebugappdomain-attach-method.md)|Attaches the debugger to the application domain.| +|[EnumerateAssemblies Method](icordebugappdomain-enumerateassemblies-method.md)|Gets an enumerator for the assemblies in the application domain.| +|[EnumerateBreakpoints Method](icordebugappdomain-enumeratebreakpoints-method.md)|Gets an enumerator for all active breakpoints in the application domain.| +|[EnumerateSteppers Method](icordebugappdomain-enumeratesteppers-method.md)|Gets an enumerator for all active steppers in the application domain.| +|[GetId Method](icordebugappdomain-getid-method.md)|Gets the unique ID of the application domain.| +|[GetModuleFromMetaDataInterface Method](icordebugappdomain-getmodulefrommetadatainterface-method.md)|Gets the ICorDebugModule object with the given metadata interface.| +|[GetName Method](icordebugappdomain-getname-method.md)|Gets the name of the application domain.| +|[GetObject Method](icordebugappdomain-getobject-method.md)|Gets an interface pointer to the common language runtime (CLR) application domain.| +|[GetProcess Method](icordebugappdomain-getprocess-method.md)|Gets the process containing the application domain.| +|[IsAttached Method](icordebugappdomain-isattached-method.md)|Determines whether the debugger is attached to the application domain.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugappdomain-isattached-method.md b/docs/framework/unmanaged-api/debugging/icordebugappdomain-isattached-method.md index 25c12df5677fe..e0926072c5e60 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugappdomain-isattached-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugappdomain-isattached-method.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugAppDomain::IsAttached Method" title: "ICorDebugAppDomain::IsAttached Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugAppDomain.IsAttached" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugAppDomain::IsAttached" -helpviewer_keywords: +helpviewer_keywords: - "IsAttached method [.NET Framework debugging]" - "ICorDebugAppDomain::IsAttached method [.NET Framework debugging]" ms.assetid: af0c67c7-f53e-47c9-b84b-be50bd04903e -topic_type: +topic_type: - "apiref" --- # ICorDebugAppDomain::IsAttached Method -Gets a value that indicates whether the debugger is attached to the application domain. - -## Syntax - -```cpp -HRESULT IsAttached ( - [out] BOOL *pbAttached -); -``` - -## Parameters - - `pbAttached` - [out] `true` if the debugger is attached to the application domain; otherwise, `false`. - -## Remarks - - The ICorDebugController methods cannot be used until the debugger attaches to the application domain. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets a value that indicates whether the debugger is attached to the application domain. + +## Syntax + +```cpp +HRESULT IsAttached ( + [out] BOOL *pbAttached +); +``` + +## Parameters + + `pbAttached` + [out] `true` if the debugger is attached to the application domain; otherwise, `false`. + +## Remarks + + The ICorDebugController methods cannot be used until the debugger attaches to the application domain. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugappdomain2-getarrayorpointertype-method.md b/docs/framework/unmanaged-api/debugging/icordebugappdomain2-getarrayorpointertype-method.md index f9b3beedfd69a..8946e4f6a9cbb 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugappdomain2-getarrayorpointertype-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugappdomain2-getarrayorpointertype-method.md @@ -2,68 +2,68 @@ description: "Learn more about: ICorDebugAppDomain2::GetArrayOrPointerType Method" title: "ICorDebugAppDomain2::GetArrayOrPointerType Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugAppDomain2.GetArrayOrPointerType" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugAppDomain2::GetArrayOrPointerType" -helpviewer_keywords: +helpviewer_keywords: - "GetArrayOrPointerType method [.NET Framework debugging]" - "ICorDebugAppDomain2::GetArrayOrPointerType method [.NET Framework debugging]" ms.assetid: 97e493f5-3a62-4ec7-b42f-4af57bf71f57 -topic_type: +topic_type: - "apiref" --- # ICorDebugAppDomain2::GetArrayOrPointerType Method -Gets an array of the specified type, or a pointer or reference to the specified type. - -## Syntax - -```cpp -HRESULT GetArrayOrPointerType ( - [in] CorElementType elementType, - [in] ULONG32 nRank, - [in] ICorDebugType *pTypeArg, - [out] ICorDebugType **ppType -); -``` - -## Parameters - - `elementType` - [in] A value of the CorElementType enumeration that specifies the underlying native type (an array, pointer, or reference) to be created. - - `nRank` - [in] The rank (that is, number of dimensions) of the array. This value must be 0 if `elementType` specifies a pointer or reference type. - - `pTypeArg` - [in] A pointer to an ICorDebugType object that represents the type of array, pointer, or reference to be created. - - `ppType` - [out] A pointer to the address of an `ICorDebugType` object that represents the constructed array, pointer type, or reference type. - -## Remarks - - The value of *elementType* must be one of the following: - -- ELEMENT_TYPE_PTR - -- ELEMENT_TYPE_BYREF - -- ELEMENT_TYPE_ARRAY or ELEMENT_TYPE_SZARRAY - - If the value of *elementType* is ELEMENT_TYPE_PTR or ELEMENT_TYPE_BYREF, *nRank* must be zero. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets an array of the specified type, or a pointer or reference to the specified type. + +## Syntax + +```cpp +HRESULT GetArrayOrPointerType ( + [in] CorElementType elementType, + [in] ULONG32 nRank, + [in] ICorDebugType *pTypeArg, + [out] ICorDebugType **ppType +); +``` + +## Parameters + + `elementType` + [in] A value of the CorElementType enumeration that specifies the underlying native type (an array, pointer, or reference) to be created. + + `nRank` + [in] The rank (that is, number of dimensions) of the array. This value must be 0 if `elementType` specifies a pointer or reference type. + + `pTypeArg` + [in] A pointer to an ICorDebugType object that represents the type of array, pointer, or reference to be created. + + `ppType` + [out] A pointer to the address of an `ICorDebugType` object that represents the constructed array, pointer type, or reference type. + +## Remarks + + The value of *elementType* must be one of the following: + +- ELEMENT_TYPE_PTR + +- ELEMENT_TYPE_BYREF + +- ELEMENT_TYPE_ARRAY or ELEMENT_TYPE_SZARRAY + + If the value of *elementType* is ELEMENT_TYPE_PTR or ELEMENT_TYPE_BYREF, *nRank* must be zero. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugappdomain2-interface.md b/docs/framework/unmanaged-api/debugging/icordebugappdomain2-interface.md index 4ea7e16f621db..b9a7756020eb8 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugappdomain2-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugappdomain2-interface.md @@ -2,46 +2,46 @@ description: "Learn more about: ICorDebugAppDomain2 Interface" title: "ICorDebugAppDomain2 Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugAppDomain2" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugAppDomain2" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugAppDomain2 interface [.NET Framework debugging]" ms.assetid: 314d29f3-feb0-4a92-9530-b569c280cc31 -topic_type: +topic_type: - "apiref" --- # ICorDebugAppDomain2 Interface -Provides methods to work with arrays, pointers, function pointers, and reference types. This interface is an extension of the ICorDebugAppDomain interface. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetArrayOrPointerType Method](icordebugappdomain2-getarrayorpointertype-method.md)|Gets an array of the specified type, or a pointer or reference to the specified type.| -|[GetFunctionPointerType](icordebugappdomain2-getfunctionpointertype-method.md)|Gets a pointer to a function that has a given signature.| - -## Remarks - +Provides methods to work with arrays, pointers, function pointers, and reference types. This interface is an extension of the ICorDebugAppDomain interface. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetArrayOrPointerType Method](icordebugappdomain2-getarrayorpointertype-method.md)|Gets an array of the specified type, or a pointer or reference to the specified type.| +|[GetFunctionPointerType](icordebugappdomain2-getfunctionpointertype-method.md)|Gets a pointer to a function that has a given signature.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugappdomain3-getcachedwinrttypesforiids-method.md b/docs/framework/unmanaged-api/debugging/icordebugappdomain3-getcachedwinrttypesforiids-method.md index 760bf25b8d6b0..374fdd1a07810 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugappdomain3-getcachedwinrttypesforiids-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugappdomain3-getcachedwinrttypesforiids-method.md @@ -2,60 +2,60 @@ description: "Learn more about: ICorDebugAppDomain3::GetCachedWinRTTypesForIIDs Method" title: "ICorDebugAppDomain3::GetCachedWinRTTypesForIIDs Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugAppDomain3.GetCachedWinRTTypesForIIDs" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugAppDomain3::GetCachedWinRTTypesForIIDs" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugAppDomain3::GetCachedWinRTTypesForIIDs method, [.NET Framework debugging]" - "GetCachedWinRTTypesForIIDs method, ICorDebugAppDomain3 interface [.NET Framework debugging]" ms.assetid: 23682ca0-1bcf-48e6-996e-69f7ba337682 -topic_type: +topic_type: - "apiref" --- # ICorDebugAppDomain3::GetCachedWinRTTypesForIIDs Method -Gets an enumerator for cached Windows Runtime types in an application domain based on their interface identifiers. - -## Syntax - -```cpp +Gets an enumerator for cached Windows Runtime types in an application domain based on their interface identifiers. + +## Syntax + +```cpp HRESULT GetCachedWinRTTypesForIIDs ( - [in] ULONG32 cReqTypes, - [in] GUID *iidsToResolve, - [out] ICorDebugTypeEnum **ppTypesEnum -); -``` - -## Parameters - - `cReqTypes` - [in] The number of required types. - - `iidsToResolve` - [in] A pointer to an array that contains the interface identifiers corresponding to the managed representations of the Windows Runtime types to be retrieved. - - `ppTypesEnum` - [out] A pointer to the address of an "ICorDebugTypeEnum" interface object that allows enumeration of the cached managed representations of the Windows Runtime types retrieved, based on the interface identifiers in `iidsToResolve`. - -## Remarks - - If the method fails to retrieve information for a specific interface identifier, the corresponding entry in the "ICorDebugTypeEnum" collection will have a type of `ELEMENT_TYPE_END` for errors due to data retrieval issues, or `ELEMENT_TYPE_VOID` for unknown interface identifiers. - -## Requirements - - **Platforms:** Windows Runtime - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - + [in] ULONG32 cReqTypes, + [in] GUID *iidsToResolve, + [out] ICorDebugTypeEnum **ppTypesEnum +); +``` + +## Parameters + + `cReqTypes` + [in] The number of required types. + + `iidsToResolve` + [in] A pointer to an array that contains the interface identifiers corresponding to the managed representations of the Windows Runtime types to be retrieved. + + `ppTypesEnum` + [out] A pointer to the address of an "ICorDebugTypeEnum" interface object that allows enumeration of the cached managed representations of the Windows Runtime types retrieved, based on the interface identifiers in `iidsToResolve`. + +## Remarks + + If the method fails to retrieve information for a specific interface identifier, the corresponding entry in the "ICorDebugTypeEnum" collection will have a type of `ELEMENT_TYPE_END` for errors due to data retrieval issues, or `ELEMENT_TYPE_VOID` for unknown interface identifiers. + +## Requirements + + **Platforms:** Windows Runtime + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [ICorDebugAppDomain3 Interface](icordebugappdomain3-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugappdomain3-interface.md b/docs/framework/unmanaged-api/debugging/icordebugappdomain3-interface.md index 91b2f9e27d749..2c6d8e2051624 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugappdomain3-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugappdomain3-interface.md @@ -2,50 +2,50 @@ description: "Learn more about: ICorDebugAppDomain3 Interface" title: "ICorDebugAppDomain3 Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugAppDomain3" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugAppDomain3" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugAppDomain3 interface [.NET Framework debugging]" ms.assetid: 875ef5be-c1e7-4d95-97e9-d3a667aeaba0 -topic_type: +topic_type: - "apiref" --- # ICorDebugAppDomain3 Interface -Provides methods to retrieve information about the managed representations of Windows Runtime types currently loaded in an application domain. This interface is an extension of the ICorDebugAppDomain and ICorDebugAppDomain2 interfaces. - -## Methods - -|Method|Description| -|------------|-----------------| -|[ICorDebugAppDomain3::GetCachedWinRTTypes](icordebugappdomain3-getcachedwinrttypes-method.md)|Gets an enumerator for all cached Windows Runtime types.| -|[ICorDebugAppDomain3::GetCachedWinRTTypesForIIDs](icordebugappdomain3-getcachedwinrttypesforiids-method.md)|Gets an enumerator for cached Windows Runtime types in an application domain based on their interface identifiers.| - -## Remarks - - This interface is meant to be used by a debugger in conjunction with a function evaluation call to `M:System.Runtime.InteropServices.Marshal.GetInspectableIIDs(System.Object)`. When the method retrieves the interface identifiers supported by a Windows Runtime server object, the debugger may use the methods defined in this interface to map them to managed types that correspond to those interfaces. - - To retrieve an instance of this interface, run `QueryInterface` on an instance of the ICorDebugAppDomain or ICorDebugAppDomain2 interface. - +Provides methods to retrieve information about the managed representations of Windows Runtime types currently loaded in an application domain. This interface is an extension of the ICorDebugAppDomain and ICorDebugAppDomain2 interfaces. + +## Methods + +|Method|Description| +|------------|-----------------| +|[ICorDebugAppDomain3::GetCachedWinRTTypes](icordebugappdomain3-getcachedwinrttypes-method.md)|Gets an enumerator for all cached Windows Runtime types.| +|[ICorDebugAppDomain3::GetCachedWinRTTypesForIIDs](icordebugappdomain3-getcachedwinrttypesforiids-method.md)|Gets an enumerator for cached Windows Runtime types in an application domain based on their interface identifiers.| + +## Remarks + + This interface is meant to be used by a debugger in conjunction with a function evaluation call to `M:System.Runtime.InteropServices.Marshal.GetInspectableIIDs(System.Object)`. When the method retrieves the interface identifiers supported by a Windows Runtime server object, the debugger may use the methods defined in this interface to map them to managed types that correspond to those interfaces. + + To retrieve an instance of this interface, run `QueryInterface` on an instance of the ICorDebugAppDomain or ICorDebugAppDomain2 interface. + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** Windows Runtime - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** Windows Runtime + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugappdomain4-getobjectforccw-method.md b/docs/framework/unmanaged-api/debugging/icordebugappdomain4-getobjectforccw-method.md index 567a72eb9e1b8..e490ba548f3b6 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugappdomain4-getobjectforccw-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugappdomain4-getobjectforccw-method.md @@ -6,37 +6,37 @@ ms.assetid: 2cacdb85-e7b8-42e7-b310-c3e8c22e5d33 --- # ICorDebugAppDomain4::GetObjectForCCW Method -Gets a managed object from a COM callable wrapper (CCW) pointer. - -## Syntax - -```cpp -HRESULT GetObjectForCCW( +Gets a managed object from a COM callable wrapper (CCW) pointer. + +## Syntax + +```cpp +HRESULT GetObjectForCCW( [in]CORDB_ADDRESS ccwPointer, - [out]ICorDebugValue **ppManagedObject -); -``` - -## Parameters - - `ccwPointer` - [in] A COM callable wrapper (CCW) pointer. - - `ppManagedObject` - [out] A pointer to the address of an "ICorDebugValue" object that represents the managed object that corresponds to the given CCW pointer. - -## Remarks - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v46plus](../../../../includes/net-current-v46plus-md.md)] - + [out]ICorDebugValue **ppManagedObject +); +``` + +## Parameters + + `ccwPointer` + [in] A COM callable wrapper (CCW) pointer. + + `ppManagedObject` + [out] A pointer to the address of an "ICorDebugValue" object that represents the managed object that corresponds to the given CCW pointer. + +## Remarks + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v46plus](../../../../includes/net-current-v46plus-md.md)] + ## See also - [ICorDebugAppDomain4 Interface](icordebugappdomain4-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugappdomain4-interface.md b/docs/framework/unmanaged-api/debugging/icordebugappdomain4-interface.md index 2740f41835282..c9594132a4881 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugappdomain4-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugappdomain4-interface.md @@ -6,26 +6,26 @@ ms.assetid: c536b9dc-148e-4924-bde1-1daa98d49d90 --- # ICorDebugAppDomain4 Interface -Logically extends the ICorDebugAppDomain interface to get a managed object from a COM callable wrapper. - -## Method - -|Method|Description| -|------------|-----------------| -|[GetObjectForCCW Method](icordebugappdomain4-getobjectforccw-method.md)|Gets a managed object from a COM callable wrapper (CCW) pointer.| - -## Remarks - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v46plus](../../../../includes/net-current-v46plus-md.md)] - +Logically extends the ICorDebugAppDomain interface to get a managed object from a COM callable wrapper. + +## Method + +|Method|Description| +|------------|-----------------| +|[GetObjectForCCW Method](icordebugappdomain4-getobjectforccw-method.md)|Gets a managed object from a COM callable wrapper (CCW) pointer.| + +## Remarks + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v46plus](../../../../includes/net-current-v46plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugappdomainenum-interface.md b/docs/framework/unmanaged-api/debugging/icordebugappdomainenum-interface.md index 8cad620c7d42e..5b034a5d9bbae 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugappdomainenum-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugappdomainenum-interface.md @@ -2,45 +2,45 @@ description: "Learn more about: ICorDebugAppDomainEnum Interface" title: "ICorDebugAppDomainEnum Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugAppDomainEnum" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugAppDomainEnum" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugAppDomainEnum interface [.NET Framework debugging]" ms.assetid: e9226e6e-ca2c-428e-bb38-0c099210f507 -topic_type: +topic_type: - "apiref" --- # ICorDebugAppDomainEnum Interface -Provides the `Next` method, which returns a specified number of `ICorDebugAppDomainEnum` values starting at the next location in the enumeration. This interface is a subclass of "ICorDebugEnum". - -## Methods - -|Method|Description| -|------------|-----------------| -|[Next Method](icordebugappdomainenum-next-method.md)|Gets the specified number of application domains from the collection, starting at the current cursor position.| - -## Remarks - +Provides the `Next` method, which returns a specified number of `ICorDebugAppDomainEnum` values starting at the next location in the enumeration. This interface is a subclass of "ICorDebugEnum". + +## Methods + +|Method|Description| +|------------|-----------------| +|[Next Method](icordebugappdomainenum-next-method.md)|Gets the specified number of application domains from the collection, starting at the current cursor position.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [ICorDebug Interface](icordebug-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugarrayvalue-getelementatposition-method.md b/docs/framework/unmanaged-api/debugging/icordebugarrayvalue-getelementatposition-method.md index a2f0080e4b82d..0be554f9b5dd4 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugarrayvalue-getelementatposition-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugarrayvalue-getelementatposition-method.md @@ -2,52 +2,52 @@ description: "Learn more about: ICorDebugArrayValue::GetElementAtPosition Method" title: "ICorDebugArrayValue::GetElementAtPosition Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugArrayValue.GetElementAtPosition" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugArrayValue::GetElementAtPosition" -helpviewer_keywords: +helpviewer_keywords: - "GetElementAtPosition method [.NET Framework debugging]" - "ICorDebugArrayValue::GetElementAtPosition method [.NET Framework debugging]" ms.assetid: 6fd5eaa4-1997-4910-82f5-3887480db764 -topic_type: +topic_type: - "apiref" --- # ICorDebugArrayValue::GetElementAtPosition Method -Gets the element at the given position, treating the array as a zero-based, single-dimensional array. - -## Syntax - -```cpp -HRESULT GetElementAtPosition ( - [in] ULONG32 nPosition, - [out] ICorDebugValue **ppValue -); -``` - -## Parameters - - `nPosition` - [in] The position of the element to be retrieved. - - `ppValue` - [out] A pointer to the address of an ICorDebugValue object that represents the value of the element. - -## Remarks - - The layout of a multi-dimension array follows the C++ style of array layout. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets the element at the given position, treating the array as a zero-based, single-dimensional array. + +## Syntax + +```cpp +HRESULT GetElementAtPosition ( + [in] ULONG32 nPosition, + [out] ICorDebugValue **ppValue +); +``` + +## Parameters + + `nPosition` + [in] The position of the element to be retrieved. + + `ppValue` + [out] A pointer to the address of an ICorDebugValue object that represents the value of the element. + +## Remarks + + The layout of a multi-dimension array follows the C++ style of array layout. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugarrayvalue-interface.md b/docs/framework/unmanaged-api/debugging/icordebugarrayvalue-interface.md index 0a6ed2e3b8dec..101da9bc0ce9d 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugarrayvalue-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugarrayvalue-interface.md @@ -2,54 +2,54 @@ description: "Learn more about: ICorDebugArrayValue Interface" title: "ICorDebugArrayValue Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugArrayValue" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugArrayValue interface" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugArrayValue interface [.NET Framework debugging]" ms.assetid: dc437751-7093-44e2-bfdc-191d9ce3c192 -topic_type: +topic_type: - "apiref" --- # ICorDebugArrayValue Interface -A subclass of ICorDebugHeapValue that represents a single-dimensional or multi-dimensional array. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetBaseIndicies Method](icordebugarrayvalue-getbaseindicies-method.md)|Gets the base index of each dimension in the array.| -|[GetCount Method](icordebugarrayvalue-getcount-method.md)|Gets the total number of elements in the array.| -|[GetDimensions Method](icordebugarrayvalue-getdimensions-method.md)|Gets the dimensions of the array.| -|[GetElement Method](icordebugarrayvalue-getelement-method.md)|Gets a value representing the given element in the array.| -|[GetElementAtPosition Method](icordebugarrayvalue-getelementatposition-method.md)|Gets the element at the given position, treating the array as a zero-based, single-dimensional array.| -|[GetElementType Method](icordebugarrayvalue-getelementtype-method.md)|Gets the simple type of the elements in the array.| -|[GetRank Method](icordebugarrayvalue-getrank-method.md)|Gets the number of dimensions in the array.| -|[HasBaseIndicies Method](icordebugarrayvalue-hasbaseindicies-method.md)|Determines whether the array has base indexes.| - -## Remarks - - `ICorDebugArrayValue` supports both single-dimensional and multi-dimensional arrays. - +A subclass of ICorDebugHeapValue that represents a single-dimensional or multi-dimensional array. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetBaseIndicies Method](icordebugarrayvalue-getbaseindicies-method.md)|Gets the base index of each dimension in the array.| +|[GetCount Method](icordebugarrayvalue-getcount-method.md)|Gets the total number of elements in the array.| +|[GetDimensions Method](icordebugarrayvalue-getdimensions-method.md)|Gets the dimensions of the array.| +|[GetElement Method](icordebugarrayvalue-getelement-method.md)|Gets a value representing the given element in the array.| +|[GetElementAtPosition Method](icordebugarrayvalue-getelementatposition-method.md)|Gets the element at the given position, treating the array as a zero-based, single-dimensional array.| +|[GetElementType Method](icordebugarrayvalue-getelementtype-method.md)|Gets the simple type of the elements in the array.| +|[GetRank Method](icordebugarrayvalue-getrank-method.md)|Gets the number of dimensions in the array.| +|[HasBaseIndicies Method](icordebugarrayvalue-hasbaseindicies-method.md)|Determines whether the array has base indexes.| + +## Remarks + + `ICorDebugArrayValue` supports both single-dimensional and multi-dimensional arrays. + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugassembly-getappdomain-method.md b/docs/framework/unmanaged-api/debugging/icordebugassembly-getappdomain-method.md index bfcda55ca7232..9c83e8c8fdf59 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugassembly-getappdomain-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugassembly-getappdomain-method.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugAssembly::GetAppDomain Method" title: "ICorDebugAssembly::GetAppDomain Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugAssembly.GetAppDomain" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugAssembly::GetAppDomain" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugAssembly::GetAppDomain method [.NET Framework debugging]" - "GetAppDomain method, ICorDebugAssembly interface [.NET Framework debugging]" ms.assetid: 14e18510-23ac-4cba-9f96-c86147a2df9d -topic_type: +topic_type: - "apiref" --- # ICorDebugAssembly::GetAppDomain Method -Gets an interface pointer to the application domain that contains this `ICorDebugAssembly` instance. - -## Syntax - -```cpp -HRESULT GetAppDomain ( - [out] ICorDebugAppDomain **ppAppDomain -); -``` - -## Parameters - - `ppAppDomain` - [out] A pointer to the address of an ICorDebugAppDomain interface that represents the application domain. - -## Remarks - - If this assembly is the system assembly, `GetAppDomain` returns null. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets an interface pointer to the application domain that contains this `ICorDebugAssembly` instance. + +## Syntax + +```cpp +HRESULT GetAppDomain ( + [out] ICorDebugAppDomain **ppAppDomain +); +``` + +## Parameters + + `ppAppDomain` + [out] A pointer to the address of an ICorDebugAppDomain interface that represents the application domain. + +## Remarks + + If this assembly is the system assembly, `GetAppDomain` returns null. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugassembly-getname-method.md b/docs/framework/unmanaged-api/debugging/icordebugassembly-getname-method.md index 74c3dca73b1b4..d7f98327741b7 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugassembly-getname-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugassembly-getname-method.md @@ -2,56 +2,56 @@ description: "Learn more about: ICorDebugAssembly::GetName Method" title: "ICorDebugAssembly::GetName Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugAssembly.GetName" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugAssembly::GetName" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugAssembly::GetName method [.NET Framework debugging]" - "GetName method, ICorDebugAssembly interface [.NET Framework debugging]" ms.assetid: cdeda721-b214-4503-a291-c70b68b5f36b -topic_type: +topic_type: - "apiref" --- # ICorDebugAssembly::GetName Method -Gets the name of the assembly that this `ICorDebugAssembly` instance represents. - -## Syntax - -```cpp -HRESULT GetName ( - [in] ULONG32 cchName, - [out] ULONG32 *pcchName, - [out, size_is(cchName), length_is(*pcchName)] WCHAR szName[] -); -``` - -## Parameters - - `cchName` - [in] The size of the `szName` array. - - `pcchName` - [out] A pointer to an integer that specifies the actual length of the name. - - `szName` - [out] An array that stores the name. - -## Remarks - - The `GetName` method returns the full path and file name of the assembly. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets the name of the assembly that this `ICorDebugAssembly` instance represents. + +## Syntax + +```cpp +HRESULT GetName ( + [in] ULONG32 cchName, + [out] ULONG32 *pcchName, + [out, size_is(cchName), length_is(*pcchName)] WCHAR szName[] +); +``` + +## Parameters + + `cchName` + [in] The size of the `szName` array. + + `pcchName` + [out] A pointer to an integer that specifies the actual length of the name. + + `szName` + [out] An array that stores the name. + +## Remarks + + The `GetName` method returns the full path and file name of the assembly. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugassembly-interface.md b/docs/framework/unmanaged-api/debugging/icordebugassembly-interface.md index 71fc002219623..1e1bc25e90b49 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugassembly-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugassembly-interface.md @@ -2,49 +2,49 @@ description: "Learn more about: ICorDebugAssembly Interface" title: "ICorDebugAssembly Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugAssembly" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugAssembly" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugAssembly interface [.NET Framework debugging]" ms.assetid: 9d657a28-6984-4c5e-8a54-89d20080baff -topic_type: +topic_type: - "apiref" --- # ICorDebugAssembly Interface -Represents an assembly. - -## Methods - -|Method|Description| -|------------|-----------------| -|[EnumerateModules Method](icordebugassembly-enumeratemodules-method.md)|Gets an enumerator for the modules contained in the assembly.| -|[GetAppDomain Method](icordebugassembly-getappdomain-method.md)|Gets an interface pointer to the application domain that contains this `ICorDebugAssembly` instance.| -|[GetCodeBase Method](icordebugassembly-getcodebase-method.md)|Not implemented in the current version of the .NET Framework.| -|[GetName Method](icordebugassembly-getname-method.md)|Gets the name of the assembly.| -|[GetProcess Method](icordebugassembly-getprocess-method.md)|Gets the ICorDebugProcess instance in which the assembly is running.| - -## Remarks - +Represents an assembly. + +## Methods + +|Method|Description| +|------------|-----------------| +|[EnumerateModules Method](icordebugassembly-enumeratemodules-method.md)|Gets an enumerator for the modules contained in the assembly.| +|[GetAppDomain Method](icordebugassembly-getappdomain-method.md)|Gets an interface pointer to the application domain that contains this `ICorDebugAssembly` instance.| +|[GetCodeBase Method](icordebugassembly-getcodebase-method.md)|Not implemented in the current version of the .NET Framework.| +|[GetName Method](icordebugassembly-getname-method.md)|Gets the name of the assembly.| +|[GetProcess Method](icordebugassembly-getprocess-method.md)|Gets the ICorDebugProcess instance in which the assembly is running.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugassembly2-interface.md b/docs/framework/unmanaged-api/debugging/icordebugassembly2-interface.md index 458d5d7b2fe08..5738ded4449b5 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugassembly2-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugassembly2-interface.md @@ -2,45 +2,45 @@ description: "Learn more about: ICorDebugAssembly2 Interface" title: "ICorDebugAssembly2 Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugAssembly2" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugAssembly2" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugAssembly2 interface [.NET Framework debugging]" ms.assetid: c0766e29-e573-4f9a-a928-167d1de5aa7e -topic_type: +topic_type: - "apiref" --- # ICorDebugAssembly2 Interface -Represents an assembly. This interface is an extension of the ICorDebugAssembly interface. - -## Methods - -|Method|Description| -|------------|-----------------| -|[IsFullyTrusted Method](icordebugassembly2-isfullytrusted-method.md)|Gets a value that indicates whether the assembly has been granted full trust by the runtime security system.| - -## Remarks - +Represents an assembly. This interface is an extension of the ICorDebugAssembly interface. + +## Methods + +|Method|Description| +|------------|-----------------| +|[IsFullyTrusted Method](icordebugassembly2-isfullytrusted-method.md)|Gets a value that indicates whether the assembly has been granted full trust by the runtime security system.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugassembly2-isfullytrusted-method.md b/docs/framework/unmanaged-api/debugging/icordebugassembly2-isfullytrusted-method.md index bc5a663e8c958..52192197e4920 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugassembly2-isfullytrusted-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugassembly2-isfullytrusted-method.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugAssembly2::IsFullyTrusted Method" title: "ICorDebugAssembly2::IsFullyTrusted Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugAssembly2.IsFullyTrusted" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugAssembly2::IsFullyTrusted" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugAssembly2::IsFullyTrusted method [.NET Framework debugging]" - "IsFullyTrusted method [.NET Framework debugging]" ms.assetid: 26cbd27d-12bf-444a-8197-ccd14d37dda3 -topic_type: +topic_type: - "apiref" --- # ICorDebugAssembly2::IsFullyTrusted Method -Gets a value that indicates whether the assembly has been granted full trust by the runtime security system. - -## Syntax - -```cpp -HRESULT IsFullyTrusted( - [out] BOOL *pbFullyTrusted -); -``` - -## Parameters - - `pbFullyTrusted` - [out] `true` if the assembly has been granted full trust by the runtime security system; otherwise, `false`. - -## Remarks - - This method returns an HRESULT of CORDBG_E_NOTREADY if the security policy for the assembly has not yet been resolved, that is, if no code in the assembly has been run yet. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets a value that indicates whether the assembly has been granted full trust by the runtime security system. + +## Syntax + +```cpp +HRESULT IsFullyTrusted( + [out] BOOL *pbFullyTrusted +); +``` + +## Parameters + + `pbFullyTrusted` + [out] `true` if the assembly has been granted full trust by the runtime security system; otherwise, `false`. + +## Remarks + + This method returns an HRESULT of CORDBG_E_NOTREADY if the security policy for the assembly has not yet been resolved, that is, if no code in the assembly has been run yet. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugassembly3-enumeratecontainedassemblies-method.md b/docs/framework/unmanaged-api/debugging/icordebugassembly3-enumeratecontainedassemblies-method.md index b32a70c9a343d..e9f95f601892d 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugassembly3-enumeratecontainedassemblies-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugassembly3-enumeratecontainedassemblies-method.md @@ -6,42 +6,42 @@ ms.assetid: 98f15b05-afad-4616-9e2a-1a9af31948b6 --- # ICorDebugAssembly3::EnumerateContainedAssemblies Method -Gets an enumerator for the assemblies contained in this assembly. - -## Syntax - -```cpp -HRESULT EnumerateContainedAssemblies( - ICorDebugAssemblyEnum **ppAssemblies -); -``` - -## Parameters - - `ppAssemblies` - [out] A pointer to the address of an ICorDebugAssemblyEnum interface object that is the enumerator. - -## Return Value - - `S_OK` if this `ICorDebugAssembly3` object is a container; otherwise, `S_FALSE`, and the enumeration is empty. - -## Remarks - - Symbols are needed to enumerate the contained assemblies. If they aren't present, the method returns `S_FALSE`, and no valid enumerator is provided. - +Gets an enumerator for the assemblies contained in this assembly. + +## Syntax + +```cpp +HRESULT EnumerateContainedAssemblies( + ICorDebugAssemblyEnum **ppAssemblies +); +``` + +## Parameters + + `ppAssemblies` + [out] A pointer to the address of an ICorDebugAssemblyEnum interface object that is the enumerator. + +## Return Value + + `S_OK` if this `ICorDebugAssembly3` object is a container; otherwise, `S_FALSE`, and the enumeration is empty. + +## Remarks + + Symbols are needed to enumerate the contained assemblies. If they aren't present, the method returns `S_FALSE`, and no valid enumerator is provided. + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugAssembly3 Interface](icordebugassembly3-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugassembly3-getcontainerassembly-method.md b/docs/framework/unmanaged-api/debugging/icordebugassembly3-getcontainerassembly-method.md index 0643c3446b03c..4d51ddd708c3a 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugassembly3-getcontainerassembly-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugassembly3-getcontainerassembly-method.md @@ -6,42 +6,42 @@ ms.assetid: f5fddeb6-b82e-4ebb-b432-849ce8513c77 --- # ICorDebugAssembly3::GetContainerAssembly Method -Returns the container assembly of this `ICorDebugAssembly3` object. - -## Syntax - -```cpp -HRESULT GetContainerAssembly( - ICorDebugAssembly **ppAssembly -); -``` - -## Parameters - - `ppAssembly` - A pointer to the address of an ICorDebugAssembly object that represents the container assembly, or **null** if the method call fails. - -## Return Value - - `S_OK` if the method call succeeds; otherwise, `S_FALSE`, and `ppAssembly` is **null**. - -## Remarks - - If this assembly has been merged with others inside a single container assembly, this method returns the container assembly. For more information and terminology, see the [ICorDebugProcess6::EnableVirtualModuleSplitting](icordebugprocess6-enablevirtualmodulesplitting-method.md) topic. - +Returns the container assembly of this `ICorDebugAssembly3` object. + +## Syntax + +```cpp +HRESULT GetContainerAssembly( + ICorDebugAssembly **ppAssembly +); +``` + +## Parameters + + `ppAssembly` + A pointer to the address of an ICorDebugAssembly object that represents the container assembly, or **null** if the method call fails. + +## Return Value + + `S_OK` if the method call succeeds; otherwise, `S_FALSE`, and `ppAssembly` is **null**. + +## Remarks + + If this assembly has been merged with others inside a single container assembly, this method returns the container assembly. For more information and terminology, see the [ICorDebugProcess6::EnableVirtualModuleSplitting](icordebugprocess6-enablevirtualmodulesplitting-method.md) topic. + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugAssembly3 Interface](icordebugassembly3-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugassembly3-interface.md b/docs/framework/unmanaged-api/debugging/icordebugassembly3-interface.md index f10242169057e..85c2796a83ea0 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugassembly3-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugassembly3-interface.md @@ -6,30 +6,30 @@ ms.assetid: 17fc5d76-75a9-4933-83f0-594de7f973f3 --- # ICorDebugAssembly3 Interface -Logically extends the ICorDebugAssembly interface to provide support for container assemblies and their contained assemblies. - -## Methods - -|Method|Description| -|------------|-----------------| -|[EnumerateContainedAssemblies Method](icordebugassembly3-enumeratecontainedassemblies-method.md)|Gets an enumerator for the assemblies contained in this assembly.| -|[GetContainerAssembly Method](icordebugassembly3-getcontainerassembly-method.md)|Returns the container assembly of this `ICorDebugAssembly3` object.| - -## Remarks - +Logically extends the ICorDebugAssembly interface to provide support for container assemblies and their contained assemblies. + +## Methods + +|Method|Description| +|------------|-----------------| +|[EnumerateContainedAssemblies Method](icordebugassembly3-enumeratecontainedassemblies-method.md)|Gets an enumerator for the assemblies contained in this assembly.| +|[GetContainerAssembly Method](icordebugassembly3-getcontainerassembly-method.md)|Returns the container assembly of this `ICorDebugAssembly3` object.| + +## Remarks + > [!NOTE] -> The interface is available with .NET Native only. Attempting to call `QueryInterface` to retrieve an interface pointer returns `E_NOINTERFACE` for ICorDebug scenarios outside of .NET Native. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> The interface is available with .NET Native only. Attempting to call `QueryInterface` to retrieve an interface pointer returns `E_NOINTERFACE` for ICorDebug scenarios outside of .NET Native. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugassemblyenum-interface.md b/docs/framework/unmanaged-api/debugging/icordebugassemblyenum-interface.md index 1a157c34d917c..edbf395422cbd 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugassemblyenum-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugassemblyenum-interface.md @@ -2,45 +2,45 @@ description: "Learn more about: ICorDebugAssemblyEnum Interface" title: "ICorDebugAssemblyEnum Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugAssemblyEnum" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugAssemblyEnum" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugAssemblyEnum interface [.NET Framework debugging]" ms.assetid: 891ceb43-5161-421e-a0bf-299962fd7efd -topic_type: +topic_type: - "apiref" --- # ICorDebugAssemblyEnum Interface -Implements ICorDebugEnum methods and enumerates ICorDebugAssembly arrays. - -## Methods - -|Method|Description| -|------------|-----------------| -|[Next Method](icordebugassemblyenum-next-method.md)|Gets the specified number of `ICorDebugAssembly` instances in the enumeration, starting from the current position.| - -## Remarks - +Implements ICorDebugEnum methods and enumerates ICorDebugAssembly arrays. + +## Methods + +|Method|Description| +|------------|-----------------| +|[Next Method](icordebugassemblyenum-next-method.md)|Gets the specified number of `ICorDebugAssembly` instances in the enumeration, starting from the current position.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugblockingobjectenum-interface.md b/docs/framework/unmanaged-api/debugging/icordebugblockingobjectenum-interface.md index 7c10fd47f0eb6..9dcc11ef81b2e 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugblockingobjectenum-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugblockingobjectenum-interface.md @@ -2,47 +2,47 @@ description: "Learn more about: ICorDebugBlockingObjectEnum Interface" title: "ICorDebugBlockingObjectEnum Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugBlockingObjectEnum" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugBlockingObjectEnum" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugBlockingObjectEnum interface [.NET Framework debugging]" ms.assetid: 208e5c2d-3f3f-404e-8b3c-7cccc14ddb16 -topic_type: +topic_type: - "apiref" --- # ICorDebugBlockingObjectEnum Interface -Provides an enumerator for a list of [CorDebugBlockingObject](cordebugblockingobject-structure.md) structures. This interface is a subclass of the ICorDebugEnum interface. - -## Methods - -|Method|Description| -|------------|-----------------| -|[Next Method](icordebugblockingobjectenum-next-method.md)|Enumerates through a list of [CorDebugBlockingObject](cordebugblockingobject-structure.md) structures.| - -## Remarks - - Each `CorDebugBlockingObject` structure represents an object that is blocking a thread. - +Provides an enumerator for a list of [CorDebugBlockingObject](cordebugblockingobject-structure.md) structures. This interface is a subclass of the ICorDebugEnum interface. + +## Methods + +|Method|Description| +|------------|-----------------| +|[Next Method](icordebugblockingobjectenum-next-method.md)|Enumerates through a list of [CorDebugBlockingObject](cordebugblockingobject-structure.md) structures.| + +## Remarks + + Each `CorDebugBlockingObject` structure represents an object that is blocking a thread. + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugblockingobjectenum-next-method.md b/docs/framework/unmanaged-api/debugging/icordebugblockingobjectenum-next-method.md index bd18f3646c6f1..27d046ac618d4 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugblockingobjectenum-next-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugblockingobjectenum-next-method.md @@ -2,73 +2,73 @@ description: "Learn more about: ICorDebugBlockingObjectEnum::Next Method" title: "ICorDebugBlockingObjectEnum::Next Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugBlockingObjectEnum.Next Method" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugBlockingObjectEnum::Next" -helpviewer_keywords: +helpviewer_keywords: - "Next method, ICorDebugBlockingObjectEnum interface [.NET Framework debugging]" - "ICorDebugBlockingObjectEnum::Next method [.NET Framework debugging]" ms.assetid: 0121753f-ebea-48d0-aeb2-ed7fda76dc60 -topic_type: +topic_type: - "apiref" --- # ICorDebugBlockingObjectEnum::Next Method -Gets the specified number of [CorDebugBlockingObject](cordebugblockingobject-structure.md) objects from the enumeration, starting at the current position. - -## Syntax - -```cpp -HRESULT Next([in] ULONG celt, - [out, size_is(celt), length_is(*pceltFetched)] - CorDebugBlockingObject values[], - [out] ULONG *pceltFetched; -``` - -## Parameters - - `celt` - [in] The number of objects to retrieve. - - `values` - [out] An array of pointers to [CorDebugBlockingObject](cordebugblockingobject-structure.md) objects. - - `pceltFetched` - [out] A pointer to the number of objects that were retrieved. - -## Return Value - - This method returns the following specific HRESULTs. - -|HRESULT|Description| -|-------------|-----------------| -|S_OK|The method completed successfully.| -|S_FALSE|`pceltFetched` does not equal `celt`.| - -## Remarks - - This method functions like a typical COM enumerator. - - The input array values must be at least of size `celt`. The array will be filled with either the next `celt` values in the enumeration or with all remaining values if fewer than `celt` remain. When this method returns, `pceltFetched` will be filled with the number of values that were retrieved. If `values` contains invalid pointers or points to a buffer that is smaller than `celt`, or if `pceltFetched` is an invalid pointer, the result is undefined. - +Gets the specified number of [CorDebugBlockingObject](cordebugblockingobject-structure.md) objects from the enumeration, starting at the current position. + +## Syntax + +```cpp +HRESULT Next([in] ULONG celt, + [out, size_is(celt), length_is(*pceltFetched)] + CorDebugBlockingObject values[], + [out] ULONG *pceltFetched; +``` + +## Parameters + + `celt` + [in] The number of objects to retrieve. + + `values` + [out] An array of pointers to [CorDebugBlockingObject](cordebugblockingobject-structure.md) objects. + + `pceltFetched` + [out] A pointer to the number of objects that were retrieved. + +## Return Value + + This method returns the following specific HRESULTs. + +|HRESULT|Description| +|-------------|-----------------| +|S_OK|The method completed successfully.| +|S_FALSE|`pceltFetched` does not equal `celt`.| + +## Remarks + + This method functions like a typical COM enumerator. + + The input array values must be at least of size `celt`. The array will be filled with either the next `celt` values in the enumeration or with all remaining values if fewer than `celt` remain. When this method returns, `pceltFetched` will be filled with the number of values that were retrieved. If `values` contains invalid pointers or points to a buffer that is smaller than `celt`, or if `pceltFetched` is an invalid pointer, the result is undefined. + > [!NOTE] -> Although the [CorDebugBlockingObject](cordebugblockingobject-structure.md) structure does not need to be released, the "ICorDebugValue" interface inside of it does need to be released. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +> Although the [CorDebugBlockingObject](cordebugblockingobject-structure.md) structure does not need to be released, the "ICorDebugValue" interface inside of it does need to be released. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [ICorDebugDataTarget Interface](icordebugdatatarget-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugboxvalue-interface.md b/docs/framework/unmanaged-api/debugging/icordebugboxvalue-interface.md index acf3af318f6e9..afca37d091d2d 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugboxvalue-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugboxvalue-interface.md @@ -2,45 +2,45 @@ description: "Learn more about: ICorDebugBoxValue Interface" title: "ICorDebugBoxValue Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugBoxValue" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugBoxValue" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugBoxValue interface [.NET Framework debugging]" ms.assetid: 3d3ae7e2-97d4-46de-a2c3-cb78f3490f9d -topic_type: +topic_type: - "apiref" --- # ICorDebugBoxValue Interface -A subclass of "ICorDebugHeapValue" that represents a boxed value class object. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetObject Method](icordebugboxvalue-getobject-method.md)|Gets an interface pointer to the boxed "ICorDebugObjectValue" instance.| - -## Remarks - +A subclass of "ICorDebugHeapValue" that represents a boxed value class object. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetObject Method](icordebugboxvalue-getobject-method.md)|Gets an interface pointer to the boxed "ICorDebugObjectValue" instance.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugbreakpoint-interface.md b/docs/framework/unmanaged-api/debugging/icordebugbreakpoint-interface.md index c4461bac31e8f..9cdbce348a9ed 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugbreakpoint-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugbreakpoint-interface.md @@ -2,50 +2,50 @@ description: "Learn more about: ICorDebugBreakpoint Interface" title: "ICorDebugBreakpoint Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugBreakpoint" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugBreakpoint" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugBreakpoint interface [.NET Framework debugging]" ms.assetid: aa5ad3d7-e1bb-42af-99bc-471224e3bcaa -topic_type: +topic_type: - "apiref" --- # ICorDebugBreakpoint Interface -Represents a breakpoint in a function, or a watch point on a value. - -## Methods - -|Method|Description| -|------------|-----------------| -|[Activate Method](icordebugbreakpoint-activate-method.md)|Sets the active state of this `ICorDebugBreakpoint`.| -|[IsActive Method](icordebugbreakpoint-isactive-method.md)|Gets a value that indicates whether this `ICorDebugBreakpoint` is active.| - -## Remarks - - Breakpoints do not directly support conditional expressions. If such functionality is desired, a debugger must implement it on top of `ICorDebugBreakpoint`. - - The ICorDebugFunctionBreakpoint interface extends `ICorDebugBreakpoint` to support breakpoints within functions. - +Represents a breakpoint in a function, or a watch point on a value. + +## Methods + +|Method|Description| +|------------|-----------------| +|[Activate Method](icordebugbreakpoint-activate-method.md)|Sets the active state of this `ICorDebugBreakpoint`.| +|[IsActive Method](icordebugbreakpoint-isactive-method.md)|Gets a value that indicates whether this `ICorDebugBreakpoint` is active.| + +## Remarks + + Breakpoints do not directly support conditional expressions. If such functionality is desired, a debugger must implement it on top of `ICorDebugBreakpoint`. + + The ICorDebugFunctionBreakpoint interface extends `ICorDebugBreakpoint` to support breakpoints within functions. + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugbreakpointenum-interface.md b/docs/framework/unmanaged-api/debugging/icordebugbreakpointenum-interface.md index 27504f4927851..887d6560f3340 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugbreakpointenum-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugbreakpointenum-interface.md @@ -2,45 +2,45 @@ description: "Learn more about: ICorDebugBreakpointEnum Interface" title: "ICorDebugBreakpointEnum Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugBreakpointEnum" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugBreakpointEnum" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugBreakpointEnum interface [.NET Framework debugging]" ms.assetid: 4c6f4f6e-52cc-402e-881b-7b8526544c90 -topic_type: +topic_type: - "apiref" --- # ICorDebugBreakpointEnum Interface -Implements ICorDebugEnum methods, and enumerates ICorDebugBreakpoint arrays. - -## Methods - -|Method|Description| -|------------|-----------------| -|[Next Method](icordebugbreakpointenum-next-method.md)|Gets the specified number of `ICorDebugBreakpoint` instances from the enumeration, starting at the current position.| - -## Remarks - +Implements ICorDebugEnum methods, and enumerates ICorDebugBreakpoint arrays. + +## Methods + +|Method|Description| +|------------|-----------------| +|[Next Method](icordebugbreakpointenum-next-method.md)|Gets the specified number of `ICorDebugBreakpoint` instances from the enumeration, starting at the current position.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugchain-enumerateframes-method.md b/docs/framework/unmanaged-api/debugging/icordebugchain-enumerateframes-method.md index e292cd85e9eb3..a44ed68a6a69c 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugchain-enumerateframes-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugchain-enumerateframes-method.md @@ -2,50 +2,50 @@ description: "Learn more about: ICorDebugChain::EnumerateFrames Method" title: "ICorDebugChain::EnumerateFrames Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugChain.EnumerateFrames" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugChain::EnumerateFrames method" -helpviewer_keywords: +helpviewer_keywords: - "EnumerateFrames method [.NET Framework debugging]" - "ICorDebugChain::EnumerateFrames method [.NET Framework debugging]" ms.assetid: 9fcefa98-750d-4168-8915-8173a43accf2 -topic_type: +topic_type: - "apiref" --- # ICorDebugChain::EnumerateFrames Method -Gets an enumerator that contains all the managed stack frames in the chain, starting with the most recent frame. - -## Syntax - -```cpp -HRESULT EnumerateFrames ( - [out] ICorDebugFrameEnum **ppFrames -); -``` - -## Parameters - - `ppFrames` - [out] A pointer to the address of an ICorDebugFrameEnum object that is the enumerator for the stack frames. - -## Remarks - - The chain represents the physical call stack for the thread. - - The `EnumerateFrames` method should be called only for managed chains. The debugging API does not provide methods for obtaining frames contained in unmanaged chains. The debugger must use other means to obtain this information. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets an enumerator that contains all the managed stack frames in the chain, starting with the most recent frame. + +## Syntax + +```cpp +HRESULT EnumerateFrames ( + [out] ICorDebugFrameEnum **ppFrames +); +``` + +## Parameters + + `ppFrames` + [out] A pointer to the address of an ICorDebugFrameEnum object that is the enumerator for the stack frames. + +## Remarks + + The chain represents the physical call stack for the thread. + + The `EnumerateFrames` method should be called only for managed chains. The debugging API does not provide methods for obtaining frames contained in unmanaged chains. The debugger must use other means to obtain this information. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugchain-getactiveframe-method.md b/docs/framework/unmanaged-api/debugging/icordebugchain-getactiveframe-method.md index df9335395f758..9c29d469072a7 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugchain-getactiveframe-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugchain-getactiveframe-method.md @@ -2,50 +2,50 @@ description: "Learn more about: ICorDebugChain::GetActiveFrame Method" title: "ICorDebugChain::GetActiveFrame Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugChain.GetActiveFrame" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugChain::GetActiveFrame" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugChain::GetActiveFrame method [.NET Framework debugging]" - "GetActiveFrame method, ICorDebugChain interface [.NET Framework debugging]" ms.assetid: 36887017-670b-4f21-b406-8fab956f84a3 -topic_type: +topic_type: - "apiref" --- # ICorDebugChain::GetActiveFrame Method -Gets the active (that is, most recent) frame on the chain. - -## Syntax - -```cpp -HRESULT GetActiveFrame ( - [out] ICorDebugFrame **ppFrame -); -``` - -## Parameters - - `ppFrame` - [out] A pointer to the address of an ICorDebugFrame object that represents the active (that is, most recent) frame on the chain. - -## Remarks - - If no managed stack frame is available, `ppFrame` is set to null. - - If the active frame is not available, the call will succeed and `ppFrame` will be null. Active frames will not be available for chains initiated due to CHAIN_ENTER_UNMANAGED, and for some chains initiated due to CHAIN_CLASS_INIT. See the CorDebugChainReason enumeration. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets the active (that is, most recent) frame on the chain. + +## Syntax + +```cpp +HRESULT GetActiveFrame ( + [out] ICorDebugFrame **ppFrame +); +``` + +## Parameters + + `ppFrame` + [out] A pointer to the address of an ICorDebugFrame object that represents the active (that is, most recent) frame on the chain. + +## Remarks + + If no managed stack frame is available, `ppFrame` is set to null. + + If the active frame is not available, the call will succeed and `ppFrame` will be null. Active frames will not be available for chains initiated due to CHAIN_ENTER_UNMANAGED, and for some chains initiated due to CHAIN_CLASS_INIT. See the CorDebugChainReason enumeration. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugchain-getcallee-method.md b/docs/framework/unmanaged-api/debugging/icordebugchain-getcallee-method.md index be875dba6612b..61537ca49c698 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugchain-getcallee-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugchain-getcallee-method.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugChain::GetCallee Method" title: "ICorDebugChain::GetCallee Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugChain.GetCallee" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugChain::GetCallee method" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugChain::GetCallee method [.NET Framework debugging]" - "GetCallee method, ICorDebugChain interface [.NET Framework debugging]" ms.assetid: 19560c79-abdc-4bdf-a5fe-eb362a59edc0 -topic_type: +topic_type: - "apiref" --- # ICorDebugChain::GetCallee Method -Gets the chain that was called by this chain. - -## Syntax - -```cpp -HRESULT GetCallee ( - [out] ICorDebugChain **ppChain -); -``` - -## Parameters - - `ppChain` - [out] A pointer to the address of an ICorDebugChain object that represents the called chain. If this chain is currently executing (that is, if this chain is not waiting for a called chain to return), `ppChain` will be null. - -## Remarks - - This chain will wait for the called chain to return before it resumes execution. The called chain may be on another thread in the case of cross-thread marshalled calls. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets the chain that was called by this chain. + +## Syntax + +```cpp +HRESULT GetCallee ( + [out] ICorDebugChain **ppChain +); +``` + +## Parameters + + `ppChain` + [out] A pointer to the address of an ICorDebugChain object that represents the called chain. If this chain is currently executing (that is, if this chain is not waiting for a called chain to return), `ppChain` will be null. + +## Remarks + + This chain will wait for the called chain to return before it resumes execution. The called chain may be on another thread in the case of cross-thread marshalled calls. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugchain-getcaller-method.md b/docs/framework/unmanaged-api/debugging/icordebugchain-getcaller-method.md index 5d619b9d824c5..7f812f180d1e8 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugchain-getcaller-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugchain-getcaller-method.md @@ -2,50 +2,50 @@ description: "Learn more about: ICorDebugChain::GetCaller Method" title: "ICorDebugChain::GetCaller Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugChain.GetCaller" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugChain::GetCaller" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugChain::GetCaller method [.NET Framework debugging]" - "GetCaller method, ICorDebugChain interface [.NET Framework debugging]" ms.assetid: d0b8ab4b-d7d2-4fa0-945f-3d2b87e7e991 -topic_type: +topic_type: - "apiref" --- # ICorDebugChain::GetCaller Method -Gets the chain that called this chain. - -## Syntax - -```cpp -HRESULT GetCaller ( - [out] ICorDebugChain **ppChain -); -``` - -## Parameters - - `ppChain` - [out] A pointer to the address of an ICorDebugChain object that represents the calling chain. - - If this chain was spontaneously called (as would be the case if this chain or the debugger initialized the call stack), `ppChain` will be null. - -## Remarks - - The calling chain may be on a different thread, if the call was marshalled across threads. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets the chain that called this chain. + +## Syntax + +```cpp +HRESULT GetCaller ( + [out] ICorDebugChain **ppChain +); +``` + +## Parameters + + `ppChain` + [out] A pointer to the address of an ICorDebugChain object that represents the calling chain. + + If this chain was spontaneously called (as would be the case if this chain or the debugger initialized the call stack), `ppChain` will be null. + +## Remarks + + The calling chain may be on a different thread, if the call was marshalled across threads. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugchain-getstackrange-method.md b/docs/framework/unmanaged-api/debugging/icordebugchain-getstackrange-method.md index 6f3cb2f23b173..f02eaf36d7ae2 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugchain-getstackrange-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugchain-getstackrange-method.md @@ -2,52 +2,52 @@ description: "Learn more about: ICorDebugChain::GetStackRange Method" title: "ICorDebugChain::GetStackRange Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugChain.GetStackRange" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugChain::GetStackRange" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugChain::GetStackRange method [.NET Framework debugging]" - "GetStackRange method, ICorDebugChain interface [.NET Framework debugging]" ms.assetid: 554284e7-3f6c-4d40-8da5-1c9317fbd484 -topic_type: +topic_type: - "apiref" --- # ICorDebugChain::GetStackRange Method -Gets the address range of the stack segment for this chain. - -## Syntax - -```cpp -HRESULT GetStackRange ( +Gets the address range of the stack segment for this chain. + +## Syntax + +```cpp +HRESULT GetStackRange ( [out] CORDB_ADDRESS *pStart, - [out] CORDB_ADDRESS *pEnd -); -``` - -## Parameters - - `pStart` - [out] A pointer to a `CORDB_ADDRESS` value that is the starting address of the stack segment. - - `pEnd` - [out] A pointer to a `CORDB_ADDRESS` value that is the ending address of the stack segment. - -## Remarks - - The numeric range is meaningful only for comparison of stack frame locations. You cannot make any assumptions about what is actually stored on the stack. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - + [out] CORDB_ADDRESS *pEnd +); +``` + +## Parameters + + `pStart` + [out] A pointer to a `CORDB_ADDRESS` value that is the starting address of the stack segment. + + `pEnd` + [out] A pointer to a `CORDB_ADDRESS` value that is the ending address of the stack segment. + +## Remarks + + The numeric range is meaningful only for comparison of stack frame locations. You cannot make any assumptions about what is actually stored on the stack. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugchain-interface.md b/docs/framework/unmanaged-api/debugging/icordebugchain-interface.md index bd2ede5cc9a85..9e65654d967f7 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugchain-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugchain-interface.md @@ -2,58 +2,58 @@ description: "Learn more about: ICorDebugChain Interface" title: "ICorDebugChain Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugChain" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugChain" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugChain interface [.NET Framework debugging]" ms.assetid: f671f519-1cb3-4ae5-b9f1-abc5e783459f -topic_type: +topic_type: - "apiref" --- # ICorDebugChain Interface -Represents a segment of a physical or logical call stack. - -## Methods - -|Method|Description| -|------------|-----------------| -|[EnumerateFrames Method](icordebugchain-enumerateframes-method.md)|Gets an enumerator that contains all the managed stack frames in the chain, starting with the most recent frame.| -|[GetActiveFrame Method](icordebugchain-getactiveframe-method.md)|Gets the active (that is, most recent) frame on the chain.| -|[GetCallee Method](icordebugchain-getcallee-method.md)|Gets the chain that was called by this chain.| -|[GetCaller Method](icordebugchain-getcaller-method.md)|Gets the chain that called this chain.| -|[GetContext Method](icordebugchain-getcontext-method.md)|Not implemented.| -|[GetNext Method](icordebugchain-getnext-method.md)|Gets the next chain of frames for the thread.| -|[GetPrevious Method](icordebugchain-getprevious-method.md)|Gets the previous chain of frames for the thread.| -|[GetReason Method](icordebugchain-getreason-method.md)|Gets the reason for the genesis of this calling chain.| -|[GetRegisterSet Method](icordebugchain-getregisterset-method.md)|Gets the register set for the active part of this chain.| -|[GetStackRange Method](icordebugchain-getstackrange-method.md)|Gets the address range of the stack segment for this chain.| -|[GetThread Method](icordebugchain-getthread-method.md)|Gets the physical thread this call chain is part of.| -|[IsManaged Method](icordebugchain-ismanaged-method.md)|Gets a value that indicates whether this chain is running managed code.| - -## Remarks - - The stack frames in a chain occupy contiguous stack space and share the same thread and context. A chain may represent either managed or unmanaged code chains. An empty `ICorDebugChain` instance represents an unmanaged code chain. - +Represents a segment of a physical or logical call stack. + +## Methods + +|Method|Description| +|------------|-----------------| +|[EnumerateFrames Method](icordebugchain-enumerateframes-method.md)|Gets an enumerator that contains all the managed stack frames in the chain, starting with the most recent frame.| +|[GetActiveFrame Method](icordebugchain-getactiveframe-method.md)|Gets the active (that is, most recent) frame on the chain.| +|[GetCallee Method](icordebugchain-getcallee-method.md)|Gets the chain that was called by this chain.| +|[GetCaller Method](icordebugchain-getcaller-method.md)|Gets the chain that called this chain.| +|[GetContext Method](icordebugchain-getcontext-method.md)|Not implemented.| +|[GetNext Method](icordebugchain-getnext-method.md)|Gets the next chain of frames for the thread.| +|[GetPrevious Method](icordebugchain-getprevious-method.md)|Gets the previous chain of frames for the thread.| +|[GetReason Method](icordebugchain-getreason-method.md)|Gets the reason for the genesis of this calling chain.| +|[GetRegisterSet Method](icordebugchain-getregisterset-method.md)|Gets the register set for the active part of this chain.| +|[GetStackRange Method](icordebugchain-getstackrange-method.md)|Gets the address range of the stack segment for this chain.| +|[GetThread Method](icordebugchain-getthread-method.md)|Gets the physical thread this call chain is part of.| +|[IsManaged Method](icordebugchain-ismanaged-method.md)|Gets a value that indicates whether this chain is running managed code.| + +## Remarks + + The stack frames in a chain occupy contiguous stack space and share the same thread and context. A chain may represent either managed or unmanaged code chains. An empty `ICorDebugChain` instance represents an unmanaged code chain. + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugchainenum-interface.md b/docs/framework/unmanaged-api/debugging/icordebugchainenum-interface.md index a6a5da9cf987a..ca33200b99e19 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugchainenum-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugchainenum-interface.md @@ -2,45 +2,45 @@ description: "Learn more about: ICorDebugChainEnum Interface" title: "ICorDebugChainEnum Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugChainEnum" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugChainEnum" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugChainEnum interface [.NET Framework debugging]" ms.assetid: 6639335c-48e1-4e74-a4f3-70a6a0f54af1 -topic_type: +topic_type: - "apiref" --- # ICorDebugChainEnum Interface -Implements ICorDebugEnum methods, and enumerates ICorDebugChain arrays. - -## Methods - -|Method|Description| -|------------|-----------------| -|[Next Method](icordebugchainenum-next-method.md)|Gets the specified number of `ICorDebugChain` instances from the enumeration, starting at the current position.| - -## Remarks - +Implements ICorDebugEnum methods, and enumerates ICorDebugChain arrays. + +## Methods + +|Method|Description| +|------------|-----------------| +|[Next Method](icordebugchainenum-next-method.md)|Gets the specified number of `ICorDebugChain` instances from the enumeration, starting at the current position.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugclass-getstaticfieldvalue-method.md b/docs/framework/unmanaged-api/debugging/icordebugclass-getstaticfieldvalue-method.md index 14ceeb716a9c2..9c475fbe7d916 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugclass-getstaticfieldvalue-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugclass-getstaticfieldvalue-method.md @@ -2,58 +2,58 @@ description: "Learn more about: ICorDebugClass::GetStaticFieldValue Method" title: "ICorDebugClass::GetStaticFieldValue Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugClass.GetStaticFieldValue" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugClass::GetStaticFieldValue" -helpviewer_keywords: +helpviewer_keywords: - "GetStaticFieldValue method, ICorDebugClass interface [.NET Framework debugging]" - "ICorDebugClass::GetStaticFieldValue method [.NET Framework debugging]" ms.assetid: 56e718b4-fabd-418b-a5b3-3cc33c745683 -topic_type: +topic_type: - "apiref" --- # ICorDebugClass::GetStaticFieldValue Method -Gets the value of the specified static field. - -## Syntax - -```cpp -HRESULT GetStaticFieldValue ( - [in] mdFieldDef fieldDef, - [in] ICorDebugFrame *pFrame, - [out] ICorDebugValue **ppValue -); -``` - -## Parameters - - `fieldDef` - [in] A field `Def` token that references the field to be retrieved. - - `pFrame` - [in] A pointer to an ICorDebugFrame object that represents the frame to be used to disambiguate among thread, context, or application domain statics. - - If the static field is relative to a thread, a context, or an application domain, the frame will determine the proper value. - - `ppValue` - [out] A pointer to the address of an ICorDebugValue object that represents the value of the static field. - -## Remarks - - For parameterized types, the value of a static field is relative to the particular instantiation. Therefore, if the class constructor takes parameters of type , call [ICorDebugType::GetStaticFieldValue](icordebugtype-getstaticfieldvalue-method.md) instead of `ICorDebugClass::GetStaticFieldValue`. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets the value of the specified static field. + +## Syntax + +```cpp +HRESULT GetStaticFieldValue ( + [in] mdFieldDef fieldDef, + [in] ICorDebugFrame *pFrame, + [out] ICorDebugValue **ppValue +); +``` + +## Parameters + + `fieldDef` + [in] A field `Def` token that references the field to be retrieved. + + `pFrame` + [in] A pointer to an ICorDebugFrame object that represents the frame to be used to disambiguate among thread, context, or application domain statics. + + If the static field is relative to a thread, a context, or an application domain, the frame will determine the proper value. + + `ppValue` + [out] A pointer to the address of an ICorDebugValue object that represents the value of the static field. + +## Remarks + + For parameterized types, the value of a static field is relative to the particular instantiation. Therefore, if the class constructor takes parameters of type , call [ICorDebugType::GetStaticFieldValue](icordebugtype-getstaticfieldvalue-method.md) instead of `ICorDebugClass::GetStaticFieldValue`. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugclass-interface.md b/docs/framework/unmanaged-api/debugging/icordebugclass-interface.md index a34ec1c563e01..6f724ec49bc09 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugclass-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugclass-interface.md @@ -2,51 +2,51 @@ description: "Learn more about: ICorDebugClass Interface" title: "ICorDebugClass Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugClass" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugClass" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugClass interface [.NET Framework debugging]" ms.assetid: 03a6facb-f12f-49be-9839-e73b9c791cd5 -topic_type: +topic_type: - "apiref" --- # ICorDebugClass Interface -Represents a type, which can be either basic or complex (that is, user-defined). If the type is generic, `ICorDebugClass` represents the uninstantiated generic type. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetModule Method](icordebugclass-getmodule-method.md)|Gets the module that defines this class.| -|[GetStaticFieldValue Method](icordebugclass-getstaticfieldvalue-method.md)|Gets the value of the specified static field.| -|[GetToken Method](icordebugclass-gettoken-method.md)|Gets the `TypeDef` metadata token for this class.| - -## Remarks - - The `ICorDebugClass` interface represents an uninstantiated generic type. The ICorDebugType interface represents an instantiated generic type. For example, `Hashtable` would be represented by `ICorDebugClass`, whereas `Hashtable` would be represented by `ICorDebugType`. - - Non-generic types are represented by both `ICorDebugClass` and `ICorDebugType`. The latter interface was introduced in the .NET Framework version 2.0 to deal with type instantiation. - +Represents a type, which can be either basic or complex (that is, user-defined). If the type is generic, `ICorDebugClass` represents the uninstantiated generic type. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetModule Method](icordebugclass-getmodule-method.md)|Gets the module that defines this class.| +|[GetStaticFieldValue Method](icordebugclass-getstaticfieldvalue-method.md)|Gets the value of the specified static field.| +|[GetToken Method](icordebugclass-gettoken-method.md)|Gets the `TypeDef` metadata token for this class.| + +## Remarks + + The `ICorDebugClass` interface represents an uninstantiated generic type. The ICorDebugType interface represents an instantiated generic type. For example, `Hashtable` would be represented by `ICorDebugClass`, whereas `Hashtable` would be represented by `ICorDebugType`. + + Non-generic types are represented by both `ICorDebugClass` and `ICorDebugType`. The latter interface was introduced in the .NET Framework version 2.0 to deal with type instantiation. + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugclass2-getparameterizedtype-method.md b/docs/framework/unmanaged-api/debugging/icordebugclass2-getparameterizedtype-method.md index a624e12be09f2..38c6f8ef1a5f6 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugclass2-getparameterizedtype-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugclass2-getparameterizedtype-method.md @@ -2,70 +2,70 @@ description: "Learn more about: ICorDebugClass2::GetParameterizedType Method" title: "ICorDebugClass2::GetParameterizedType Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugClass2.GetParameterizedType" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugClass2::GetParameterizedType" -helpviewer_keywords: +helpviewer_keywords: - "GetParameterizedType method [.NET Framework debugging]" - "ICorDebugClass2::GetParameterizedType method [.NET Framework debugging]" ms.assetid: 94b591c4-9302-4af2-a510-089496afb036 -topic_type: +topic_type: - "apiref" --- # ICorDebugClass2::GetParameterizedType Method -Gets the type declaration for this class. - -## Syntax - -```cpp -HRESULT GetParameterizedType ( - [in] CorElementType elementType, - [in] ULONG32 nTypeArgs, - [in, size_is(nTypeArgs)] ICorDebugType *ppTypeArgs[], - [out] ICorDebugType **ppType -); -``` - -## Parameters - - `elementType` - [in] A value of the CorElementType enumeration that specifies the element type for this class: Set this value to ELEMENT_TYPE_VALUETYPE if this ICorDebugClass2 represents a value type. Set this value to ELEMENT_TYPE_CLASS if this `ICorDebugClass2` represents a complex type. - - `nTypeArgs` - [in] The number of type parameters, if the type is generic. The number of type parameters (if any) must match the number required by the class. - - `ppTypeArgs` - [in] An array of pointers, each of which points to an ICorDebugType object that represents a type parameter. If the class is non-generic, this value is null. - - `ppType` - [out] A pointer to the address of an `ICorDebugType` object that represents the type declaration. This object is equivalent to a object in managed code. - -## Remarks - - If the class is non-generic, that is, if it has no type parameters, `GetParameterizedType` simply gets the runtime type object corresponding to the class. The `elementType` parameter should be set to the correct element type for the class: ELEMENT_TYPE_VALUETYPE if the class is a value type; otherwise, ELEMENT_TYPE_CLASS. - - If the class accepts type parameters (for example, `ArrayList`), you can use `GetParameterizedType` to construct a type object for an instantiated type such as `ArrayList`. - -## Background Information - - In the .NET Framework versions 1.0 and 1.1, every type in the metadata could be directly mapped to a type in the running process. Thus, a metadata type and a runtime type had a single representation in the running process. However, one generic type in metadata can be mapped to many different instantiations of the type in the running process. For example, the metadata type `SortedList` can map to `SortedList`, `SortedList`, `SortedList>`, and so on. Thus, you need a way to handle type instantiation. - - The .NET Framework version 2.0 introduces the `ICorDebugType` interface. For a generic type, an `ICorDebugClass` or `ICorDebugClass2` object represents the uninstantiated type (`SortedList`), and an `ICorDebugType` object represents the various instantiated types. Given an `ICorDebugClass` or `ICorDebugClass2` object, you can create an `ICorDebugType` object for any instantiation by calling the `ICorDebugClass2::GetParameterizedType` method. You can also create an `ICorDebugType` object for a simple type, such as Int32, or for a non-generic type. - - The introduction of the `ICorDebugType` object to represent the run-time notion of a type has a ripple effect throughout the API. Functions that previously took an `ICorDebugClass` or `ICorDebugClass2` object or even a `CorElementType` value are generalized to take an `ICorDebugType` object. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets the type declaration for this class. + +## Syntax + +```cpp +HRESULT GetParameterizedType ( + [in] CorElementType elementType, + [in] ULONG32 nTypeArgs, + [in, size_is(nTypeArgs)] ICorDebugType *ppTypeArgs[], + [out] ICorDebugType **ppType +); +``` + +## Parameters + + `elementType` + [in] A value of the CorElementType enumeration that specifies the element type for this class: Set this value to ELEMENT_TYPE_VALUETYPE if this ICorDebugClass2 represents a value type. Set this value to ELEMENT_TYPE_CLASS if this `ICorDebugClass2` represents a complex type. + + `nTypeArgs` + [in] The number of type parameters, if the type is generic. The number of type parameters (if any) must match the number required by the class. + + `ppTypeArgs` + [in] An array of pointers, each of which points to an ICorDebugType object that represents a type parameter. If the class is non-generic, this value is null. + + `ppType` + [out] A pointer to the address of an `ICorDebugType` object that represents the type declaration. This object is equivalent to a object in managed code. + +## Remarks + + If the class is non-generic, that is, if it has no type parameters, `GetParameterizedType` simply gets the runtime type object corresponding to the class. The `elementType` parameter should be set to the correct element type for the class: ELEMENT_TYPE_VALUETYPE if the class is a value type; otherwise, ELEMENT_TYPE_CLASS. + + If the class accepts type parameters (for example, `ArrayList`), you can use `GetParameterizedType` to construct a type object for an instantiated type such as `ArrayList`. + +## Background Information + + In the .NET Framework versions 1.0 and 1.1, every type in the metadata could be directly mapped to a type in the running process. Thus, a metadata type and a runtime type had a single representation in the running process. However, one generic type in metadata can be mapped to many different instantiations of the type in the running process. For example, the metadata type `SortedList` can map to `SortedList`, `SortedList`, `SortedList>`, and so on. Thus, you need a way to handle type instantiation. + + The .NET Framework version 2.0 introduces the `ICorDebugType` interface. For a generic type, an `ICorDebugClass` or `ICorDebugClass2` object represents the uninstantiated type (`SortedList`), and an `ICorDebugType` object represents the various instantiated types. Given an `ICorDebugClass` or `ICorDebugClass2` object, you can create an `ICorDebugType` object for any instantiation by calling the `ICorDebugClass2::GetParameterizedType` method. You can also create an `ICorDebugType` object for a simple type, such as Int32, or for a non-generic type. + + The introduction of the `ICorDebugType` object to represent the run-time notion of a type has a ripple effect throughout the API. Functions that previously took an `ICorDebugClass` or `ICorDebugClass2` object or even a `CorElementType` value are generalized to take an `ICorDebugType` object. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugclass2-interface.md b/docs/framework/unmanaged-api/debugging/icordebugclass2-interface.md index a061ce26a8eec..697b2ef2b6fa6 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugclass2-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugclass2-interface.md @@ -2,46 +2,46 @@ description: "Learn more about: ICorDebugClass2 Interface" title: "ICorDebugClass2 Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugClass2" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugClass2" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugClass2 interface [.NET Framework debugging]" ms.assetid: 5416de70-43f2-4cdf-a11f-d570759c9c0c -topic_type: +topic_type: - "apiref" --- # ICorDebugClass2 Interface -Represents a generic class or a class with a method parameter of type . This interface extends [ICorDebugClass](icordebugclass-interface.md). - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetParameterizedType Method](icordebugclass2-getparameterizedtype-method.md)|Gets the type declaration for this class.| -|[SetJMCStatus Method](icordebugclass2-setjmcstatus-method.md)|For each method of this class, sets a value that indicates whether the method is user-defined code.| - -## Remarks - +Represents a generic class or a class with a method parameter of type . This interface extends [ICorDebugClass](icordebugclass-interface.md). + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetParameterizedType Method](icordebugclass2-getparameterizedtype-method.md)|Gets the type declaration for this class.| +|[SetJMCStatus Method](icordebugclass2-setjmcstatus-method.md)|For each method of this class, sets a value that indicates whether the method is user-defined code.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [ICorDebugClass Interface](icordebugclass-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugclass2-setjmcstatus-method.md b/docs/framework/unmanaged-api/debugging/icordebugclass2-setjmcstatus-method.md index dab80970e949a..4ab39f90f5242 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugclass2-setjmcstatus-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugclass2-setjmcstatus-method.md @@ -2,50 +2,50 @@ description: "Learn more about: ICorDebugClass2::SetJMCStatus Method" title: "ICorDebugClass2::SetJMCStatus Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugClass2.SetJMCStatus" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugClass2::SetJMCStatus" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugClass2::SetJMCStatus method [.NET Framework debugging]" - "SetJMCStatus method, ICorDebugClass2 interface [.NET Framework debugging]" ms.assetid: 077e6c7f-f857-480c-bebb-76ee1de4e8fc -topic_type: +topic_type: - "apiref" --- # ICorDebugClass2::SetJMCStatus Method -For each method of the class, sets a value that indicates whether the method is user-defined code. - -## Syntax - -```cpp -HRESULT SetJMCStatus ( - [in] BOOL bIsJustMyCode -); -``` - -## Parameters - - `bIsJustMyCode` - [in] Set to `true` to indicate that the method is user-defined code; otherwise, set to `false`. - -## Remarks - - A just-my-code (JMC) stepper will skip non-user-defined code. User-defined code must be a subset of debuggable code. - - `SetJMCStatus` returns an HRESULT value of S_FALSE if it fails to set the value for any method, even if it successfully sets the value for all other methods. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +For each method of the class, sets a value that indicates whether the method is user-defined code. + +## Syntax + +```cpp +HRESULT SetJMCStatus ( + [in] BOOL bIsJustMyCode +); +``` + +## Parameters + + `bIsJustMyCode` + [in] Set to `true` to indicate that the method is user-defined code; otherwise, set to `false`. + +## Remarks + + A just-my-code (JMC) stepper will skip non-user-defined code. User-defined code must be a subset of debuggable code. + + `SetJMCStatus` returns an HRESULT value of S_FALSE if it fails to set the value for any method, even if it successfully sets the value for all other methods. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugcode-getcode-method.md b/docs/framework/unmanaged-api/debugging/icordebugcode-getcode-method.md index 282fa95d98c8f..93802723c6daf 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugcode-getcode-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugcode-getcode-method.md @@ -2,69 +2,69 @@ description: "Learn more about: ICorDebugCode::GetCode Method" title: "ICorDebugCode::GetCode Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugCode.GetCode" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugCode::GetCode" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugCode::GetCode method [.NET Framework debugging]" - "GetCode method, ICorDebugCode interface [.NET Framework debugging]" ms.assetid: 7137e3d1-1dad-48d8-8c37-16ac816534d3 -topic_type: +topic_type: - "apiref" --- # ICorDebugCode::GetCode Method -Gets all the code for the specified function, formatted for disassembly. This method has been deprecated in .NET Framework version 2.0. Use [ICorDebugCode2::GetCodeChunks](icordebugcode2-getcodechunks-method.md) instead. - -## Syntax - -```cpp -HRESULT GetCode ( +Gets all the code for the specified function, formatted for disassembly. This method has been deprecated in .NET Framework version 2.0. Use [ICorDebugCode2::GetCodeChunks](icordebugcode2-getcodechunks-method.md) instead. + +## Syntax + +```cpp +HRESULT GetCode ( [in] ULONG32 startOffset, - [in] ULONG32 endOffset, - [in] ULONG32 cBufferAlloc, - [out, size_is(cBufferAlloc), - length_is(*pcBufferSize)] BYTE buffer[], - [out] ULONG32 *pcBufferSize -); -``` - -## Parameters - - `startOffset` - [in] The offset of the beginning of the function. - - `endOffset` - [in] The offset of the end of the function. - - `cBufferAlloc` - [in] The size of the `buffer` array into which the code will be returned. - - `buffer` - [out] The array into which the code will be returned. - - `pcBufferSize` - [out] The number of bytes returned. - -## Remarks - - If the function's code has been divided into multiple chunks, they are concatenated in order of increasing native offset. Instruction boundaries are not checked. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** 1.1, 1.0 - + [in] ULONG32 endOffset, + [in] ULONG32 cBufferAlloc, + [out, size_is(cBufferAlloc), + length_is(*pcBufferSize)] BYTE buffer[], + [out] ULONG32 *pcBufferSize +); +``` + +## Parameters + + `startOffset` + [in] The offset of the beginning of the function. + + `endOffset` + [in] The offset of the end of the function. + + `cBufferAlloc` + [in] The size of the `buffer` array into which the code will be returned. + + `buffer` + [out] The array into which the code will be returned. + + `pcBufferSize` + [out] The number of bytes returned. + +## Remarks + + If the function's code has been divided into multiple chunks, they are concatenated in order of increasing native offset. Instruction boundaries are not checked. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** 1.1, 1.0 + ## See also - [GetCodeChunks Method](icordebugcode2-getcodechunks-method.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugcode-getfunction-method.md b/docs/framework/unmanaged-api/debugging/icordebugcode-getfunction-method.md index ab76d0c4d2d38..e5f421caa00b0 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugcode-getfunction-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugcode-getfunction-method.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugCode::GetFunction Method" title: "ICorDebugCode::GetFunction Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugCode.GetFunction" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugCode::GetFunction" -helpviewer_keywords: +helpviewer_keywords: - "GetFunction method, ICorDebugCode interface [.NET Framework debugging]" - "ICorDebugCode::GetFunction method [.NET Framework debugging]" ms.assetid: c568b737-fdb2-4816-accd-051f5ab760f1 -topic_type: +topic_type: - "apiref" --- # ICorDebugCode::GetFunction Method -Gets the "ICorDebugFunction" associated with this "ICorDebugCode". - -## Syntax - -```cpp -HRESULT GetFunction ( - [out] ICorDebugFunction **ppFunction -); -``` - -## Parameters - - `ppFunction` - [out] A pointer to the address of the function. - -## Remarks - - `ICorDebugCode` and `ICorDebugFunction` maintain a one-to-one relationship. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets the "ICorDebugFunction" associated with this "ICorDebugCode". + +## Syntax + +```cpp +HRESULT GetFunction ( + [out] ICorDebugFunction **ppFunction +); +``` + +## Parameters + + `ppFunction` + [out] A pointer to the address of the function. + +## Remarks + + `ICorDebugCode` and `ICorDebugFunction` maintain a one-to-one relationship. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugcode2-interface.md b/docs/framework/unmanaged-api/debugging/icordebugcode2-interface.md index 1813c1064b2fe..4e266357ff152 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugcode2-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugcode2-interface.md @@ -2,46 +2,46 @@ description: "Learn more about: ICorDebugCode2 Interface" title: "ICorDebugCode2 Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugCode2" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugCode2" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugCode2 interface [.NET Framework debugging]" ms.assetid: 9321903b-7dea-40d8-ba32-99016c00cc46 -topic_type: +topic_type: - "apiref" --- # ICorDebugCode2 Interface -Provides methods that extend the capabilities of "ICorDebugCode". - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetCodeChunks Method](icordebugcode2-getcodechunks-method.md)|Gets the chunks of code that this code object is composed of.| -|[GetCompilerFlags Method](icordebugcode2-getcompilerflags-method.md)|Gets the flags that specify the conditions under which this code object was either just-in-time (JIT) compiled or generated using the native image generator (Ngen.exe).| - -## Remarks - +Provides methods that extend the capabilities of "ICorDebugCode". + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetCodeChunks Method](icordebugcode2-getcodechunks-method.md)|Gets the chunks of code that this code object is composed of.| +|[GetCompilerFlags Method](icordebugcode2-getcompilerflags-method.md)|Gets the flags that specify the conditions under which this code object was either just-in-time (JIT) compiled or generated using the native image generator (Ngen.exe).| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [ICorDebugCode3 Interface](icordebugcode3-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugcode3-getreturnvalueliveoffset-method.md b/docs/framework/unmanaged-api/debugging/icordebugcode3-getreturnvalueliveoffset-method.md index 29240cff8cc16..d13a66bb1d080 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugcode3-getreturnvalueliveoffset-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugcode3-getreturnvalueliveoffset-method.md @@ -2,79 +2,79 @@ description: "Learn more about: ICorDebugCode3::GetReturnValueLiveOffset Method" title: "ICorDebugCode3::GetReturnValueLiveOffset Method" ms.date: "03/30/2017" -dev_langs: +dev_langs: - "cpp" -api_name: +api_name: - "ICorDebugCode3.GetReturnValueLiveOffset" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugCode3::GetReturnValueLiveOffset" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugCode3::GetReturnValueLiveOffset method [.NET Framework debugging]" - "GetReturnValueLiveOffset method [.NET Framework debugging]" ms.assetid: 8c2ff5d8-8c04-4423-b1e1-e1c8764b36d3 -topic_type: +topic_type: - "apiref" --- # ICorDebugCode3::GetReturnValueLiveOffset Method -For a specified IL offset, gets the native offsets where a breakpoint should be placed so that the debugger can obtain the return value from a function. - -## Syntax - +For a specified IL offset, gets the native offsets where a breakpoint should be placed so that the debugger can obtain the return value from a function. + +## Syntax + ```cpp -HRESULT GetReturnValueLiveOffset( - [in] ULONG32 ILoffset, +HRESULT GetReturnValueLiveOffset( + [in] ULONG32 ILoffset, [in] ULONG32 bufferSize, [out] ULONG32 *pFetched, - [out, size_is(buffersize), length_is(*pFetched)] ULong32 pOffsets[] -); -``` - -## Parameters - - `ILoffset` - The IL offset. It must be a function call site or the function call will fail. - - `bufferSize` - The number of bytes available to store `pOffsets`. - - `pFetched` - A pointer to the number of offsets actually returned. Usually, its value is 1, but a single IL instruction can map to multiple `CALL` assembly instructions. - - `pOffsets` - An array of native offsets. Typically, `pOffsets` contains a single offset, although a single IL instruction can map to multiple map to multiple `CALL` assembly instructions. - -## Remarks - - This method is used along with the [ICorDebugILFrame3::GetReturnValueForILOffset](icordebugilframe3-getreturnvalueforiloffset-method.md) method to get the return value of a method that returns a reference type. Passing an IL offset to a function call site to this method returns one or more native offsets. The debugger can then set breakpoints on these native offsets in the function. When the debugger hits one of the breakpoints, you can then pass the same IL offset that you passed to this method to the [ICorDebugILFrame3::GetReturnValueForILOffset](icordebugilframe3-getreturnvalueforiloffset-method.md) method to get the return value. The debugger should then clear all the breakpoints that it set. - + [out, size_is(buffersize), length_is(*pFetched)] ULong32 pOffsets[] +); +``` + +## Parameters + + `ILoffset` + The IL offset. It must be a function call site or the function call will fail. + + `bufferSize` + The number of bytes available to store `pOffsets`. + + `pFetched` + A pointer to the number of offsets actually returned. Usually, its value is 1, but a single IL instruction can map to multiple `CALL` assembly instructions. + + `pOffsets` + An array of native offsets. Typically, `pOffsets` contains a single offset, although a single IL instruction can map to multiple map to multiple `CALL` assembly instructions. + +## Remarks + + This method is used along with the [ICorDebugILFrame3::GetReturnValueForILOffset](icordebugilframe3-getreturnvalueforiloffset-method.md) method to get the return value of a method that returns a reference type. Passing an IL offset to a function call site to this method returns one or more native offsets. The debugger can then set breakpoints on these native offsets in the function. When the debugger hits one of the breakpoints, you can then pass the same IL offset that you passed to this method to the [ICorDebugILFrame3::GetReturnValueForILOffset](icordebugilframe3-getreturnvalueforiloffset-method.md) method to get the return value. The debugger should then clear all the breakpoints that it set. + > [!WARNING] -> The `ICorDebugCode3::GetReturnValueLiveOffset` and [ICorDebugILFrame3::GetReturnValueForILOffset](icordebugilframe3-getreturnvalueforiloffset-method.md) methods allow you to get return value information for reference types only. Retrieving return value information from value types (that is, all types that derive from ) is not supported. - - The function returns the `HRESULT` values shown in the following table. - -|`HRESULT` value|Description| -|---------------------|-----------------| -|`S_OK`|Success.| -|`CORDBG_E_INVALID_OPCODE`|The given IL offset site is not a call instruction, or the function returns `void`.| -|`CORDBG_E_UNSUPPORTED`|The given IL offset is a proper call, but the return type is unsupported for getting a return value.| - - The `ICorDebugCode3::GetReturnValueLiveOffset` method is available only on x86-based and AMD64 systems. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v451plus](../../../../includes/net-current-v451plus-md.md)] - +> The `ICorDebugCode3::GetReturnValueLiveOffset` and [ICorDebugILFrame3::GetReturnValueForILOffset](icordebugilframe3-getreturnvalueforiloffset-method.md) methods allow you to get return value information for reference types only. Retrieving return value information from value types (that is, all types that derive from ) is not supported. + + The function returns the `HRESULT` values shown in the following table. + +|`HRESULT` value|Description| +|---------------------|-----------------| +|`S_OK`|Success.| +|`CORDBG_E_INVALID_OPCODE`|The given IL offset site is not a call instruction, or the function returns `void`.| +|`CORDBG_E_UNSUPPORTED`|The given IL offset is a proper call, but the return type is unsupported for getting a return value.| + + The `ICorDebugCode3::GetReturnValueLiveOffset` method is available only on x86-based and AMD64 systems. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v451plus](../../../../includes/net-current-v451plus-md.md)] + ## See also - [GetReturnValueForILOffset Method](icordebugilframe3-getreturnvalueforiloffset-method.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugcode3-interface.md b/docs/framework/unmanaged-api/debugging/icordebugcode3-interface.md index 6960231612457..54d492dfd6eae 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugcode3-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugcode3-interface.md @@ -2,45 +2,45 @@ description: "Learn more about: ICorDebugCode3 Interface" title: "ICorDebugCode3 Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugCode3" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugCode3" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugCode3 interface [.NET Framework debugging]" ms.assetid: 70f07c9e-0614-4bee-ac34-09fe6c51c5a9 -topic_type: +topic_type: - "apiref" --- # ICorDebugCode3 Interface -Provides a method that extends "ICorDebugCode" and "ICorDebugCode2" to provide information about a managed return value. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetReturnValueLiveOffset Method](icordebugcode3-getreturnvalueliveoffset-method.md)|For a specified IL offset, gets the native offsets where a breakpoint should be placed so that the debugger can obtain the return value from a function.| - -## Remarks - +Provides a method that extends "ICorDebugCode" and "ICorDebugCode2" to provide information about a managed return value. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetReturnValueLiveOffset Method](icordebugcode3-getreturnvalueliveoffset-method.md)|For a specified IL offset, gets the native offsets where a breakpoint should be placed so that the debugger can obtain the return value from a function.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v451plus](../../../../includes/net-current-v451plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v451plus](../../../../includes/net-current-v451plus-md.md)] + ## See also - [ICorDebugILFrame3 Interface](icordebugilframe3-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugcode4-enumeratevariablehomes-method.md b/docs/framework/unmanaged-api/debugging/icordebugcode4-enumeratevariablehomes-method.md index cc1bd9caf8aaa..800fec30253d1 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugcode4-enumeratevariablehomes-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugcode4-enumeratevariablehomes-method.md @@ -2,52 +2,52 @@ description: "Learn more about: ICorDebugCode4::EnumerateVariableHomes Method" title: "ICorDebugCode4::EnumerateVariableHomes Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugCode4.EnumerateVariableHomes" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugCode4::EnumerateVariableHomes" -helpviewer_keywords: +helpviewer_keywords: - "EnumerateVariableHomes method [.NET Framework debugging]" - "ICorDebugCode4::EnumerateVariableHomes method [.NET Framework debugging]" ms.assetid: 802c01ff-8b80-4733-b6dd-03ab6ff7fa11 -topic_type: +topic_type: - "apiref" --- # ICorDebugCode4::EnumerateVariableHomes Method -Gets an enumerator to the local variables and arguments in a function. - -## Syntax - -```cpp -HRESULT EnumerateVariableHomes( - [out] ICorDebugVariableHomeEnum **ppEnum -); -``` - -## Parameters - - `ppEnum` - A pointer to the address of an [ICorDebugVariableHomeEnum](icordebugvariablehomeenum-interface.md) interface object that is an enumerator for the local variables and arguments in a function. - -## Remarks - - The [ICorDebugVariableHomeEnum](icordebugvariablehomeenum-interface.md) interface object is a standard enumerator derived from the "ICorDebugEnum" interface that allows you to enumerate [ICorDebugVariableHome](icordebugvariablehome-interface.md) objects. The collection may include multiple [ICorDebugVariableHome](icordebugvariablehome-interface.md) objects for the same slot or argument index if they have different homes at different points in the function. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v462plus](../../../../includes/net-current-v462plus-md.md)] - +Gets an enumerator to the local variables and arguments in a function. + +## Syntax + +```cpp +HRESULT EnumerateVariableHomes( + [out] ICorDebugVariableHomeEnum **ppEnum +); +``` + +## Parameters + + `ppEnum` + A pointer to the address of an [ICorDebugVariableHomeEnum](icordebugvariablehomeenum-interface.md) interface object that is an enumerator for the local variables and arguments in a function. + +## Remarks + + The [ICorDebugVariableHomeEnum](icordebugvariablehomeenum-interface.md) interface object is a standard enumerator derived from the "ICorDebugEnum" interface that allows you to enumerate [ICorDebugVariableHome](icordebugvariablehome-interface.md) objects. The collection may include multiple [ICorDebugVariableHome](icordebugvariablehome-interface.md) objects for the same slot or argument index if they have different homes at different points in the function. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v462plus](../../../../includes/net-current-v462plus-md.md)] + ## See also - [ICorDebugCode4 Interface](icordebugcode4-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugcode4-interface.md b/docs/framework/unmanaged-api/debugging/icordebugcode4-interface.md index 267413a4d307b..ca482d5dd9b5a 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugcode4-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugcode4-interface.md @@ -2,45 +2,45 @@ description: "Learn more about: ICorDebugCode4 Interface" title: "ICorDebugCode4 Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugCode4" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugCode4" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugCode4 interface [.NET Framework debugging]" ms.assetid: a3fdf523-274a-449c-920b-9fcb0aed1d97 -topic_type: +topic_type: - "apiref" --- # ICorDebugCode4 Interface -Provides a method that enables a debugger to enumerate the local variables and arguments in a function. - -## Methods - -|Method|Description| -|------------|-----------------| -|[EnumerateVariableHomes Method](icordebugcode4-enumeratevariablehomes-method.md)|Gets an enumerator to the local variables and arguments in a function.| - -## Remarks - +Provides a method that enables a debugger to enumerate the local variables and arguments in a function. + +## Methods + +|Method|Description| +|------------|-----------------| +|[EnumerateVariableHomes Method](icordebugcode4-enumeratevariablehomes-method.md)|Gets an enumerator to the local variables and arguments in a function.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v462plus](../../../../includes/net-current-v462plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v462plus](../../../../includes/net-current-v462plus-md.md)] + ## See also - [ICorDebugCode3 Interface](icordebugcode3-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugcodeenum-interface.md b/docs/framework/unmanaged-api/debugging/icordebugcodeenum-interface.md index f9272d1f91681..2667b298fa772 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugcodeenum-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugcodeenum-interface.md @@ -2,45 +2,45 @@ description: "Learn more about: ICorDebugCodeEnum Interface" title: "ICorDebugCodeEnum Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugCodeEnum" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugCodeEnum" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugCodeEnum interface [.NET Framework debugging]" ms.assetid: b5589171-a4a0-4c00-bbdc-6e0a42233b75 -topic_type: +topic_type: - "apiref" --- # ICorDebugCodeEnum Interface -Implements "ICorDebugEnum" methods, and enumerates "ICorDebugCode" arrays. - -## Methods - -|Method|Description| -|------------|-----------------| -|[Next Method](icordebugcodeenum-next-method.md)|Gets the specified number of `ICorDebugCode` instances from the enumeration, starting at the current position.| - -## Remarks - +Implements "ICorDebugEnum" methods, and enumerates "ICorDebugCode" arrays. + +## Methods + +|Method|Description| +|------------|-----------------| +|[Next Method](icordebugcodeenum-next-method.md)|Gets the specified number of `ICorDebugCode` instances from the enumeration, starting at the current position.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugcomobjectvalue-getcachedinterfacepointers-method.md b/docs/framework/unmanaged-api/debugging/icordebugcomobjectvalue-getcachedinterfacepointers-method.md index 5ae64242fab11..c51a52da07e04 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugcomobjectvalue-getcachedinterfacepointers-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugcomobjectvalue-getcachedinterfacepointers-method.md @@ -2,59 +2,59 @@ description: "Learn more about: ICorDebugComObjectValue::GetCachedInterfacePointers Method" title: "ICorDebugComObjectValue::GetCachedInterfacePointers Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugComObjectValue::GetCachedInterfacePointers" -api_location: +api_location: - "mscordbi.dll" -f1_keywords: +f1_keywords: - "ICorDebugComObjectValue::GetCachedInterfacePointers" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugComObjectValue::GetCachedInterfacePointers method [.NET Framework debugging]" - "GetCachedInterfacePointers method, ICorDebugComObjectValue interface [.NET Framework debugging]" ms.assetid: 08dbd558-bd39-4263-94c2-71e70687aaf0 -topic_type: +topic_type: - "apiref" --- # ICorDebugComObjectValue::GetCachedInterfacePointers Method -Gets the raw interface pointers cached on the current runtime callable wrapper (RCW). - -## Syntax - -```cpp -HRESULT GetCachedInterfacePointers( - [in] BOOL bIInspectableOnly, - [in] ULONG32 celt, - [out] ULONG32 *pceltFetched, - [out, size_is(celt), length_is(*pceltFetched) CORDB_ADDRESS *ptrs); -``` - -## Parameters - - `bIInspectableOnly` - [in] A value that indicates whether the method will return only Windows Runtime interfaces (`IInspectable` interfaces) or all COM interfaces that are cached by the runtime callable wrapper (RCW). - - `celt` - [in] The number of objects whose addresses are to be retrieved. - - `pceltFetched` - [out] A pointer to the number of `CORDB_ADDRESS` values actually returned in `ptrs`. - - `ptrs` - A pointer to the starting address of an array of `CORDB_ADDRESS` values that contain the addresses of cached interface objects. - -## Remarks - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - +Gets the raw interface pointers cached on the current runtime callable wrapper (RCW). + +## Syntax + +```cpp +HRESULT GetCachedInterfacePointers( + [in] BOOL bIInspectableOnly, + [in] ULONG32 celt, + [out] ULONG32 *pceltFetched, + [out, size_is(celt), length_is(*pceltFetched) CORDB_ADDRESS *ptrs); +``` + +## Parameters + + `bIInspectableOnly` + [in] A value that indicates whether the method will return only Windows Runtime interfaces (`IInspectable` interfaces) or all COM interfaces that are cached by the runtime callable wrapper (RCW). + + `celt` + [in] The number of objects whose addresses are to be retrieved. + + `pceltFetched` + [out] A pointer to the number of `CORDB_ADDRESS` values actually returned in `ptrs`. + + `ptrs` + A pointer to the starting address of an array of `CORDB_ADDRESS` values that contain the addresses of cached interface objects. + +## Remarks + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [ICorDebugComObjectValue Interface](icordebugcomobjectvalue-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugcomobjectvalue-getcachedinterfacetypes-method.md b/docs/framework/unmanaged-api/debugging/icordebugcomobjectvalue-getcachedinterfacetypes-method.md index fb90f2bbaf190..11b28b097158d 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugcomobjectvalue-getcachedinterfacetypes-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugcomobjectvalue-getcachedinterfacetypes-method.md @@ -2,51 +2,51 @@ description: "Learn more about: ICorDebugComObjectValue::GetCachedInterfaceTypes Method" title: "ICorDebugComObjectValue::GetCachedInterfaceTypes Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugComObjectValue::GetCachedInterfaceTypes" -api_location: +api_location: - "mscordbi.dll" -f1_keywords: +f1_keywords: - "ICorDebugComObjectValue::GetCachedInterfaceTypes" -helpviewer_keywords: +helpviewer_keywords: - "GetCachedInterface method, ICorDebugComObjectValue interface [.NET Framework debugging]" - "ICorDebugComObjectValue::GetCachedInterface method [.NET Framework debugging]" ms.assetid: d492284f-d3c5-4614-adb8-d718d5042500 -topic_type: +topic_type: - "apiref" --- # ICorDebugComObjectValue::GetCachedInterfaceTypes Method -Provides an enumerator for the interface types that the current object has been cast to or used as. - -## Syntax - -```cpp -HRESULT GetCachedInterfaceTypes( - [in] BOOL bIInspectableOnly, - [out] ICorDebugTypeEnum **ppInterfacesEnum); -``` - -## Parameters - - `bIInspectableOnly` - [in] A value that indicates whether the method returns only Windows Runtime interfaces (`IInspectable` interfaces) or all COM interfaces cached by the runtime callable wrapper (RCW). - - `ppInterfacesEnum` - [out] A pointer to the address of an ICorDebugTypeEnum enumerator that provides access to ICorDebugType objects that represent cached interface types filtered according to `bIInspectableOnly`. - -## Remarks - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - +Provides an enumerator for the interface types that the current object has been cast to or used as. + +## Syntax + +```cpp +HRESULT GetCachedInterfaceTypes( + [in] BOOL bIInspectableOnly, + [out] ICorDebugTypeEnum **ppInterfacesEnum); +``` + +## Parameters + + `bIInspectableOnly` + [in] A value that indicates whether the method returns only Windows Runtime interfaces (`IInspectable` interfaces) or all COM interfaces cached by the runtime callable wrapper (RCW). + + `ppInterfacesEnum` + [out] A pointer to the address of an ICorDebugTypeEnum enumerator that provides access to ICorDebugType objects that represent cached interface types filtered according to `bIInspectableOnly`. + +## Remarks + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [ICorDebugComObjectValue Interface](icordebugcomobjectvalue-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugcomobjectvalue-interface.md b/docs/framework/unmanaged-api/debugging/icordebugcomobjectvalue-interface.md index f7c0a12e55d64..3b0c346ea8cf3 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugcomobjectvalue-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugcomobjectvalue-interface.md @@ -2,45 +2,45 @@ description: "Learn more about: ICorDebugComObjectValue Interface" title: "ICorDebugComObjectValue Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugComObjectValue" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugComObjectValue" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugComObjectValue interface [.NET Framework debugging]" ms.assetid: 505a7f6c-d92b-42b4-b539-433f5102ea9b -topic_type: +topic_type: - "apiref" --- # ICorDebugComObjectValue Interface -Provides methods to retrieve information associated with a runtime callable wrapper (RCW). - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetCachedInterfacePointers Method](icordebugcomobjectvalue-getcachedinterfacepointers-method.md)|Gets the raw interface pointers cached on the current RCW.| -|[GetCachedInterfaceTypes Method](icordebugcomobjectvalue-getcachedinterfacetypes-method.md)|Provides an enumerator for the interface types that the current object has been cased to or used as.| - -## Remarks - - To check whether an instance of an "ICorDebugValue" interface represents an RCW, a debugger calls `QueryInterface` on "ICorDebugValue" with `IID_ICorDebugComObjectValue`. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - +Provides methods to retrieve information associated with a runtime callable wrapper (RCW). + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetCachedInterfacePointers Method](icordebugcomobjectvalue-getcachedinterfacepointers-method.md)|Gets the raw interface pointers cached on the current RCW.| +|[GetCachedInterfaceTypes Method](icordebugcomobjectvalue-getcachedinterfacetypes-method.md)|Provides an enumerator for the interface types that the current object has been cased to or used as.| + +## Remarks + + To check whether an instance of an "ICorDebugValue" interface represents an RCW, a debugger calls `QueryInterface` on "ICorDebugValue" with `IID_ICorDebugComObjectValue`. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugcontext-interface.md b/docs/framework/unmanaged-api/debugging/icordebugcontext-interface.md index 10d1069e45cf8..d6a121b944792 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugcontext-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugcontext-interface.md @@ -2,39 +2,39 @@ description: "Learn more about: ICorDebugContext Interface" title: "ICorDebugContext Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugContext" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugContext" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugContext interface [.NET Framework debugging]" ms.assetid: b9907b98-4253-4cb6-a296-37ae9977c81a -topic_type: +topic_type: - "apiref" --- # ICorDebugContext Interface -Represents a context object. This interface has not been implemented yet. - -## Remarks - +Represents a context object. This interface has not been implemented yet. + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugcontroller-detach-method.md b/docs/framework/unmanaged-api/debugging/icordebugcontroller-detach-method.md index 9cbaf2aa8b665..4cf65b90db42d 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugcontroller-detach-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugcontroller-detach-method.md @@ -2,45 +2,45 @@ description: "Learn more about: ICorDebugController::Detach Method" title: "ICorDebugController::Detach Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugController.Detach" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugController::Detach" -helpviewer_keywords: +helpviewer_keywords: - "Detach method, ICorDebugController interface [.NET Framework debugging]" - "ICorDebugController::Detach method [.NET Framework debugging]" ms.assetid: 06fae364-f2c6-4a50-aa7e-3da9f2684dc3 -topic_type: +topic_type: - "apiref" --- # ICorDebugController::Detach Method -Detaches the debugger from the process or application domain. - -## Syntax - -```cpp -HRESULT Detach (); -``` - -## Remarks - - The process or application domain continues execution normally, but the "ICorDebugProcess" or "ICorDebugAppDomain" object is no longer valid and no further callbacks will occur. - - In .NET Framework version 2.0, if unmanaged debugging is enabled, this method will fail due to operating system limitations. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Detaches the debugger from the process or application domain. + +## Syntax + +```cpp +HRESULT Detach (); +``` + +## Remarks + + The process or application domain continues execution normally, but the "ICorDebugProcess" or "ICorDebugAppDomain" object is no longer valid and no further callbacks will occur. + + In .NET Framework version 2.0, if unmanaged debugging is enabled, this method will fail due to operating system limitations. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also diff --git a/docs/framework/unmanaged-api/debugging/icordebugcontroller-enumeratethreads-method.md b/docs/framework/unmanaged-api/debugging/icordebugcontroller-enumeratethreads-method.md index 3b112ca6c9bb5..79071cdf031b5 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugcontroller-enumeratethreads-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugcontroller-enumeratethreads-method.md @@ -2,50 +2,50 @@ description: "Learn more about: ICorDebugController::EnumerateThreads Method" title: "ICorDebugController::EnumerateThreads Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugController.EnumerateThreads" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugController::EnumerateThreads" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugController::EnumerateThreads method [.NET Framework debugging]" - "EnumerateThreads method [.NET Framework debugging]" ms.assetid: 73f536f6-4668-4a4a-b3e4-ac7df862d5be -topic_type: +topic_type: - "apiref" --- # ICorDebugController::EnumerateThreads Method -Gets an enumerator for the active managed threads in the process. - -## Syntax - -```cpp -HRESULT EnumerateThreads ( - [out] ICorDebugThreadEnum **ppThreads -); -``` - -## Parameters - - `ppThreads` - [out] A pointer to the address of an "ICorDebugThreadEnum" object that represents an enumerator for all managed threads that are active in the process. - -## Remarks - - A thread is considered active after the [ICorDebugManagedCallback::CreateThread](icordebugmanagedcallback-createthread-method.md) callback has been dispatched and before the [ICorDebugManagedCallback::ExitThread](icordebugmanagedcallback-exitthread-method.md) callback has been dispatched. A managed thread may not necessarily have any managed frames on its stack. Threads can be enumerated even before the [ICorDebugManagedCallback::CreateProcess](icordebugmanagedcallback-createprocess-method.md) callback. The enumeration will naturally be empty. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Gets an enumerator for the active managed threads in the process. + +## Syntax + +```cpp +HRESULT EnumerateThreads ( + [out] ICorDebugThreadEnum **ppThreads +); +``` + +## Parameters + + `ppThreads` + [out] A pointer to the address of an "ICorDebugThreadEnum" object that represents an enumerator for all managed threads that are active in the process. + +## Remarks + + A thread is considered active after the [ICorDebugManagedCallback::CreateThread](icordebugmanagedcallback-createthread-method.md) callback has been dispatched and before the [ICorDebugManagedCallback::ExitThread](icordebugmanagedcallback-exitthread-method.md) callback has been dispatched. A managed thread may not necessarily have any managed frames on its stack. Threads can be enumerated even before the [ICorDebugManagedCallback::CreateProcess](icordebugmanagedcallback-createprocess-method.md) callback. The enumeration will naturally be empty. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also diff --git a/docs/framework/unmanaged-api/debugging/icordebugcontroller-hasqueuedcallbacks-method.md b/docs/framework/unmanaged-api/debugging/icordebugcontroller-hasqueuedcallbacks-method.md index 8335c08d00ac6..01bcf827d67c2 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugcontroller-hasqueuedcallbacks-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugcontroller-hasqueuedcallbacks-method.md @@ -2,58 +2,58 @@ description: "Learn more about: ICorDebugController::HasQueuedCallbacks Method" title: "ICorDebugController::HasQueuedCallbacks Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugController.HasQueuedCallbacks" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugController::HasQueuedCallbacks" -helpviewer_keywords: +helpviewer_keywords: - "HasQueuedCallbacks method [.NET Framework debugging]" - "ICorDebugController::HasQueuedCallbacks method [.NET Framework debugging]" ms.assetid: 0d6a1cd9-370b-4462-adbf-e3980e897ea7 -topic_type: +topic_type: - "apiref" --- # ICorDebugController::HasQueuedCallbacks Method -Gets a value that indicates whether any managed callbacks are currently queued for the specified thread. - -## Syntax - -```cpp -HRESULT HasQueuedCallbacks ( - [in] ICorDebugThread *pThread, - [out] BOOL *pbQueued -); -``` - -## Parameters - - `pThread` - [in] A pointer to an "ICorDebugThread" object that represents the thread. - - `pbQueued` - [out] A pointer to a value that is `true` if any managed callbacks are currently queued for the specified thread; otherwise, `false`. - - If null is specified for the `pThread` parameter, `HasQueuedCallbacks` will return `true` if there are currently managed callbacks queued for any thread. - -## Remarks - - Callbacks will be dispatched one at a time, each time [ICorDebugController::Continue](icordebugcontroller-continue-method.md) is called. The debugger can check this flag if it wants to report multiple debugging events that occur simultaneously. - - When debugging events are queued, they have already occurred, so the debugger must drain the entire queue to be sure of the state of the debuggee. (Call `ICorDebugController::Continue` to drain the queue.) For example, if the queue contains two debugging events on thread *X*, and the debugger suspends thread *X* after the first debugging event and then calls `ICorDebugController::Continue`, the second debugging event for thread *X* will be dispatched although the thread has been suspended. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Gets a value that indicates whether any managed callbacks are currently queued for the specified thread. + +## Syntax + +```cpp +HRESULT HasQueuedCallbacks ( + [in] ICorDebugThread *pThread, + [out] BOOL *pbQueued +); +``` + +## Parameters + + `pThread` + [in] A pointer to an "ICorDebugThread" object that represents the thread. + + `pbQueued` + [out] A pointer to a value that is `true` if any managed callbacks are currently queued for the specified thread; otherwise, `false`. + + If null is specified for the `pThread` parameter, `HasQueuedCallbacks` will return `true` if there are currently managed callbacks queued for any thread. + +## Remarks + + Callbacks will be dispatched one at a time, each time [ICorDebugController::Continue](icordebugcontroller-continue-method.md) is called. The debugger can check this flag if it wants to report multiple debugging events that occur simultaneously. + + When debugging events are queued, they have already occurred, so the debugger must drain the entire queue to be sure of the state of the debuggee. (Call `ICorDebugController::Continue` to drain the queue.) For example, if the queue contains two debugging events on thread *X*, and the debugger suspends thread *X* after the first debugging event and then calls `ICorDebugController::Continue`, the second debugging event for thread *X* will be dispatched although the thread has been suspended. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also diff --git a/docs/framework/unmanaged-api/debugging/icordebugcontroller-interface.md b/docs/framework/unmanaged-api/debugging/icordebugcontroller-interface.md index 4604324beb662..52150ccc57dda 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugcontroller-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugcontroller-interface.md @@ -2,56 +2,56 @@ description: "Learn more about: ICorDebugController Interface" title: "ICorDebugController Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugController" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugController" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugController interface [.NET Framework debugging]" ms.assetid: dbb1c4dc-269a-459b-ab1d-6c70788782ce -topic_type: +topic_type: - "apiref" --- # ICorDebugController Interface -Represents a scope, either a or an , in which code execution context can be controlled. - -## Methods - -|Method|Description| -|------------|-----------------| -|`ICorDebugController::CanCommitChanges`|This method is obsolete.| -|`ICorDebugController::CommitChanges`|This method is obsolete.| -|[Continue Method](icordebugcontroller-continue-method.md)|Resumes execution of managed threads after a call to [ICorDebugController::Stop](icordebugcontroller-stop-method.md).| -|[Detach Method](icordebugcontroller-detach-method.md)|Detaches the debugger from the process or application domain.| -|[EnumerateThreads Method](icordebugcontroller-enumeratethreads-method.md)|Gets an enumerator for the active managed threads in the process.| -|[HasQueuedCallbacks Method](icordebugcontroller-hasqueuedcallbacks-method.md)|Gets a value that indicates whether any managed callbacks are currently queued for the specified thread.| -|[IsRunning Method](icordebugcontroller-isrunning-method.md)|Gets a value that indicates whether the threads in the process are currently running freely.| -|[SetAllThreadsDebugState Method](icordebugcontroller-setallthreadsdebugstate-method.md)|Sets the debug state of all managed threads in the process.| -|[Stop Method](icordebugcontroller-stop-method.md)|Performs a cooperative stop on all threads that are running managed code in the process.| -|[Terminate Method](icordebugcontroller-terminate-method.md)|Terminates the process with the specified exit code.| - -## Remarks - - If `ICorDebugController` is controlling a process, the scope includes all threads of the process. If `ICorDebugController` is controlling an application domain, the scope includes only the threads of that particular application domain. - +Represents a scope, either a or an , in which code execution context can be controlled. + +## Methods + +|Method|Description| +|------------|-----------------| +|`ICorDebugController::CanCommitChanges`|This method is obsolete.| +|`ICorDebugController::CommitChanges`|This method is obsolete.| +|[Continue Method](icordebugcontroller-continue-method.md)|Resumes execution of managed threads after a call to [ICorDebugController::Stop](icordebugcontroller-stop-method.md).| +|[Detach Method](icordebugcontroller-detach-method.md)|Detaches the debugger from the process or application domain.| +|[EnumerateThreads Method](icordebugcontroller-enumeratethreads-method.md)|Gets an enumerator for the active managed threads in the process.| +|[HasQueuedCallbacks Method](icordebugcontroller-hasqueuedcallbacks-method.md)|Gets a value that indicates whether any managed callbacks are currently queued for the specified thread.| +|[IsRunning Method](icordebugcontroller-isrunning-method.md)|Gets a value that indicates whether the threads in the process are currently running freely.| +|[SetAllThreadsDebugState Method](icordebugcontroller-setallthreadsdebugstate-method.md)|Sets the debug state of all managed threads in the process.| +|[Stop Method](icordebugcontroller-stop-method.md)|Performs a cooperative stop on all threads that are running managed code in the process.| +|[Terminate Method](icordebugcontroller-terminate-method.md)|Terminates the process with the specified exit code.| + +## Remarks + + If `ICorDebugController` is controlling a process, the scope includes all threads of the process. If `ICorDebugController` is controlling an application domain, the scope includes only the threads of that particular application domain. + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugcontroller-setallthreadsdebugstate-method.md b/docs/framework/unmanaged-api/debugging/icordebugcontroller-setallthreadsdebugstate-method.md index e226fac398279..b1bd96d172638 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugcontroller-setallthreadsdebugstate-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugcontroller-setallthreadsdebugstate-method.md @@ -2,54 +2,54 @@ description: "Learn more about: ICorDebugController::SetAllThreadsDebugState Method" title: "ICorDebugController::SetAllThreadsDebugState Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugController.SetAllThreadsDebugState" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugController::SetAllThreadsDebugState" -helpviewer_keywords: +helpviewer_keywords: - "SetAllThreadsDebugState method [.NET Framework debugging]" - "ICorDebugController::SetAllThreadsDebugState method [.NET Framework debugging]" ms.assetid: bdda4bd7-4743-4d58-a22b-8067e967db95 -topic_type: +topic_type: - "apiref" --- # ICorDebugController::SetAllThreadsDebugState Method -Sets the debug state of all managed threads in the process. - -## Syntax - -```cpp -HRESULT SetAllThreadsDebugState ( - [in] CorDebugThreadState state, - [in] ICorDebugThread *pExceptThisThread -); -``` - -## Parameters - - `state` - [in] A value of the "CorDebugThreadState" enumeration that specifies the state of the thread for debugging. - - `pExceptThisThread` - [in] A pointer to an "ICorDebugThread" object that represents a thread to be exempted from the debug state setting. If this value is null, no thread is exempted. - -## Remarks - - The `SetAllThreadsDebugState` method may affect threads that are not visible via [EnumerateThreads Method](icordebugcontroller-enumeratethreads-method.md), so threads that were suspended with the `SetAllThreadsDebugState` method will need to be resumed with the `SetAllThreadsDebugState` method. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Sets the debug state of all managed threads in the process. + +## Syntax + +```cpp +HRESULT SetAllThreadsDebugState ( + [in] CorDebugThreadState state, + [in] ICorDebugThread *pExceptThisThread +); +``` + +## Parameters + + `state` + [in] A value of the "CorDebugThreadState" enumeration that specifies the state of the thread for debugging. + + `pExceptThisThread` + [in] A pointer to an "ICorDebugThread" object that represents a thread to be exempted from the debug state setting. If this value is null, no thread is exempted. + +## Remarks + + The `SetAllThreadsDebugState` method may affect threads that are not visible via [EnumerateThreads Method](icordebugcontroller-enumeratethreads-method.md), so threads that were suspended with the `SetAllThreadsDebugState` method will need to be resumed with the `SetAllThreadsDebugState` method. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also diff --git a/docs/framework/unmanaged-api/debugging/icordebugcontroller-stop-method.md b/docs/framework/unmanaged-api/debugging/icordebugcontroller-stop-method.md index a78ea1fbb3263..f39aadb7f9625 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugcontroller-stop-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugcontroller-stop-method.md @@ -2,55 +2,55 @@ description: "Learn more about: ICorDebugController::Stop Method" title: "ICorDebugController::Stop Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugController.Stop" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugController::Stop" -helpviewer_keywords: +helpviewer_keywords: - "Stop method, ICorDebugController interface [.NET Framework debugging]" - "ICorDebugController::Stop method [.NET Framework debugging]" ms.assetid: c34e79be-a7fb-479e-8dec-d126a4c330e5 -topic_type: +topic_type: - "apiref" --- # ICorDebugController::Stop Method -Performs a cooperative stop on all threads that are running managed code in the process. - -## Syntax - -```cpp -HRESULT Stop ( - [in] DWORD dwTimeoutIgnored -); -``` - -## Parameters - - `dwTimeoutIgnored` - Not used. - -## Remarks - - `Stop` performs a cooperative stop on all threads running managed code in the process. During a managed-only debugging session, unmanaged threads may continue to run (but will be blocked when trying to call managed code). During an interop debugging session, unmanaged threads will also be stopped. The `dwTimeoutIgnored` value is currently ignored and treated as INFINITE (-1). If the cooperative stop fails due to a deadlock, all threads are suspended and E_TIMEOUT is returned. - +Performs a cooperative stop on all threads that are running managed code in the process. + +## Syntax + +```cpp +HRESULT Stop ( + [in] DWORD dwTimeoutIgnored +); +``` + +## Parameters + + `dwTimeoutIgnored` + Not used. + +## Remarks + + `Stop` performs a cooperative stop on all threads running managed code in the process. During a managed-only debugging session, unmanaged threads may continue to run (but will be blocked when trying to call managed code). During an interop debugging session, unmanaged threads will also be stopped. The `dwTimeoutIgnored` value is currently ignored and treated as INFINITE (-1). If the cooperative stop fails due to a deadlock, all threads are suspended and E_TIMEOUT is returned. + > [!NOTE] -> `Stop` is the only synchronous method in the debugging API. When `Stop` returns S_OK, the process is stopped. No callback is given to notify listeners of the stop. The debugger must call [ICorDebugController::Continue](icordebugcontroller-continue-method.md) to allow the process to resume. - - The debugger maintains a stop counter. When the counter goes to zero, the controller is resumed. Each call to `Stop` or each dispatched callback increments the counter. Each call to `ICorDebugController::Continue` decrements the counter. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> `Stop` is the only synchronous method in the debugging API. When `Stop` returns S_OK, the process is stopped. No callback is given to notify listeners of the stop. The debugger must call [ICorDebugController::Continue](icordebugcontroller-continue-method.md) to allow the process to resume. + + The debugger maintains a stop counter. When the counter goes to zero, the controller is resumed. Each call to `Stop` or each dispatched callback increments the counter. Each call to `ICorDebugController::Continue` decrements the counter. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also diff --git a/docs/framework/unmanaged-api/debugging/icordebugcontroller-terminate-method.md b/docs/framework/unmanaged-api/debugging/icordebugcontroller-terminate-method.md index d55085af536c6..12ee6f6daceb3 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugcontroller-terminate-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugcontroller-terminate-method.md @@ -2,56 +2,56 @@ description: "Learn more about: ICorDebugController::Terminate Method" title: "ICorDebugController::Terminate Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugController.Terminate" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugController::Terminate" -helpviewer_keywords: +helpviewer_keywords: - "Terminate method, ICorDebugController interface [.NET Framework debugging]" - "ICorDebugController::Terminate method [.NET Framework debugging]" ms.assetid: 4275af0c-b5a7-4e4c-97c9-7e41f36b2dd8 -topic_type: +topic_type: - "apiref" --- # ICorDebugController::Terminate Method -Terminates the process with the specified exit code. - +Terminates the process with the specified exit code. + > [!NOTE] -> This method is a wrapper for the Win32 `TerminateProcess` function. Thus, `Terminate` uses the exit code in the same way that the Win32 `TerminateProcess` function uses it. - -## Syntax - -```cpp -HRESULT Terminate ( - [in] UINT exitCode -); -``` - -## Parameters - - `exitCode` - [in] A numeric value that is the exit code. The valid numeric values are defined in Winbase.h. - -## Remarks - - If the process is stopped when `Terminate` is called, the process should be continued by using the [ICorDebugController::Continue](icordebugcontroller-continue-method.md) method so that the debugger receives confirmation of the termination through the [ICorDebugManagedCallback::ExitProcess](icordebugmanagedcallback-exitprocess-method.md) or [ICorDebugManagedCallback::ExitAppDomain](icordebugmanagedcallback-exitappdomain-method.md) callback. - +> This method is a wrapper for the Win32 `TerminateProcess` function. Thus, `Terminate` uses the exit code in the same way that the Win32 `TerminateProcess` function uses it. + +## Syntax + +```cpp +HRESULT Terminate ( + [in] UINT exitCode +); +``` + +## Parameters + + `exitCode` + [in] A numeric value that is the exit code. The valid numeric values are defined in Winbase.h. + +## Remarks + + If the process is stopped when `Terminate` is called, the process should be continued by using the [ICorDebugController::Continue](icordebugcontroller-continue-method.md) method so that the debugger receives confirmation of the termination through the [ICorDebugManagedCallback::ExitProcess](icordebugmanagedcallback-exitprocess-method.md) or [ICorDebugManagedCallback::ExitAppDomain](icordebugmanagedcallback-exitappdomain-method.md) callback. + > [!NOTE] -> This method is not implemented by an application domain. That is, it is not implemented at the level. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This method is not implemented by an application domain. That is, it is not implemented at the level. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also diff --git a/docs/framework/unmanaged-api/debugging/icordebugdatatarget-getplatform-method.md b/docs/framework/unmanaged-api/debugging/icordebugdatatarget-getplatform-method.md index eeddd9bc42941..fde40c3cf7b6f 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugdatatarget-getplatform-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugdatatarget-getplatform-method.md @@ -2,58 +2,58 @@ description: "Learn more about: ICorDebugDataTarget::GetPlatform Method" title: "ICorDebugDataTarget::GetPlatform Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugDataTarget.GetPlatform Method" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugDataTarget::GetPlatform" -helpviewer_keywords: +helpviewer_keywords: - "GetPlatform method [.NET Framework debugging]" - "ICorDebugDataTarget::GetPlatform method [.NET Framework debugging]" ms.assetid: 9ee96c9d-7a3d-4129-a6cc-7675c7f2dda4 -topic_type: +topic_type: - "apiref" --- # ICorDebugDataTarget::GetPlatform Method -Provides information about the platform, including processor architecture and operating system, on which the target process is running. - -## Syntax - -```cpp -HRESULT GetPlatform([out] CorDebugPlatform * pTargetPlatform); -``` - -## Parameters - - `pTargetPlatform` - [out] A pointer to a [CorDebugPlatformEnum](cordebugplatform-enumeration.md) enumeration that describes the target platform. - -## Remarks - - The `CorDebugPlatformEnum` enumeration return value is used by the [ICorDebug](icordebug-interface.md) interface to determine details of the target process such as its pointer size, address space layout, register set, instruction format, context layout, and calling conventions. - - The `pTargetPlatform` value may refer to a platform that is being emulated for the target instead of specifying the actual hardware in use. For example, a process that is running in the Windows on Windows (WOW) environment on a 64-bit edition of the Windows operating system should use the `CORDB_PLATFORM_WINDOWS_X86` value of the [CorDebugPlatformEnum](cordebugplatform-enumeration.md) enumeration. - - This method must succeed. If it fails, the target platform is unusable. The method may fail for the following reasons: - -- The platform that is being emulated for the target is unusable. - -- The actual hardware on the target platform is unusable. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +Provides information about the platform, including processor architecture and operating system, on which the target process is running. + +## Syntax + +```cpp +HRESULT GetPlatform([out] CorDebugPlatform * pTargetPlatform); +``` + +## Parameters + + `pTargetPlatform` + [out] A pointer to a [CorDebugPlatformEnum](cordebugplatform-enumeration.md) enumeration that describes the target platform. + +## Remarks + + The `CorDebugPlatformEnum` enumeration return value is used by the [ICorDebug](icordebug-interface.md) interface to determine details of the target process such as its pointer size, address space layout, register set, instruction format, context layout, and calling conventions. + + The `pTargetPlatform` value may refer to a platform that is being emulated for the target instead of specifying the actual hardware in use. For example, a process that is running in the Windows on Windows (WOW) environment on a 64-bit edition of the Windows operating system should use the `CORDB_PLATFORM_WINDOWS_X86` value of the [CorDebugPlatformEnum](cordebugplatform-enumeration.md) enumeration. + + This method must succeed. If it fails, the target platform is unusable. The method may fail for the following reasons: + +- The platform that is being emulated for the target is unusable. + +- The actual hardware on the target platform is unusable. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [ICorDebugDataTarget Interface](icordebugdatatarget-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugdatatarget-getthreadcontext-method.md b/docs/framework/unmanaged-api/debugging/icordebugdatatarget-getthreadcontext-method.md index 1c0d523922013..ccaf5c6953359 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugdatatarget-getthreadcontext-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugdatatarget-getthreadcontext-method.md @@ -2,63 +2,63 @@ description: "Learn more about: ICorDebugDataTarget::GetThreadContext Method" title: "ICorDebugDataTarget::GetThreadContext Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugDataTarget.GetThreadContext Method" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugDataTarget::GetThreadContext" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugDataTarget::GetThreadContext method [.NET Framework debugging]" - "GetThreadContext method, ICorDebugDataTarget interface [.NET Framework debugging]" ms.assetid: c8954268-1821-4b23-b665-dbb55f2af31b -topic_type: +topic_type: - "apiref" --- # ICorDebugDataTarget::GetThreadContext Method -Returns the current thread context for the specified thread. - -## Syntax - -```cpp -HRESULT GetThreadContext( - [in] DWORD dwThreadID, - [in] ULONG32 contextFlags, - [in] ULONG32 contextSize, - [out, size_is(contextSize)] BYTE * pContext); -``` - -## Parameters - - `dwThreadID` - [in] The identifier of the thread whose context is to be retrieved. The identifier is defined by the operating system. - - `contextFlags` - [in] A bitwise combination of platform-dependent flags that indicate which portions of the context should be read. - - `contextSize` - [in] The size of `pContext`. - - `pContext` - [out] The buffer where the thread context will be stored. - -## Remarks - - On Windows platforms, `pContext` must be a `CONTEXT` structure (defined in WinNT.h) that is appropriate for the machine type specified by the [ICorDebugDataTarget::GetPlatform](icordebugdatatarget-getplatform-method.md) method. `contextFlags` must have the same values as the `ContextFlags` field of the `CONTEXT` structure. The `CONTEXT` structure is processor-specific; refer to the WinNT.h file for details. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +Returns the current thread context for the specified thread. + +## Syntax + +```cpp +HRESULT GetThreadContext( + [in] DWORD dwThreadID, + [in] ULONG32 contextFlags, + [in] ULONG32 contextSize, + [out, size_is(contextSize)] BYTE * pContext); +``` + +## Parameters + + `dwThreadID` + [in] The identifier of the thread whose context is to be retrieved. The identifier is defined by the operating system. + + `contextFlags` + [in] A bitwise combination of platform-dependent flags that indicate which portions of the context should be read. + + `contextSize` + [in] The size of `pContext`. + + `pContext` + [out] The buffer where the thread context will be stored. + +## Remarks + + On Windows platforms, `pContext` must be a `CONTEXT` structure (defined in WinNT.h) that is appropriate for the machine type specified by the [ICorDebugDataTarget::GetPlatform](icordebugdatatarget-getplatform-method.md) method. `contextFlags` must have the same values as the `ContextFlags` field of the `CONTEXT` structure. The `CONTEXT` structure is processor-specific; refer to the WinNT.h file for details. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [ICorDebugDataTarget Interface](icordebugdatatarget-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugdatatarget-interface.md b/docs/framework/unmanaged-api/debugging/icordebugdatatarget-interface.md index b9aac7db6003b..812475ae08a1c 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugdatatarget-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugdatatarget-interface.md @@ -2,59 +2,59 @@ description: "Learn more about: ICorDebugDataTarget Interface" title: "ICorDebugDataTarget Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugDataTarget" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugDataTarget" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugDataTarget interface [.NET Framework debugging]" ms.assetid: df5f05be-bed7-4f3c-bc89-dbb435d79a0b -topic_type: +topic_type: - "apiref" --- # ICorDebugDataTarget Interface -Provides a callback interface that provides access to a particular target process. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetPlatform Method](icordebugdatatarget-getplatform-method.md)|Provides information about the platform, including processor architecture and operating system, on which the target process is running.| -|[ReadVirtual Method](icordebugdatatarget-readvirtual-method.md)|Gets a block of contiguous memory starting at the specified address, and returns it in the supplied buffer.| -|[GetThreadContext Method](icordebugdatatarget-getthreadcontext-method.md)|Requests the current thread context for the specified thread.| - -## Remarks - - `ICorDebugDataTarget` and its methods have the following characteristics: - -- The debugging services call methods on this interface to access memory and other data in the target process. - -- The debugger client must implement this interface as appropriate for the particular target (for example, a live process or a memory dump). - -- The `ICorDebugDataTarget` methods can be invoked only from within methods implemented in other `ICorDebug*` interfaces. This ensures that the debugger client has control over which thread it is invoked on, and when. - -- The `ICorDebugDataTarget` implementation must always return up-to-date information about the target. - - The target process should be stopped and not changed in any way while `ICorDebug*` interfaces (and therefore `ICorDebugDataTarget` methods) are being called. If the target is a live process and its state changes, the [ICLRDebugging::OpenVirtualProcess](iclrdebugging-openvirtualprocess-method.md) method has to be called again to provide a replacement ICorDebugProcess instance. - +Provides a callback interface that provides access to a particular target process. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetPlatform Method](icordebugdatatarget-getplatform-method.md)|Provides information about the platform, including processor architecture and operating system, on which the target process is running.| +|[ReadVirtual Method](icordebugdatatarget-readvirtual-method.md)|Gets a block of contiguous memory starting at the specified address, and returns it in the supplied buffer.| +|[GetThreadContext Method](icordebugdatatarget-getthreadcontext-method.md)|Requests the current thread context for the specified thread.| + +## Remarks + + `ICorDebugDataTarget` and its methods have the following characteristics: + +- The debugging services call methods on this interface to access memory and other data in the target process. + +- The debugger client must implement this interface as appropriate for the particular target (for example, a live process or a memory dump). + +- The `ICorDebugDataTarget` methods can be invoked only from within methods implemented in other `ICorDebug*` interfaces. This ensures that the debugger client has control over which thread it is invoked on, and when. + +- The `ICorDebugDataTarget` implementation must always return up-to-date information about the target. + + The target process should be stopped and not changed in any way while `ICorDebug*` interfaces (and therefore `ICorDebugDataTarget` methods) are being called. If the target is a live process and its state changes, the [ICLRDebugging::OpenVirtualProcess](iclrdebugging-openvirtualprocess-method.md) method has to be called again to provide a replacement ICorDebugProcess instance. + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugdatatarget-readvirtual-method.md b/docs/framework/unmanaged-api/debugging/icordebugdatatarget-readvirtual-method.md index 170b8bfb96c04..61a273efbc05a 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugdatatarget-readvirtual-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugdatatarget-readvirtual-method.md @@ -2,64 +2,64 @@ description: "Learn more about: ICorDebugDataTarget::ReadVirtual Method" title: "ICorDebugDataTarget::ReadVirtual Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugDataTarget.ReadVirtual Method" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugDataTarget::ReadVirtual" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugDataTarget::ReadVirtual method [.NET Framework debugging]" - "ReadVirtual method, ICorDebugDataTarget interface [.NET Framework debugging]" ms.assetid: 55e57640-b3d2-413d-b4f4-fbc27fb8e37c -topic_type: +topic_type: - "apiref" --- # ICorDebugDataTarget::ReadVirtual Method -Gets a block of contiguous memory starting at the specified address, and returns it in the supplied buffer. - -## Syntax - -```cpp -HRESULT ReadVirtual( - [in] CORDB_ADDRESS address, - [out, size_is(bytesRequested), length_is(*pBytesRead)] - BYTE * pBuffer, - [in] ULONG32 bytesRequested, - [out] ULONG32 * pBytesRead); -``` - -## Parameters - - `address` - [in] The start address of requested memory. - - `pbuffer` - [out] The buffer where the memory will be stored. - - `bytesRequested` - [in] The number of bytes to get from the target address. - - `pBytesRead` - [out] The number of bytes actually read from the target address. This can be fewer than `bytesRequested`. - -## Remarks - - If the first byte (at the specified start address) can be read, the call should return success (to support efficient reading of data structures with self-describing length, like null-terminated strings). - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +Gets a block of contiguous memory starting at the specified address, and returns it in the supplied buffer. + +## Syntax + +```cpp +HRESULT ReadVirtual( + [in] CORDB_ADDRESS address, + [out, size_is(bytesRequested), length_is(*pBytesRead)] + BYTE * pBuffer, + [in] ULONG32 bytesRequested, + [out] ULONG32 * pBytesRead); +``` + +## Parameters + + `address` + [in] The start address of requested memory. + + `pbuffer` + [out] The buffer where the memory will be stored. + + `bytesRequested` + [in] The number of bytes to get from the target address. + + `pBytesRead` + [out] The number of bytes actually read from the target address. This can be fewer than `bytesRequested`. + +## Remarks + + If the first byte (at the specified start address) can be read, the call should return success (to support efficient reading of data structures with self-describing length, like null-terminated strings). + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [ICorDebugDataTarget Interface](icordebugdatatarget-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugdatatarget2-createvirtualunwinder-method.md b/docs/framework/unmanaged-api/debugging/icordebugdatatarget2-createvirtualunwinder-method.md index 1faf50a95d901..b640480313ea5 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugdatatarget2-createvirtualunwinder-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugdatatarget2-createvirtualunwinder-method.md @@ -6,56 +6,56 @@ ms.assetid: 354c8b4c-7d23-45c6-a7d7-3be4c2a5b772 --- # ICorDebugDataTarget2::CreateVirtualUnwinder Method -Creates a new stack unwinder that starts unwinding from an initial context (which isn't necessarily the leaf of a thread). - -## Syntax - -```cpp -HRESULT CreateVirtualUnwinder( - [in] DWORD nativeThreadID, - [in] ULONG32 contextFlags, - [in] ULONG32 cbContext, - [in, size_is(cbContext)] BYTE initialContext[], - [out] ICorDebugVirtualUnwinder ** ppUnwinder); -}; -``` - -## Parameters - - nativeThreadID - [in] The native thread ID of the thread whose stack is to be unwound. - - contextFlags - [in] Flags that specify which parts of the context are defined in `initialContext`. - - cbContext - [in] The size of `initialContext`. - - initialContext - [in] The data in the context. - - ppUnwinder - [out] A pointer to the address of an ICorDebugVirtualUnwinder interface object. - -## Return Value - - `S_OK` if successful. Any other `HRESULT` indicates failure. Any failing `HRESULT` received by mscordbi is considered fatal and causes [ICorDebug](icordebug-interface.md) methods to return `CORDBG_E_DATA_TARGET_ERROR`. - -## Remarks - +Creates a new stack unwinder that starts unwinding from an initial context (which isn't necessarily the leaf of a thread). + +## Syntax + +```cpp +HRESULT CreateVirtualUnwinder( + [in] DWORD nativeThreadID, + [in] ULONG32 contextFlags, + [in] ULONG32 cbContext, + [in, size_is(cbContext)] BYTE initialContext[], + [out] ICorDebugVirtualUnwinder ** ppUnwinder); +}; +``` + +## Parameters + + nativeThreadID + [in] The native thread ID of the thread whose stack is to be unwound. + + contextFlags + [in] Flags that specify which parts of the context are defined in `initialContext`. + + cbContext + [in] The size of `initialContext`. + + initialContext + [in] The data in the context. + + ppUnwinder + [out] A pointer to the address of an ICorDebugVirtualUnwinder interface object. + +## Return Value + + `S_OK` if successful. Any other `HRESULT` indicates failure. Any failing `HRESULT` received by mscordbi is considered fatal and causes [ICorDebug](icordebug-interface.md) methods to return `CORDBG_E_DATA_TARGET_ERROR`. + +## Remarks + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugDataTarget2 Interface](icordebugdatatarget2-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugdatatarget2-enumeratethreadids-method.md b/docs/framework/unmanaged-api/debugging/icordebugdatatarget2-enumeratethreadids-method.md index 0b9229e5d5471..a23427eaeafad 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugdatatarget2-enumeratethreadids-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugdatatarget2-enumeratethreadids-method.md @@ -6,42 +6,42 @@ ms.assetid: af02460f-2a45-496e-bc4e-a1ac4f80fe11 --- # ICorDebugDataTarget2::EnumerateThreadIDs Method -Returns a list of active thread IDs. - -## Syntax - -```cpp -HRESULT EnumerateThreadIDs( +Returns a list of active thread IDs. + +## Syntax + +```cpp +HRESULT EnumerateThreadIDs( [in] ULONG32 cThreadIds, [out] ULONG32 *pcThreadIds, - [out, size_is(cThreadIds), length_is(*pcThreadIds)] ULONG32 pThreadIds[] -); -``` - -## Parameters - - cThreadIDs - [in] The maximum number of threads whose IDs can be returned. - - pcThreadIds - [out] A pointer to a `ULONG32` that indicates the actual number of thread IDs written to the `pThreadIds` array. - - pThreadIDs - An array of thread identifiers. - -## Remarks - + [out, size_is(cThreadIds), length_is(*pcThreadIds)] ULONG32 pThreadIds[] +); +``` + +## Parameters + + cThreadIDs + [in] The maximum number of threads whose IDs can be returned. + + pcThreadIds + [out] A pointer to a `ULONG32` that indicates the actual number of thread IDs written to the `pThreadIds` array. + + pThreadIDs + An array of thread identifiers. + +## Remarks + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md).**Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md).**Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugDataTarget2 Interface](icordebugdatatarget2-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugdatatarget2-getimagefrompointer-method.md b/docs/framework/unmanaged-api/debugging/icordebugdatatarget2-getimagefrompointer-method.md index a76f29065d090..41584dc3376f4 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugdatatarget2-getimagefrompointer-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugdatatarget2-getimagefrompointer-method.md @@ -6,44 +6,44 @@ ms.assetid: 939cabe1-b647-4090-b662-eeec23c6c58d --- # ICorDebugDataTarget2::GetImageFromPointer Method -Returns the module base address and size from an address in that module. - -## Syntax - -```cpp -HRESULT GetImageFromPointer( +Returns the module base address and size from an address in that module. + +## Syntax + +```cpp +HRESULT GetImageFromPointer( [in] CORDB_ADDRESS addr, [out] CORDB_ADDRESS *pImageBase, - [out] ULONG32 *pSize -); -``` - -## Parameters - - `addr` - A [CORDB_ADDRESS](../common-data-types-unmanaged-api-reference.md) value that represents an address in a module. - - `pImageBase` - [out] A [CORDB_ADDRESS](../common-data-types-unmanaged-api-reference.md) value that represents the module's base address. - - `pSize` - A pointer to the module size. - -## Remarks - + [out] ULONG32 *pSize +); +``` + +## Parameters + + `addr` + A [CORDB_ADDRESS](../common-data-types-unmanaged-api-reference.md) value that represents an address in a module. + + `pImageBase` + [out] A [CORDB_ADDRESS](../common-data-types-unmanaged-api-reference.md) value that represents the module's base address. + + `pSize` + A pointer to the module size. + +## Remarks + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugDataTarget2 Interface](icordebugdatatarget2-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugdatatarget2-getimagelocation-method.md b/docs/framework/unmanaged-api/debugging/icordebugdatatarget2-getimagelocation-method.md index eb1aadddf5ad6..8405236366434 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugdatatarget2-getimagelocation-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugdatatarget2-getimagelocation-method.md @@ -6,47 +6,47 @@ ms.assetid: 696afe71-5852-478d-a33f-b2d2dbc4b91f --- # ICorDebugDataTarget2::GetImageLocation Method -Returns the path of a module from the module's base address. - -## Syntax - -```cpp -HRESULT GetImageLocation( [in] CORDB_ADDRESS baseAddress, - [in] ULONG32 cchName, - [out] ULONG32 *pcchName, - [out, size_is(cchName), length_is(*pcchName)] WCHAR szName[] -); -``` - -## Parameters - - `baseAddress` - [in] A [CORDB_ADDRESS](../common-data-types-unmanaged-api-reference.md) value that represents the module's base address. - - `cchName` - [in] The number of characters in the buffer that is to receive the module path. - - `pcchName` - [out] A pointer to the number of characters written to the `szName` buffer. - - `szName` - [out] The path of the module. - -## Remarks - +Returns the path of a module from the module's base address. + +## Syntax + +```cpp +HRESULT GetImageLocation( [in] CORDB_ADDRESS baseAddress, + [in] ULONG32 cchName, + [out] ULONG32 *pcchName, + [out, size_is(cchName), length_is(*pcchName)] WCHAR szName[] +); +``` + +## Parameters + + `baseAddress` + [in] A [CORDB_ADDRESS](../common-data-types-unmanaged-api-reference.md) value that represents the module's base address. + + `cchName` + [in] The number of characters in the buffer that is to receive the module path. + + `pcchName` + [out] A pointer to the number of characters written to the `szName` buffer. + + `szName` + [out] The path of the module. + +## Remarks + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugDataTarget2 Interface](icordebugdatatarget2-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugdatatarget2-getsymbolproviderforimage-method.md b/docs/framework/unmanaged-api/debugging/icordebugdatatarget2-getsymbolproviderforimage-method.md index ab008b68cd4c2..809b6f4bf28ec 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugdatatarget2-getsymbolproviderforimage-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugdatatarget2-getsymbolproviderforimage-method.md @@ -6,40 +6,40 @@ ms.assetid: b7c0a2f0-e904-43b3-98e1-d669e8a589e8 --- # ICorDebugDataTarget2::GetSymbolProviderForImage Method -Returns the symbol-provider for a module from the base address of that module. - -## Syntax - -```cpp -HRESULT GetSymbolProviderForImage( +Returns the symbol-provider for a module from the base address of that module. + +## Syntax + +```cpp +HRESULT GetSymbolProviderForImage( [in] CORDB_ADDRESS imageBaseAddress, - [out] ICorDebugSymbolProvider **ppSymProvider -); -``` - -## Parameters - - `imageBaseAddress` - [in] A [CORDB_ADDRESS](../common-data-types-unmanaged-api-reference.md) value that represents the base address of a module. - - `ppSymProvider` - [out] A pointer to the address of an [ICorDebugSymbolProvider](icordebugsymbolprovider-interface.md) object. - -## Remarks - + [out] ICorDebugSymbolProvider **ppSymProvider +); +``` + +## Parameters + + `imageBaseAddress` + [in] A [CORDB_ADDRESS](../common-data-types-unmanaged-api-reference.md) value that represents the base address of a module. + + `ppSymProvider` + [out] A pointer to the address of an [ICorDebugSymbolProvider](icordebugsymbolprovider-interface.md) object. + +## Remarks + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugDataTarget2 Interface](icordebugdatatarget2-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugdatatarget2-interface.md b/docs/framework/unmanaged-api/debugging/icordebugdatatarget2-interface.md index c614e5bcabbfb..443d2de7ac301 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugdatatarget2-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugdatatarget2-interface.md @@ -6,33 +6,33 @@ ms.assetid: 13f11388-2f91-48d8-98d6-6a4a63cb5746 --- # ICorDebugDataTarget2 Interface -Logically extends the [ICorDebugDataTarget](icordebugdatatarget-interface.md)interface. - -## Methods - -|Method|Description| -|------------|-----------------| -|[CreateVirtualUnwinder Method](icordebugdatatarget2-createvirtualunwinder-method.md)|Creates a new stack unwinder that starts unwinding from an initial context (which isn't necessarily the leaf of a thread).| -|[EnumerateThreadIDs Method](icordebugdatatarget2-enumeratethreadids-method.md)|Returns a list of active thread IDs.| -|[GetImageFromPointer Method](icordebugdatatarget2-getimagefrompointer-method.md)|Returns the module base address and size from an address in that module.| -|[GetImageLocation Method](icordebugdatatarget2-getimagelocation-method.md)|Returns the path of a module from the module's base address.| -|[GetSymbolProviderForImage Method](icordebugdatatarget2-getsymbolproviderforimage-method.md)|Returns the symbol-provider for a module from the base address of that module.| - -## Remarks - +Logically extends the [ICorDebugDataTarget](icordebugdatatarget-interface.md)interface. + +## Methods + +|Method|Description| +|------------|-----------------| +|[CreateVirtualUnwinder Method](icordebugdatatarget2-createvirtualunwinder-method.md)|Creates a new stack unwinder that starts unwinding from an initial context (which isn't necessarily the leaf of a thread).| +|[EnumerateThreadIDs Method](icordebugdatatarget2-enumeratethreadids-method.md)|Returns a list of active thread IDs.| +|[GetImageFromPointer Method](icordebugdatatarget2-getimagefrompointer-method.md)|Returns the module base address and size from an address in that module.| +|[GetImageLocation Method](icordebugdatatarget2-getimagelocation-method.md)|Returns the path of a module from the module's base address.| +|[GetSymbolProviderForImage Method](icordebugdatatarget2-getsymbolproviderforimage-method.md)|Returns the symbol-provider for a module from the base address of that module.| + +## Remarks + > [!NOTE] -> This interface is available with .NET Native only. If you implement this interface for ICorDebug scenarios outside of .NET Native, the common language runtime will ignore this interface. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This interface is available with .NET Native only. If you implement this interface for ICorDebug scenarios outside of .NET Native, the common language runtime will ignore this interface. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugdatatarget3-getloadedmodules-method.md b/docs/framework/unmanaged-api/debugging/icordebugdatatarget3-getloadedmodules-method.md index 809ec2372cf02..a2bf80be2d5c0 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugdatatarget3-getloadedmodules-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugdatatarget3-getloadedmodules-method.md @@ -6,44 +6,44 @@ ms.assetid: 9a48c05b-1949-416e-933c-52549b6fcf5e --- # ICorDebugDataTarget3::GetLoadedModules Method -Gets a list of the modules that have been loaded so far. - -## Syntax - -```cpp -HRESULT GetLoadedModules( - [in] ULONG32 cRequestedModules, - [out] ULONG32 *pcFetchedModules, - [out, size_is(cRequestedModules), length_is(*pcFetchedModules)] ICorDebugLoadedModule *pLoadedModules[] -); -``` - -## Parameters - - `cRequestedModules` - [in] The number of modules for which information is requested. - - `pcFetchedModules` - [out] A pointer to the number of modules about which information was returned. - - `pLoadedModules` - [out] A pointer to an array of [ICorDebugLoadedModule](icordebugloadedmodule-interface.md) objects that provide information about loaded modules. - -## Remarks - +Gets a list of the modules that have been loaded so far. + +## Syntax + +```cpp +HRESULT GetLoadedModules( + [in] ULONG32 cRequestedModules, + [out] ULONG32 *pcFetchedModules, + [out, size_is(cRequestedModules), length_is(*pcFetchedModules)] ICorDebugLoadedModule *pLoadedModules[] +); +``` + +## Parameters + + `cRequestedModules` + [in] The number of modules for which information is requested. + + `pcFetchedModules` + [out] A pointer to the number of modules about which information was returned. + + `pLoadedModules` + [out] A pointer to an array of [ICorDebugLoadedModule](icordebugloadedmodule-interface.md) objects that provide information about loaded modules. + +## Remarks + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugDataTarget3 Interface](icordebugdatatarget3-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugdatatarget3-interface.md b/docs/framework/unmanaged-api/debugging/icordebugdatatarget3-interface.md index a0ab008d52dc9..8fefb7e4bcedb 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugdatatarget3-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugdatatarget3-interface.md @@ -6,29 +6,29 @@ ms.assetid: f477af85-994f-4df0-ae78-404ed252bf49 --- # ICorDebugDataTarget3 Interface -Logically extends the [ICorDebugDataTarget](icordebugdatatarget-interface.md) interface to provide information about loaded modules. - -## Method - -|Method|Description| -|------------|-----------------| -|[GetLoadedModules Method](icordebugdatatarget3-getloadedmodules-method.md)|Gets a list of the modules that have been loaded so far.| - -## Remarks - +Logically extends the [ICorDebugDataTarget](icordebugdatatarget-interface.md) interface to provide information about loaded modules. + +## Method + +|Method|Description| +|------------|-----------------| +|[GetLoadedModules Method](icordebugdatatarget3-getloadedmodules-method.md)|Gets a list of the modules that have been loaded so far.| + +## Remarks + > [!NOTE] -> This interface is available with .NET Native only. If you implement this interface for ICorDebug scenarios outside of .NET Native, the common language runtime will ignore this interface. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This interface is available with .NET Native only. If you implement this interface for ICorDebug scenarios outside of .NET Native, the common language runtime will ignore this interface. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugdebugevent-geteventkind-method.md b/docs/framework/unmanaged-api/debugging/icordebugdebugevent-geteventkind-method.md index c572753b7dd63..3a0387e0fa6ea 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugdebugevent-geteventkind-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugdebugevent-geteventkind-method.md @@ -6,38 +6,38 @@ ms.assetid: c37aaceb-c948-46bd-a943-08be4cbb76f4 --- # ICorDebugDebugEvent::GetEventKind Method -Indicates what kind of event this `ICorDebugDebugEvent` object represents. - -## Syntax - -```cpp -HRESULT GetEventKind( - [out]CorDebugDebugEventKind *pDebugEventKind -); -``` - -## Parameters - - pDebugEventKind - A pointer to a [CorDebugDebugEventKind](cordebugdebugeventkind-enumeration.md) enumeration member that indicates the type of event. - -## Remarks - - Based on the value of `pDebugEventKind`, you can call `QueryInterface` to get a more precise debug event interface that has additional data. - +Indicates what kind of event this `ICorDebugDebugEvent` object represents. + +## Syntax + +```cpp +HRESULT GetEventKind( + [out]CorDebugDebugEventKind *pDebugEventKind +); +``` + +## Parameters + + pDebugEventKind + A pointer to a [CorDebugDebugEventKind](cordebugdebugeventkind-enumeration.md) enumeration member that indicates the type of event. + +## Remarks + + Based on the value of `pDebugEventKind`, you can call `QueryInterface` to get a more precise debug event interface that has additional data. + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugDebugEvent Interface](icordebugdebugevent-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugdebugevent-getthread-method.md b/docs/framework/unmanaged-api/debugging/icordebugdebugevent-getthread-method.md index b9e9cca2b2922..d0877e6afa791 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugdebugevent-getthread-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugdebugevent-getthread-method.md @@ -6,36 +6,36 @@ ms.assetid: 4f2e9a2c-8369-4a07-a881-ad5422626353 --- # ICorDebugDebugEvent::GetThread Method -Gets the thread on which the event occurred. - -## Syntax - -```cpp -HRESULT GetThread( - [out]ICorDebugThread **ppThread -); -``` - -## Parameters - - ppThread - [out] A pointer to the address of an ICorDebugThread object that represents the thread on which the event occurred. - -## Remarks - +Gets the thread on which the event occurred. + +## Syntax + +```cpp +HRESULT GetThread( + [out]ICorDebugThread **ppThread +); +``` + +## Parameters + + ppThread + [out] A pointer to the address of an ICorDebugThread object that represents the thread on which the event occurred. + +## Remarks + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugDebugEvent Interface](icordebugdebugevent-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugdebugevent-interface.md b/docs/framework/unmanaged-api/debugging/icordebugdebugevent-interface.md index 15741560badeb..8c2e8495a9a4c 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugdebugevent-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugdebugevent-interface.md @@ -6,36 +6,36 @@ ms.assetid: a226737a-cb99-4e97-bd94-9a37094ded41 --- # ICorDebugDebugEvent Interface -Defines the base interface from which all `ICorDebug` debug events derive. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetEventKind Method](icordebugdebugevent-geteventkind-method.md)|Indicates what kind of event this `ICorDebugDebugEvent` object represents.| -|[GetThread Method](icordebugdebugevent-getthread-method.md)|Gets the thread on which the event occurred.| - -## Remarks - - The following interfaces are derived from the `ICorDebugDebugEvent` interface: - -- [ICorDebugExceptionDebugEvent](icordebugexceptiondebugevent-interface.md) - -- [ICorDebugModuleDebugEvent](icordebugmoduledebugevent-interface.md) - +Defines the base interface from which all `ICorDebug` debug events derive. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetEventKind Method](icordebugdebugevent-geteventkind-method.md)|Indicates what kind of event this `ICorDebugDebugEvent` object represents.| +|[GetThread Method](icordebugdebugevent-getthread-method.md)|Gets the thread on which the event occurred.| + +## Remarks + + The following interfaces are derived from the `ICorDebugDebugEvent` interface: + +- [ICorDebugExceptionDebugEvent](icordebugexceptiondebugevent-interface.md) + +- [ICorDebugModuleDebugEvent](icordebugmoduledebugevent-interface.md) + > [!NOTE] -> The interface is available with .NET Native only. Attempting to call `QueryInterface` to retrieve an interface pointer returns `E_NOINTERFACE` for ICorDebug scenarios outside of .NET Native. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> The interface is available with .NET Native only. Attempting to call `QueryInterface` to retrieve an interface pointer returns `E_NOINTERFACE` for ICorDebug scenarios outside of .NET Native. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugenum-interface1.md b/docs/framework/unmanaged-api/debugging/icordebugenum-interface1.md index c358f2c5ba3fb..242c0b190a193 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugenum-interface1.md +++ b/docs/framework/unmanaged-api/debugging/icordebugenum-interface1.md @@ -2,92 +2,92 @@ description: "Learn more about: ICorDebugEnum Interface" title: "ICorDebugEnum Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugEnum" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugEnum" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugEnum interface [.NET Framework debugging]" ms.assetid: 80be7efe-2c32-4b9f-8c52-40c6f6268219 -topic_type: +topic_type: - "apiref" --- # ICorDebugEnum Interface -Serves as the abstract base interface for the enumerators that are used by a debugging application. - -## Methods - -|Method|Description| -|------------|-----------------| -|[Clone Method](icordebugenum-clone-method.md)|Creates a copy of this `ICorDebugEnum` object.| -|[GetCount Method](icordebugenum-getcount-method.md)|Gets the number of items in the enumeration.| -|[Reset Method](icordebugenum-reset-method.md)|Moves the cursor to the beginning of the enumeration.| -|[Skip Method](icordebugenum-skip-method.md)|Moves the cursor forward in the enumeration by the specified number of items.| - -## Remarks - - The following enumerators derive from `ICorDebugEnum`: - -- "ICorDebugAppDomainEnum" - -- "ICorDebugAssemblyEnum" - -- [ICorDebugBlockingObjectEnum](icordebugblockingobjectenum-interface.md) - -- "ICorDebugBreakpointEnum" - -- "ICorDebugChainEnum" - -- "ICorDebugCodeEnum" - -- "ICorDebugErrorInfoEnum" - -- [ICorDebugExceptionObjectCallStackEnum](icordebugexceptionobjectcallstackenum-interface.md) - -- "ICorDebugFrameEnum" - -- [ICorDebugGCReferenceEnum](icordebuggcreferenceenum-interface.md) - -- [ICorDebugGuidToTypeEnum](icordebugguidtotypeenum-interface.md) - -- [ICorDebugHeapEnum](icordebugheapenum-interface.md) - -- [ICorDebugHeapSegmentEnum](icordebugheapsegmentenum-interface.md) - -- "ICorDebugModuleEnum" - -- "ICorDebugObjectEnum" - -- "ICorDebugProcessEnum" - -- "ICorDebugStepperEnum" - -- "ICorDebugThreadEnum" - -- "ICorDebugTypeEnum" - -- "ICorDebugValueEnum" - -- [ICorDebugVariableHomeEnum](icordebugvariablehomeenum-interface.md) - +Serves as the abstract base interface for the enumerators that are used by a debugging application. + +## Methods + +|Method|Description| +|------------|-----------------| +|[Clone Method](icordebugenum-clone-method.md)|Creates a copy of this `ICorDebugEnum` object.| +|[GetCount Method](icordebugenum-getcount-method.md)|Gets the number of items in the enumeration.| +|[Reset Method](icordebugenum-reset-method.md)|Moves the cursor to the beginning of the enumeration.| +|[Skip Method](icordebugenum-skip-method.md)|Moves the cursor forward in the enumeration by the specified number of items.| + +## Remarks + + The following enumerators derive from `ICorDebugEnum`: + +- "ICorDebugAppDomainEnum" + +- "ICorDebugAssemblyEnum" + +- [ICorDebugBlockingObjectEnum](icordebugblockingobjectenum-interface.md) + +- "ICorDebugBreakpointEnum" + +- "ICorDebugChainEnum" + +- "ICorDebugCodeEnum" + +- "ICorDebugErrorInfoEnum" + +- [ICorDebugExceptionObjectCallStackEnum](icordebugexceptionobjectcallstackenum-interface.md) + +- "ICorDebugFrameEnum" + +- [ICorDebugGCReferenceEnum](icordebuggcreferenceenum-interface.md) + +- [ICorDebugGuidToTypeEnum](icordebugguidtotypeenum-interface.md) + +- [ICorDebugHeapEnum](icordebugheapenum-interface.md) + +- [ICorDebugHeapSegmentEnum](icordebugheapsegmentenum-interface.md) + +- "ICorDebugModuleEnum" + +- "ICorDebugObjectEnum" + +- "ICorDebugProcessEnum" + +- "ICorDebugStepperEnum" + +- "ICorDebugThreadEnum" + +- "ICorDebugTypeEnum" + +- "ICorDebugValueEnum" + +- [ICorDebugVariableHomeEnum](icordebugvariablehomeenum-interface.md) + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugeval-abort-method.md b/docs/framework/unmanaged-api/debugging/icordebugeval-abort-method.md index 44f8a7de8e5e0..4537848c3e2ca 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugeval-abort-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugeval-abort-method.md @@ -2,41 +2,41 @@ description: "Learn more about: ICorDebugEval::Abort Method" title: "ICorDebugEval::Abort Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugEval.Abort" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugEval::Abort" -helpviewer_keywords: +helpviewer_keywords: - "Abort method, ICorDebugEval interface [.NET Framework debugging]" - "ICorDebugEval::Abort method [.NET Framework debugging]" ms.assetid: 7070b6d0-f2e0-44ff-b124-0944cd807e69 -topic_type: +topic_type: - "apiref" --- # ICorDebugEval::Abort Method -Aborts the computation this ICorDebugEval object is currently performing. - -## Syntax - -```cpp -HRESULT Abort (); -``` - -## Remarks - - If the evaluation is nested and it is not the most recent one, the `Abort` method may fail. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Aborts the computation this ICorDebugEval object is currently performing. + +## Syntax + +```cpp +HRESULT Abort (); +``` + +## Remarks + + If the evaluation is nested and it is not the most recent one, the `Abort` method may fail. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugeval-createvalue-method.md b/docs/framework/unmanaged-api/debugging/icordebugeval-createvalue-method.md index 15a50e48bde5c..5604c5ad21938 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugeval-createvalue-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugeval-createvalue-method.md @@ -2,66 +2,66 @@ description: "Learn more about: ICorDebugEval::CreateValue Method" title: "ICorDebugEval::CreateValue Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugEval.CreateValue" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugEval::CreateValue" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugEval::CreateValue method [.NET Framework debugging]" - "CreateValue method [.NET Framework debugging]" ms.assetid: 9a1c0b47-6f10-4fcb-844a-4ab2d7990140 -topic_type: +topic_type: - "apiref" --- # ICorDebugEval::CreateValue Method -Creates a value of the specified type, with an initial value of zero or null. - - This method is obsolete in .NET Framework version 2.0. Use [ICorDebugEval2::CreateValueForType](icordebugeval2-createvaluefortype-method.md) instead. - -## Syntax - -```cpp -HRESULT CreateValue ( - [in] CorElementType elementType, - [in] ICorDebugClass *pElementClass, - [out] ICorDebugValue **ppValue -); -``` - -## Parameters - - `elementType` - [in] A value of the [CorElementType](../metadata/corelementtype-enumeration.md) enumeration that specifies the type of the value. - - `pElementClass` - [in] Pointer to an [ICorDebugClass](icordebugclass-interface.md) object that specifies the class of the value, if the type is not a primitive type. - - `ppValue` - [out] Pointer to the address of an "ICorDebugValue" object that represents the value. - -## Remarks - - `CreateValue` creates an `ICorDebugValue` object of the given type for the sole purpose of using it in a function evaluation. This value object can be used to pass user constants as parameters. - - If the type of the value is a primitive type, its initial value is zero or null. Use [ICorDebugGenericValue::SetValue](icordebuggenericvalue-setvalue-method.md) to set the value of a primitive type. - - If the value of `elementType` is ELEMENT_TYPE_CLASS, you get an "ICorDebugReferenceValue" (returned in `ppValue`) representing the null object reference. You can use this object to pass null to a function evaluation that has object reference parameters. You cannot set the `ICorDebugValue` to anything; it always remains null. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** 1.1, 1.0 - +Creates a value of the specified type, with an initial value of zero or null. + + This method is obsolete in .NET Framework version 2.0. Use [ICorDebugEval2::CreateValueForType](icordebugeval2-createvaluefortype-method.md) instead. + +## Syntax + +```cpp +HRESULT CreateValue ( + [in] CorElementType elementType, + [in] ICorDebugClass *pElementClass, + [out] ICorDebugValue **ppValue +); +``` + +## Parameters + + `elementType` + [in] A value of the [CorElementType](../metadata/corelementtype-enumeration.md) enumeration that specifies the type of the value. + + `pElementClass` + [in] Pointer to an [ICorDebugClass](icordebugclass-interface.md) object that specifies the class of the value, if the type is not a primitive type. + + `ppValue` + [out] Pointer to the address of an "ICorDebugValue" object that represents the value. + +## Remarks + + `CreateValue` creates an `ICorDebugValue` object of the given type for the sole purpose of using it in a function evaluation. This value object can be used to pass user constants as parameters. + + If the type of the value is a primitive type, its initial value is zero or null. Use [ICorDebugGenericValue::SetValue](icordebuggenericvalue-setvalue-method.md) to set the value of a primitive type. + + If the value of `elementType` is ELEMENT_TYPE_CLASS, you get an "ICorDebugReferenceValue" (returned in `ppValue`) representing the null object reference. You can use this object to pass null to a function evaluation that has object reference parameters. You cannot set the `ICorDebugValue` to anything; it always remains null. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** 1.1, 1.0 + ## See also - [CreateValueForType Method](icordebugeval2-createvaluefortype-method.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugeval-getresult-method.md b/docs/framework/unmanaged-api/debugging/icordebugeval-getresult-method.md index 3ee4f4a50bd38..7d3de05d4f51f 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugeval-getresult-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugeval-getresult-method.md @@ -2,50 +2,50 @@ description: "Learn more about: ICorDebugEval::GetResult Method" title: "ICorDebugEval::GetResult Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugEval.GetResult" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugEval::GetResult" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugEval::GetResult method [.NET Framework debugging]" - "GetResult method [.NET Framework debugging]" ms.assetid: 50dbb9af-58a1-41f4-b56d-3da20011884f -topic_type: +topic_type: - "apiref" --- # ICorDebugEval::GetResult Method -Gets the results of this evaluation. - -## Syntax - -```cpp -HRESULT GetResult ( - [out] ICorDebugValue **ppResult -); -``` - -## Parameters - - `ppResult` - [out] Pointer to the address of an ICorDebugValue object that represents the results of this evaluation, if the evaluation completes normally. - -## Remarks - - The `GetResult` method is valid only after the evaluation is completed. - - If the evaluation completes normally, `ppResult` specifies the results. If it terminates with an exception, the result is the exception thrown. If the evaluation was for a new object, the result is the reference to the new object. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets the results of this evaluation. + +## Syntax + +```cpp +HRESULT GetResult ( + [out] ICorDebugValue **ppResult +); +``` + +## Parameters + + `ppResult` + [out] Pointer to the address of an ICorDebugValue object that represents the results of this evaluation, if the evaluation completes normally. + +## Remarks + + The `GetResult` method is valid only after the evaluation is completed. + + If the evaluation completes normally, `ppResult` specifies the results. If it terminates with an exception, the result is the exception thrown. If the evaluation was for a new object, the result is the reference to the new object. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugeval-interface.md b/docs/framework/unmanaged-api/debugging/icordebugeval-interface.md index 990b60db9fed2..800a9d6c7075b 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugeval-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugeval-interface.md @@ -2,62 +2,62 @@ description: "Learn more about: ICorDebugEval Interface" title: "ICorDebugEval Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugEval" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugEval" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugEval interface [.NET Framework debugging]" ms.assetid: 3a5c9815-832d-47e1-b7f7-bbba135d7cf1 -topic_type: +topic_type: - "apiref" --- # ICorDebugEval Interface -Provides methods to enable the debugger to execute code within the context of the code being debugged. - -## Methods - -|Method|Description| -|------------|-----------------| -|[Abort Method](icordebugeval-abort-method.md)|Aborts the computation this `ICorDebugEval` object is currently performing.| -|[CallFunction Method](icordebugeval-callfunction-method.md)|Sets up a call to the specified function. (Obsolete in the .NET Framework version 2.0; use [ICorDebugEval2::CallParameterizedFunction](icordebugeval2-callparameterizedfunction-method.md) instead.)| -|[CreateValue Method](icordebugeval-createvalue-method.md)|Gets an interface pointer to an "ICorDebugValue" object of the specified type, with an initial value of zero or null. (Obsolete in the .NET Framework 2.0; use [ICorDebugEval2::CreateValueForType](icordebugeval2-createvaluefortype-method.md) instead.)| -|[GetResult Method](icordebugeval-getresult-method.md)|Gets an interface pointer to an `ICorDebugValue` that contains the results of the evaluation.| -|[GetThread Method](icordebugeval-getthread-method.md)|Gets an interface pointer to the "ICorDebugThread" where this evaluation is executing or will execute.| -|[IsActive Method](icordebugeval-isactive-method.md)|Gets a value that indicates whether this `ICorDebugEval` object is currently executing.| -|[NewArray Method](icordebugeval-newarray-method.md)|Allocates a new array of the specified element type and dimensions. (Obsolete in the .NET Framework 2.0; use [ICorDebugEval2::NewParameterizedArray](icordebugeval2-newparameterizedarray-method.md) instead.)| -|[NewObject Method](icordebugeval-newobject-method.md)|Allocates a new object instance and calls the specified constructor method. (Obsolete in the .NET Framework 2.0; use [ICorDebugEval2::NewParameterizedObject](icordebugeval2-newparameterizedobject-method.md) instead.)| -|[NewObjectNoConstructor Method](icordebugeval-newobjectnoconstructor-method.md)|Allocates a new object instance of the specified type, without attempting to call a constructor method. (Obsolete in the .NET Framework 2.0; use [ICorDebugEval2::NewParameterizedObjectNoConstructor](icordebugeval2-newparameterizedobjectnoconstructor-method.md) instead.)| -|[NewString Method](icordebugeval-newstring-method.md)|Allocates a new string object with the specified contents.| - -## Remarks - - An `ICorDebugEval` object is created in the context of a specific thread that is used to perform the evaluations. All objects and types used in a given evaluation must reside within the same application domain. That application domain need not be the same as the current application domain of the thread. Evaluations can be nested. - - The evaluation's operations do not complete until the debugger calls [ICorDebugController::Continue](icordebugcontroller-continue-method.md), and then receives an [ICorDebugManagedCallback::EvalComplete](icordebugmanagedcallback-evalcomplete-method.md) callback. If you need to use the evaluation functionality without allowing other threads to run, suspend the threads by using either [ICorDebugController::SetAllThreadsDebugState](icordebugcontroller-setallthreadsdebugstate-method.md) or [ICorDebugController::Stop](icordebugcontroller-stop-method.md) before calling [ICorDebugController::Continue](icordebugcontroller-continue-method.md). - - Because user code is running when the evaluation is in progress, any debug events can occur, including class loads and breakpoints. The debugger will receive callbacks, as normal, for these events. The state of the evaluation will be seen as part of the inspection of the normal program state. The stack chain will be a `CHAIN_FUNC_EVAL` chain (see the "CorDebugStepReason" enumeration and the [ICorDebugChain::GetReason](icordebugchain-getreason-method.md) method). The full debugger API will continue to operate as normal. - - If a deadlocked or infinite looping situation arises, the user code may never complete. In such a case, you must call [ICorDebugEval::Abort](icordebugeval-abort-method.md) before resuming the program. - +Provides methods to enable the debugger to execute code within the context of the code being debugged. + +## Methods + +|Method|Description| +|------------|-----------------| +|[Abort Method](icordebugeval-abort-method.md)|Aborts the computation this `ICorDebugEval` object is currently performing.| +|[CallFunction Method](icordebugeval-callfunction-method.md)|Sets up a call to the specified function. (Obsolete in the .NET Framework version 2.0; use [ICorDebugEval2::CallParameterizedFunction](icordebugeval2-callparameterizedfunction-method.md) instead.)| +|[CreateValue Method](icordebugeval-createvalue-method.md)|Gets an interface pointer to an "ICorDebugValue" object of the specified type, with an initial value of zero or null. (Obsolete in the .NET Framework 2.0; use [ICorDebugEval2::CreateValueForType](icordebugeval2-createvaluefortype-method.md) instead.)| +|[GetResult Method](icordebugeval-getresult-method.md)|Gets an interface pointer to an `ICorDebugValue` that contains the results of the evaluation.| +|[GetThread Method](icordebugeval-getthread-method.md)|Gets an interface pointer to the "ICorDebugThread" where this evaluation is executing or will execute.| +|[IsActive Method](icordebugeval-isactive-method.md)|Gets a value that indicates whether this `ICorDebugEval` object is currently executing.| +|[NewArray Method](icordebugeval-newarray-method.md)|Allocates a new array of the specified element type and dimensions. (Obsolete in the .NET Framework 2.0; use [ICorDebugEval2::NewParameterizedArray](icordebugeval2-newparameterizedarray-method.md) instead.)| +|[NewObject Method](icordebugeval-newobject-method.md)|Allocates a new object instance and calls the specified constructor method. (Obsolete in the .NET Framework 2.0; use [ICorDebugEval2::NewParameterizedObject](icordebugeval2-newparameterizedobject-method.md) instead.)| +|[NewObjectNoConstructor Method](icordebugeval-newobjectnoconstructor-method.md)|Allocates a new object instance of the specified type, without attempting to call a constructor method. (Obsolete in the .NET Framework 2.0; use [ICorDebugEval2::NewParameterizedObjectNoConstructor](icordebugeval2-newparameterizedobjectnoconstructor-method.md) instead.)| +|[NewString Method](icordebugeval-newstring-method.md)|Allocates a new string object with the specified contents.| + +## Remarks + + An `ICorDebugEval` object is created in the context of a specific thread that is used to perform the evaluations. All objects and types used in a given evaluation must reside within the same application domain. That application domain need not be the same as the current application domain of the thread. Evaluations can be nested. + + The evaluation's operations do not complete until the debugger calls [ICorDebugController::Continue](icordebugcontroller-continue-method.md), and then receives an [ICorDebugManagedCallback::EvalComplete](icordebugmanagedcallback-evalcomplete-method.md) callback. If you need to use the evaluation functionality without allowing other threads to run, suspend the threads by using either [ICorDebugController::SetAllThreadsDebugState](icordebugcontroller-setallthreadsdebugstate-method.md) or [ICorDebugController::Stop](icordebugcontroller-stop-method.md) before calling [ICorDebugController::Continue](icordebugcontroller-continue-method.md). + + Because user code is running when the evaluation is in progress, any debug events can occur, including class loads and breakpoints. The debugger will receive callbacks, as normal, for these events. The state of the evaluation will be seen as part of the inspection of the normal program state. The stack chain will be a `CHAIN_FUNC_EVAL` chain (see the "CorDebugStepReason" enumeration and the [ICorDebugChain::GetReason](icordebugchain-getreason-method.md) method). The full debugger API will continue to operate as normal. + + If a deadlocked or infinite looping situation arises, the user code may never complete. In such a case, you must call [ICorDebugEval::Abort](icordebugeval-abort-method.md) before resuming the program. + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugeval-newarray-method.md b/docs/framework/unmanaged-api/debugging/icordebugeval-newarray-method.md index 59510ffc72c3d..faa0aa47937c1 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugeval-newarray-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugeval-newarray-method.md @@ -2,66 +2,66 @@ description: "Learn more about: ICorDebugEval::NewArray Method" title: "ICorDebugEval::NewArray Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugEval.NewArray" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugEval::NewArray" -helpviewer_keywords: +helpviewer_keywords: - "NewArray method [.NET Framework debugging]" - "ICorDebugEval::NewArray method [.NET Framework debugging]" ms.assetid: cc79a67d-5368-434d-a943-209db90491b9 -topic_type: +topic_type: - "apiref" --- # ICorDebugEval::NewArray Method -Allocates a new array of the specified element type and dimensions. - - This method is obsolete in .NET Framework version 2.0. Use [ICorDebugEval2::NewParameterizedArray](icordebugeval2-newparameterizedarray-method.md) instead. - -## Syntax - -```cpp -HRESULT NewArray ( - [in] CorElementType elementType, - [in] ICorDebugClass *pElementClass, - [in] ULONG32 rank, - [in, size_is(rank)] ULONG32 dims[], - [in, size_is(rank)] ULONG32 lowBounds[] -); -``` - -## Parameters - - `elementType` - [in] A value of the CorElementType enumeration that specifies the element type of the array. - - `pElementClass` - [in] A pointer to a ICorDebugClass object that specifies the class of the element. This value may be null if the element type is a primitive type. - - `rank` - [in] The number of dimensions of the array. In .NET Framework 2.0, this value must be 1. - - `dims` - [in] The size, in bytes, of each dimension of the array. - - `lowBounds` - [in] Optional. The lower bound of each dimension of the array. If this value is omitted, a lower bound of zero is assumed for each dimension. - -## Remarks - - The array is always created in the application domain in which the thread is currently executing. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Allocates a new array of the specified element type and dimensions. + + This method is obsolete in .NET Framework version 2.0. Use [ICorDebugEval2::NewParameterizedArray](icordebugeval2-newparameterizedarray-method.md) instead. + +## Syntax + +```cpp +HRESULT NewArray ( + [in] CorElementType elementType, + [in] ICorDebugClass *pElementClass, + [in] ULONG32 rank, + [in, size_is(rank)] ULONG32 dims[], + [in, size_is(rank)] ULONG32 lowBounds[] +); +``` + +## Parameters + + `elementType` + [in] A value of the CorElementType enumeration that specifies the element type of the array. + + `pElementClass` + [in] A pointer to a ICorDebugClass object that specifies the class of the element. This value may be null if the element type is a primitive type. + + `rank` + [in] The number of dimensions of the array. In .NET Framework 2.0, this value must be 1. + + `dims` + [in] The size, in bytes, of each dimension of the array. + + `lowBounds` + [in] Optional. The lower bound of each dimension of the array. If this value is omitted, a lower bound of zero is assumed for each dimension. + +## Remarks + + The array is always created in the application domain in which the thread is currently executing. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** 1.1, 1.0 diff --git a/docs/framework/unmanaged-api/debugging/icordebugeval-newstring-method.md b/docs/framework/unmanaged-api/debugging/icordebugeval-newstring-method.md index 8987a741868cf..36d925f3a9a0a 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugeval-newstring-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugeval-newstring-method.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugEval::NewString Method" title: "ICorDebugEval::NewString Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugEval.NewString" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugEval::NewString" -helpviewer_keywords: +helpviewer_keywords: - "NewString method [.NET Framework debugging]" - "ICorDebugEval::NewString method [.NET Framework debugging]" ms.assetid: 29e7a14b-d50e-4852-bfda-011b76c0c9ee -topic_type: +topic_type: - "apiref" --- # ICorDebugEval::NewString Method -Allocates a new string instance with the specified contents. - -## Syntax - -```cpp -HRESULT NewString ( - [in] LPCWSTR string -); -``` - -## Parameters - - `string` - [in] Pointer to the contents for the string. - -## Remarks - - The string is always created in the application domain in which the thread is currently executing. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Allocates a new string instance with the specified contents. + +## Syntax + +```cpp +HRESULT NewString ( + [in] LPCWSTR string +); +``` + +## Parameters + + `string` + [in] Pointer to the contents for the string. + +## Remarks + + The string is always created in the application domain in which the thread is currently executing. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugeval2-callparameterizedfunction-method.md b/docs/framework/unmanaged-api/debugging/icordebugeval2-callparameterizedfunction-method.md index ef171743e695a..2a21372b3db16 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugeval2-callparameterizedfunction-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugeval2-callparameterizedfunction-method.md @@ -2,68 +2,68 @@ description: "Learn more about: ICorDebugEval2::CallParameterizedFunction Method" title: "ICorDebugEval2::CallParameterizedFunction Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugEval2.CallParameterizedFunction" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugEval2::CallParameterizedFunction" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugEval2::CallParameterizedFunction method [.NET Framework debugging]" - "CallParameterizedFunction method [.NET Framework debugging]" ms.assetid: 72f54a45-dbe6-4bb4-8c99-e879a27368e5 -topic_type: +topic_type: - "apiref" --- # ICorDebugEval2::CallParameterizedFunction Method -Sets up a call to the specified ICorDebugFunction, which can be nested inside a class whose constructor takes parameters, or can itself take parameters. - -## Syntax - -```cpp -HRESULT CallParameterizedFunction ( - [in] ICorDebugFunction *pFunction, - [in] ULONG32 nTypeArgs, - [in, size_is(nTypeArgs)] ICorDebugType *ppTypeArgs[], - [in] ULONG32 nArgs, - [in, size_is(nArgs)] ICorDebugValue *ppArgs[] -); -``` - -## Parameters - - `pFunction` - [in] A pointer to an `ICorDebugFunction` object that represents the function to be called. - - `nTypeArgs` - [in] The number of arguments that the function takes. - - `ppTypeArgs` - [in] An array of pointers, each of which points to an ICorDebugType object that represents a function argument. - - `nArgs` - [in] The number of values passed in the function. - - `ppArgs` - [in] An array of pointers, each of which points to an ICorDebugValue object that represents a value passed in a function argument. - -## Remarks - - `CallParameterizedFunction` is like [ICorDebugEval::CallFunction](icordebugeval-callfunction-method.md) except that the function may be inside a class with type parameters, may itself take type parameters, or both. The type arguments should be given first for the class, and then for the function. - - If the function is in a different application domain, a transition will occur. However, all type and value arguments must be in the target application domain. - - Function evaluation can be performed only in limited scenarios. If `CallParameterizedFunction` or `ICorDebugEval::CallFunction` fails, the returned HRESULT will indicate the most general possible reason for failure. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Sets up a call to the specified ICorDebugFunction, which can be nested inside a class whose constructor takes parameters, or can itself take parameters. + +## Syntax + +```cpp +HRESULT CallParameterizedFunction ( + [in] ICorDebugFunction *pFunction, + [in] ULONG32 nTypeArgs, + [in, size_is(nTypeArgs)] ICorDebugType *ppTypeArgs[], + [in] ULONG32 nArgs, + [in, size_is(nArgs)] ICorDebugValue *ppArgs[] +); +``` + +## Parameters + + `pFunction` + [in] A pointer to an `ICorDebugFunction` object that represents the function to be called. + + `nTypeArgs` + [in] The number of arguments that the function takes. + + `ppTypeArgs` + [in] An array of pointers, each of which points to an ICorDebugType object that represents a function argument. + + `nArgs` + [in] The number of values passed in the function. + + `ppArgs` + [in] An array of pointers, each of which points to an ICorDebugValue object that represents a value passed in a function argument. + +## Remarks + + `CallParameterizedFunction` is like [ICorDebugEval::CallFunction](icordebugeval-callfunction-method.md) except that the function may be inside a class with type parameters, may itself take type parameters, or both. The type arguments should be given first for the class, and then for the function. + + If the function is in a different application domain, a transition will occur. However, all type and value arguments must be in the target application domain. + + Function evaluation can be performed only in limited scenarios. If `CallParameterizedFunction` or `ICorDebugEval::CallFunction` fails, the returned HRESULT will indicate the most general possible reason for failure. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugeval2-createvaluefortype-method.md b/docs/framework/unmanaged-api/debugging/icordebugeval2-createvaluefortype-method.md index 825da34d69a01..79dda714ca42e 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugeval2-createvaluefortype-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugeval2-createvaluefortype-method.md @@ -2,54 +2,54 @@ description: "Learn more about: ICorDebugEval2::CreateValueForType Method" title: "ICorDebugEval2::CreateValueForType Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugEval2.CreateValueForType" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugEval2::CreateValueForType" -helpviewer_keywords: +helpviewer_keywords: - "CreateValueForType method [.NET Framework debugging]" - "ICorDebugEval2::CreateValueForType method [.NET Framework debugging]" ms.assetid: ea38ae20-7e0a-427a-be77-d78fae719d82 -topic_type: +topic_type: - "apiref" --- # ICorDebugEval2::CreateValueForType Method -Gets a pointer to a new ICorDebugValue of the specified type, with an initial value of zero or null. - -## Syntax - -```cpp -HRESULT CreateValueForType ( - [in] ICorDebugType *pType, - [out] ICorDebugValue **ppValue -); -``` - -## Parameters - - `pType` - [in] Pointer to an ICorDebugType object that represents the type. - - `ppValue` - [out] Pointer to the address of an `ICorDebugValue` object that represents the value. - -## Remarks - - `CreateValueForType` generalizes [ICorDebugEval::CreateValue](icordebugeval-createvalue-method.md) by allowing you to specify an arbitrary object type, including constructed types such as `List`. The only purpose of this method is to generate a value that can be passed to a function evaluation. - - The type must be a class or a value type. You cannot use this method to create array values or string values. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets a pointer to a new ICorDebugValue of the specified type, with an initial value of zero or null. + +## Syntax + +```cpp +HRESULT CreateValueForType ( + [in] ICorDebugType *pType, + [out] ICorDebugValue **ppValue +); +``` + +## Parameters + + `pType` + [in] Pointer to an ICorDebugType object that represents the type. + + `ppValue` + [out] Pointer to the address of an `ICorDebugValue` object that represents the value. + +## Remarks + + `CreateValueForType` generalizes [ICorDebugEval::CreateValue](icordebugeval-createvalue-method.md) by allowing you to specify an arbitrary object type, including constructed types such as `List`. The only purpose of this method is to generate a value that can be passed to a function evaluation. + + The type must be a class or a value type. You cannot use this method to create array values or string values. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugeval2-interface.md b/docs/framework/unmanaged-api/debugging/icordebugeval2-interface.md index e2a488fc60444..93c21d04101e0 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugeval2-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugeval2-interface.md @@ -2,51 +2,51 @@ description: "Learn more about: ICorDebugEval2 Interface" title: "ICorDebugEval2 Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugEval2" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugEval2" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugEval2 interface [.NET Framework debugging]" ms.assetid: fce34531-2687-406d-9131-d6ad94f2ce0e -topic_type: +topic_type: - "apiref" --- # ICorDebugEval2 Interface -Extends "ICorDebugEval" to provide support for generic types. - -## Methods - -|Method|Description| -|------------|-----------------| -|[CallParameterizedFunction Method](icordebugeval2-callparameterizedfunction-method.md)|Sets up a call to the specified "ICorDebugFunction", which can be nested inside a type whose constructor takes type parameters, or can itself take type parameters.| -|[CreateValueForType Method](icordebugeval2-createvaluefortype-method.md)|Gets a pointer to a new "ICorDebugValue" of the specified type, with an initial value of null or zero.| -|[NewParameterizedArray Method](icordebugeval2-newparameterizedarray-method.md)|Allocates a new array of the specified element type and dimensions.| -|[NewParameterizedObject Method](icordebugeval2-newparameterizedobject-method.md)|Instantiates a new parameterized type object and calls the object's constructor method.| -|[NewParameterizedObjectNoConstructor Method](icordebugeval2-newparameterizedobjectnoconstructor-method.md)|Instantiates a new parameterized type object of the specified class without attempting to call a constructor method| -|[NewStringWithLength Method](icordebugeval2-newstringwithlength-method.md)|Creates a new string of the specified length with the specified contents.| -|[RudeAbort Method](icordebugeval2-rudeabort-method.md)|Aborts the computation that this `ICorDebugEval2` is currently performing.| - -## Remarks - +Extends "ICorDebugEval" to provide support for generic types. + +## Methods + +|Method|Description| +|------------|-----------------| +|[CallParameterizedFunction Method](icordebugeval2-callparameterizedfunction-method.md)|Sets up a call to the specified "ICorDebugFunction", which can be nested inside a type whose constructor takes type parameters, or can itself take type parameters.| +|[CreateValueForType Method](icordebugeval2-createvaluefortype-method.md)|Gets a pointer to a new "ICorDebugValue" of the specified type, with an initial value of null or zero.| +|[NewParameterizedArray Method](icordebugeval2-newparameterizedarray-method.md)|Allocates a new array of the specified element type and dimensions.| +|[NewParameterizedObject Method](icordebugeval2-newparameterizedobject-method.md)|Instantiates a new parameterized type object and calls the object's constructor method.| +|[NewParameterizedObjectNoConstructor Method](icordebugeval2-newparameterizedobjectnoconstructor-method.md)|Instantiates a new parameterized type object of the specified class without attempting to call a constructor method| +|[NewStringWithLength Method](icordebugeval2-newstringwithlength-method.md)|Creates a new string of the specified length with the specified contents.| +|[RudeAbort Method](icordebugeval2-rudeabort-method.md)|Aborts the computation that this `ICorDebugEval2` is currently performing.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugeval2-newparameterizedarray-method.md b/docs/framework/unmanaged-api/debugging/icordebugeval2-newparameterizedarray-method.md index ee7a85b9cf0d7..6ee336bf6a224 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugeval2-newparameterizedarray-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugeval2-newparameterizedarray-method.md @@ -2,60 +2,60 @@ description: "Learn more about: ICorDebugEval2::NewParameterizedArray Method" title: "ICorDebugEval2::NewParameterizedArray Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugEval2.NewParameterizedArray" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugEval2::NewParameterizedArray" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugEval2::NewParameterizedArray method [.NET Framework debugging]" - "NewParameterizedArray method [.NET Framework debugging]" ms.assetid: 45efb8ba-c4de-4109-945f-e734d376b43c -topic_type: +topic_type: - "apiref" --- # ICorDebugEval2::NewParameterizedArray Method -Allocates a new array of the specified element type and dimensions. - -## Syntax - -```cpp -HRESULT NewParameterizedArray( - [in] ICorDebugType *pElementType, - [in] ULONG32 rank, - [in, size_is(rank)] ULONG32 dims[], - [in, size_is(rank)] ULONG32 lowBounds[] -); -``` - -## Parameters - - `pElementType` - [in] A pointer to an ICorDebugType object that represents the type of element stored in the array. - - `rank` - [in] The number of dimensions of the array. In .NET Framework version 2.0, this value must be 1. - - `dims` - [in] The size, in bytes, of each dimension of the array. - - `lowBounds` - [in] Optional. The lower bound of each dimension of the array. If this value is omitted, a lower bound of zero is assumed for each dimension. - -## Remarks - - The elements of the array may be instances of a generic type. The array is always created in the application domain in which the thread is currently running. In .NET Framework 2.0, the value of `rank` must be 1. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Allocates a new array of the specified element type and dimensions. + +## Syntax + +```cpp +HRESULT NewParameterizedArray( + [in] ICorDebugType *pElementType, + [in] ULONG32 rank, + [in, size_is(rank)] ULONG32 dims[], + [in, size_is(rank)] ULONG32 lowBounds[] +); +``` + +## Parameters + + `pElementType` + [in] A pointer to an ICorDebugType object that represents the type of element stored in the array. + + `rank` + [in] The number of dimensions of the array. In .NET Framework version 2.0, this value must be 1. + + `dims` + [in] The size, in bytes, of each dimension of the array. + + `lowBounds` + [in] Optional. The lower bound of each dimension of the array. If this value is omitted, a lower bound of zero is assumed for each dimension. + +## Remarks + + The elements of the array may be instances of a generic type. The array is always created in the application domain in which the thread is currently running. In .NET Framework 2.0, the value of `rank` must be 1. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugeval2-newparameterizedobject-method.md b/docs/framework/unmanaged-api/debugging/icordebugeval2-newparameterizedobject-method.md index a9f2f7c615090..88db31e690f7b 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugeval2-newparameterizedobject-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugeval2-newparameterizedobject-method.md @@ -2,64 +2,64 @@ description: "Learn more about: ICorDebugEval2::NewParameterizedObject Method" title: "ICorDebugEval2::NewParameterizedObject Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugEval2.NewParameterizedObject" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugEval2::NewParameterizedObject" -helpviewer_keywords: +helpviewer_keywords: - "NewParameterizedObject method [.NET Framework debugging]" - "ICorDebugEval2::NewParameterizedObject method [.NET Framework debugging]" ms.assetid: 3d705463-e640-4249-8036-4e8206d03cfe -topic_type: +topic_type: - "apiref" --- # ICorDebugEval2::NewParameterizedObject Method -Instantiates a new parameterized type object and calls the object's constructor method. - -## Syntax - -```cpp -HRESULT NewParameterizedObject ( - [in] ICorDebugFunction *pConstructor, - [in] ULONG32 nTypeArgs, - [in, size_is(nTypeArgs)] ICorDebugType *ppTypeArgs[], - [in] ULONG32 nArgs, - [in, size_is(nArgs)] ICorDebugValue *ppArgs[] -); -``` - -## Parameters - - `pConstructor` - [in] A pointer to an ICorDebugFunction object that represents the constructor of the object to be instantiated. - - `nTypeArgs` - [in] The number of type arguments passed. - - `ppTypeArgs` - [in] An array of pointers, each of which points to an ICorDebugType object that represents a type argument for the object that is being instantiated. - - `nArgs` - [in] The number of arguments passed to the constructor. - - `ppArgs` - [in] An array of pointers, each of which points to an ICorDebugValue object that represents an argument value that is passed to the constructor. - -## Remarks - - The object's constructor may take parameters. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Instantiates a new parameterized type object and calls the object's constructor method. + +## Syntax + +```cpp +HRESULT NewParameterizedObject ( + [in] ICorDebugFunction *pConstructor, + [in] ULONG32 nTypeArgs, + [in, size_is(nTypeArgs)] ICorDebugType *ppTypeArgs[], + [in] ULONG32 nArgs, + [in, size_is(nArgs)] ICorDebugValue *ppArgs[] +); +``` + +## Parameters + + `pConstructor` + [in] A pointer to an ICorDebugFunction object that represents the constructor of the object to be instantiated. + + `nTypeArgs` + [in] The number of type arguments passed. + + `ppTypeArgs` + [in] An array of pointers, each of which points to an ICorDebugType object that represents a type argument for the object that is being instantiated. + + `nArgs` + [in] The number of arguments passed to the constructor. + + `ppArgs` + [in] An array of pointers, each of which points to an ICorDebugValue object that represents an argument value that is passed to the constructor. + +## Remarks + + The object's constructor may take parameters. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugeval2-newparameterizedobjectnoconstructor-method.md b/docs/framework/unmanaged-api/debugging/icordebugeval2-newparameterizedobjectnoconstructor-method.md index a44af5c221874..dc3975d7697f2 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugeval2-newparameterizedobjectnoconstructor-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugeval2-newparameterizedobjectnoconstructor-method.md @@ -2,56 +2,56 @@ description: "Learn more about: ICorDebugEval2::NewParameterizedObjectNoConstructor Method" title: "ICorDebugEval2::NewParameterizedObjectNoConstructor Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugEval2.NewParameterizedObjectNoConstructor" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugEval2::NewParameterizedObjectNoConstructor" -helpviewer_keywords: +helpviewer_keywords: - "NewParameterizedObjectNoConstructor method [.NET Framework debugging]" - "ICorDebugEval2::NewParameterizedObjectNoConstructor method [.NET Framework debugging]" ms.assetid: f15b5b78-94f4-4eb9-b3b3-a621272f357c -topic_type: +topic_type: - "apiref" --- # ICorDebugEval2::NewParameterizedObjectNoConstructor Method -Instantiates a new parameterized type object of the specified class without attempting to call a constructor method. - -## Syntax - -```cpp -HRESULT NewParameterizedObjectNoConstructor ( - [in] ICorDebugClass *pClass, - [in] ULONG32 nTypeArgs, - [in, size_is(nTypeArgs)] ICorDebugType *ppTypeArgs[] -); -``` - -## Parameters - - `pClass` - [in] A pointer to an ICorDebugClass object that represents the class of the object to be instantiated. - - `nTypeArgs` - [in] The number of type arguments passed. - - `ppTypeArgs` - [in] An array of pointers, each of which points to an ICorDebugType object that represents a type argument for the object that is being instantiated. - -## Remarks - - The `NewParameterizedObjectNoConstructor` method will fail if an incorrect number of type arguments or the wrong types of type arguments are passed. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Instantiates a new parameterized type object of the specified class without attempting to call a constructor method. + +## Syntax + +```cpp +HRESULT NewParameterizedObjectNoConstructor ( + [in] ICorDebugClass *pClass, + [in] ULONG32 nTypeArgs, + [in, size_is(nTypeArgs)] ICorDebugType *ppTypeArgs[] +); +``` + +## Parameters + + `pClass` + [in] A pointer to an ICorDebugClass object that represents the class of the object to be instantiated. + + `nTypeArgs` + [in] The number of type arguments passed. + + `ppTypeArgs` + [in] An array of pointers, each of which points to an ICorDebugType object that represents a type argument for the object that is being instantiated. + +## Remarks + + The `NewParameterizedObjectNoConstructor` method will fail if an incorrect number of type arguments or the wrong types of type arguments are passed. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugeval2-newstringwithlength-method.md b/docs/framework/unmanaged-api/debugging/icordebugeval2-newstringwithlength-method.md index 275372b3884a0..e097db35ef166 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugeval2-newstringwithlength-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugeval2-newstringwithlength-method.md @@ -2,54 +2,54 @@ description: "Learn more about: ICorDebugEval2::NewStringWithLength Method" title: "ICorDebugEval2::NewStringWithLength Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugEval2.NewStringWithLength" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugEval2::NewStringWithLength" -helpviewer_keywords: +helpviewer_keywords: - "NewStringWithLength method [.NET Framework debugging]" - "ICorDebugEval2::NewStringWithLength method [.NET Framework debugging]" ms.assetid: d5f54a34-6335-4708-b407-a756ec70fab4 -topic_type: +topic_type: - "apiref" --- # ICorDebugEval2::NewStringWithLength Method -Creates a string of the specified length, with the specified contents. - -## Syntax - -```cpp -HRESULT NewStringWithLength ( - [in] LPCWSTR string, - [in] UINT uiLength -); -``` - -## Parameters - - `string` - [in] A pointer to the string value. - - `uiLength` - [in] Length of the string. - -## Remarks - - If the string's trailing null character is expected to be in the managed string, the caller of the `NewStringWithLength` method must ensure that the string length includes the trailing null character. - - The string is always created in the application domain in which the thread is currently executing. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Creates a string of the specified length, with the specified contents. + +## Syntax + +```cpp +HRESULT NewStringWithLength ( + [in] LPCWSTR string, + [in] UINT uiLength +); +``` + +## Parameters + + `string` + [in] A pointer to the string value. + + `uiLength` + [in] Length of the string. + +## Remarks + + If the string's trailing null character is expected to be in the managed string, the caller of the `NewStringWithLength` method must ensure that the string length includes the trailing null character. + + The string is always created in the application domain in which the thread is currently executing. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugeval2-rudeabort-method.md b/docs/framework/unmanaged-api/debugging/icordebugeval2-rudeabort-method.md index 70d15ebbe8a74..c482585147aea 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugeval2-rudeabort-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugeval2-rudeabort-method.md @@ -2,41 +2,41 @@ description: "Learn more about: ICorDebugEval2::RudeAbort Method" title: "ICorDebugEval2::RudeAbort Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugEval2.RudeAbort" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugEval2::RudeAbort" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugEval2::RudeAbort method [.NET Framework debugging]" - "RudeAbort method, ICorDebugEval2 interface [.NET Framework debugging]" ms.assetid: 02468edf-d32b-4cb3-aaa8-3dd2abfc8b25 -topic_type: +topic_type: - "apiref" --- # ICorDebugEval2::RudeAbort Method -Aborts the computation that this `ICorDebugEval2` is currently performing. - -## Syntax - -```cpp -HRESULT RudeAbort (); -``` - -## Remarks - - `RudeAbort` does not release any locks that the evaluator holds, so it leaves the debugging session in an unsafe state. Call this method with extreme caution. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Aborts the computation that this `ICorDebugEval2` is currently performing. + +## Syntax + +```cpp +HRESULT RudeAbort (); +``` + +## Remarks + + `RudeAbort` does not release any locks that the evaluator holds, so it leaves the debugging session in an unsafe state. Call this method with extreme caution. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugexceptiondebugevent-getflags-method.md b/docs/framework/unmanaged-api/debugging/icordebugexceptiondebugevent-getflags-method.md index ebccfe058fc91..4053312b11d8c 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugexceptiondebugevent-getflags-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugexceptiondebugevent-getflags-method.md @@ -6,36 +6,36 @@ ms.assetid: 73225303-8852-487e-9a0e-9f0cb95e99d9 --- # ICorDebugExceptionDebugEvent::GetFlags Method -Gets a flag that indicates whether the exception can be intercepted. - -## Syntax - -```cpp -HRESULT GetFlags( - [out] CorDebugExceptionFlags *pdwFlags -); -``` - -## Parameters - - `pdwFlags` - [out] A pointer to a [CorDebugExceptionFlags](cordebugexceptionflags-enumeration.md) value that indicates whether the exception can be intercepted. - -## Remarks - +Gets a flag that indicates whether the exception can be intercepted. + +## Syntax + +```cpp +HRESULT GetFlags( + [out] CorDebugExceptionFlags *pdwFlags +); +``` + +## Parameters + + `pdwFlags` + [out] A pointer to a [CorDebugExceptionFlags](cordebugexceptionflags-enumeration.md) value that indicates whether the exception can be intercepted. + +## Remarks + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugExceptionDebugEvent Interface](icordebugexceptiondebugevent-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugexceptiondebugevent-getnativeip-method.md b/docs/framework/unmanaged-api/debugging/icordebugexceptiondebugevent-getnativeip-method.md index 7f479fc1502cb..df62779cd070e 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugexceptiondebugevent-getnativeip-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugexceptiondebugevent-getnativeip-method.md @@ -6,47 +6,47 @@ ms.assetid: 12e6a262-d9ac-49b8-9b80-1e653a2a3819 --- # ICorDebugExceptionDebugEvent::GetNativeIP Method -Gets the native instruction pointer for this exception debug event. - -## Syntax - -```cpp -HRESULT GetNativeIP( - [out]CORDB_ADDRESS *pIP -); -``` - -## Parameters - - `pIP` - [out] A pointer to the instruction pointer for this exception debug event. See the Remarks section for more information. - -## Remarks - - The meaning of this instruction pointer depends on the event type, as shown in the following table. - -|Event type|Meaning of `pStackPointer` value| -|----------------|--------------------------------------| -|[MANAGED_EXCEPTION_FIRST_CHANCE](cordebugrecordformat-enumeration.md)|The address of the faulting instruction.| -|[MANAGED_EXCEPTION_USER_FIRST_CHANCE](cordebugrecordformat-enumeration.md)|The code address in the frame indicated by the [GetStackPointer](icordebugexceptiondebugevent-getstackpointer-method.md) method where execution would resume if no exception had been raised. The exception may or may not cause different code, such as the catch block of a `try/catch/finally` clause, to be executed in this frame.| -|[MANAGED_EXCEPTION_CATCH_HANDLER_FOUND](cordebugrecordformat-enumeration.md)|The code address where `catch` handler execution will start in the frame indicated by the [GetStackPointer](icordebugexceptiondebugevent-getstackpointer-method.md) method.| -|[MANAGED_EXCEPTION_UNHANDLED](cordebugrecordformat-enumeration.md)|`pIP` is 0.| - - The event type is available from the [ICorDebugDebugEvent::GetEventKind](icordebugdebugevent-geteventkind-method.md) method. - +Gets the native instruction pointer for this exception debug event. + +## Syntax + +```cpp +HRESULT GetNativeIP( + [out]CORDB_ADDRESS *pIP +); +``` + +## Parameters + + `pIP` + [out] A pointer to the instruction pointer for this exception debug event. See the Remarks section for more information. + +## Remarks + + The meaning of this instruction pointer depends on the event type, as shown in the following table. + +|Event type|Meaning of `pStackPointer` value| +|----------------|--------------------------------------| +|[MANAGED_EXCEPTION_FIRST_CHANCE](cordebugrecordformat-enumeration.md)|The address of the faulting instruction.| +|[MANAGED_EXCEPTION_USER_FIRST_CHANCE](cordebugrecordformat-enumeration.md)|The code address in the frame indicated by the [GetStackPointer](icordebugexceptiondebugevent-getstackpointer-method.md) method where execution would resume if no exception had been raised. The exception may or may not cause different code, such as the catch block of a `try/catch/finally` clause, to be executed in this frame.| +|[MANAGED_EXCEPTION_CATCH_HANDLER_FOUND](cordebugrecordformat-enumeration.md)|The code address where `catch` handler execution will start in the frame indicated by the [GetStackPointer](icordebugexceptiondebugevent-getstackpointer-method.md) method.| +|[MANAGED_EXCEPTION_UNHANDLED](cordebugrecordformat-enumeration.md)|`pIP` is 0.| + + The event type is available from the [ICorDebugDebugEvent::GetEventKind](icordebugdebugevent-geteventkind-method.md) method. + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugExceptionDebugEvent Interface](icordebugexceptiondebugevent-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugexceptiondebugevent-getstackpointer-method.md b/docs/framework/unmanaged-api/debugging/icordebugexceptiondebugevent-getstackpointer-method.md index f0067d37b6015..ca5ba9dcf04fe 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugexceptiondebugevent-getstackpointer-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugexceptiondebugevent-getstackpointer-method.md @@ -6,47 +6,47 @@ ms.assetid: d8f66a1c-16be-4264-afc5-bc2dfbb4a682 --- # ICorDebugExceptionDebugEvent::GetStackPointer Method -Gets the stack pointer for this exception debug event. - -## Syntax - -```cpp -HRESULT GetStackPointer( - [out]CORDB_ADDRESS *pStackPointer -); -``` - -## Parameters - - `pStackPointer` - [out] A pointer to the address of the stack pointer for this exception debug event. See the Remarks section for more information. - -## Remarks - - The meaning of this stack pointer depends on the event type, as shown in the following table. - -|Event type|Meaning of `pStackPointer` value| -|----------------|--------------------------------------| -|[MANAGED_EXCEPTION_FIRST_CHANCE](cordebugrecordformat-enumeration.md)|The stack pointer for the frame that threw the exception.| -|[MANAGED_EXCEPTION_USER_FIRST_CHANCE](cordebugrecordformat-enumeration.md)|The stack pointer for the user-code frame closest to the point of the thrown exception.| -|[MANAGED_EXCEPTION_CATCH_HANDLER_FOUND](cordebugrecordformat-enumeration.md)|The stack pointer for the frame that contains the catch handler.| -|[MANAGED_EXCEPTION_UNHANDLED](cordebugrecordformat-enumeration.md)|`pStackPointer` is **null**.| - +Gets the stack pointer for this exception debug event. + +## Syntax + +```cpp +HRESULT GetStackPointer( + [out]CORDB_ADDRESS *pStackPointer +); +``` + +## Parameters + + `pStackPointer` + [out] A pointer to the address of the stack pointer for this exception debug event. See the Remarks section for more information. + +## Remarks + + The meaning of this stack pointer depends on the event type, as shown in the following table. + +|Event type|Meaning of `pStackPointer` value| +|----------------|--------------------------------------| +|[MANAGED_EXCEPTION_FIRST_CHANCE](cordebugrecordformat-enumeration.md)|The stack pointer for the frame that threw the exception.| +|[MANAGED_EXCEPTION_USER_FIRST_CHANCE](cordebugrecordformat-enumeration.md)|The stack pointer for the user-code frame closest to the point of the thrown exception.| +|[MANAGED_EXCEPTION_CATCH_HANDLER_FOUND](cordebugrecordformat-enumeration.md)|The stack pointer for the frame that contains the catch handler.| +|[MANAGED_EXCEPTION_UNHANDLED](cordebugrecordformat-enumeration.md)|`pStackPointer` is **null**.| + > [!NOTE] -> This method is available with .NET Native only. - - The event type is available from the [ICorDebugDebugEvent::GetEventKind](icordebugdebugevent-geteventkind-method.md) method. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + + The event type is available from the [ICorDebugDebugEvent::GetEventKind](icordebugdebugevent-geteventkind-method.md) method. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugExceptionDebugEvent Interface](icordebugexceptiondebugevent-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugexceptiondebugevent-interface.md b/docs/framework/unmanaged-api/debugging/icordebugexceptiondebugevent-interface.md index a4b89acd47019..70336bc55ad54 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugexceptiondebugevent-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugexceptiondebugevent-interface.md @@ -6,41 +6,41 @@ ms.assetid: f9ba60d8-b54d-417e-bb3e-fde4b41ca44c --- # ICorDebugExceptionDebugEvent Interface -Extends the [ICorDebugDebugEvent](icordebugdebugevent-interface.md) interface to support exception events. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetFlags Method](icordebugexceptiondebugevent-getflags-method.md)|Gets a flag that indicates whether the exception is can be intercepted.| -|[GetNativeIP Method](icordebugexceptiondebugevent-getnativeip-method.md)|Gets the native interface pointer for this exception debug event.| -|[GetStackPointer Method](icordebugexceptiondebugevent-getstackpointer-method.md)|Gets the stack pointer for this exception debug event.| - -## Remarks - - The `ICorDebugExceptionDebugEvent` interface is implemented by the following event types: - -- [MANAGED_EXCEPTION_FIRST_CHANCE](cordebugrecordformat-enumeration.md) - -- [MANAGED_EXCEPTION_USER_FIRST_CHANCE](cordebugrecordformat-enumeration.md) - -- [MANAGED_EXCEPTION_CATCH_HANDLER_FOUND](cordebugrecordformat-enumeration.md) - -- [MANAGED_EXCEPTION_UNHANDLED](cordebugrecordformat-enumeration.md) - +Extends the [ICorDebugDebugEvent](icordebugdebugevent-interface.md) interface to support exception events. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetFlags Method](icordebugexceptiondebugevent-getflags-method.md)|Gets a flag that indicates whether the exception is can be intercepted.| +|[GetNativeIP Method](icordebugexceptiondebugevent-getnativeip-method.md)|Gets the native interface pointer for this exception debug event.| +|[GetStackPointer Method](icordebugexceptiondebugevent-getstackpointer-method.md)|Gets the stack pointer for this exception debug event.| + +## Remarks + + The `ICorDebugExceptionDebugEvent` interface is implemented by the following event types: + +- [MANAGED_EXCEPTION_FIRST_CHANCE](cordebugrecordformat-enumeration.md) + +- [MANAGED_EXCEPTION_USER_FIRST_CHANCE](cordebugrecordformat-enumeration.md) + +- [MANAGED_EXCEPTION_CATCH_HANDLER_FOUND](cordebugrecordformat-enumeration.md) + +- [MANAGED_EXCEPTION_UNHANDLED](cordebugrecordformat-enumeration.md) + > [!NOTE] -> The interface is available with .NET Native only. Attempting to call `QueryInterface` to retrieve an interface pointer returns `E_NOINTERFACE` for ICorDebug scenarios outside of .NET Native. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> The interface is available with .NET Native only. Attempting to call `QueryInterface` to retrieve an interface pointer returns `E_NOINTERFACE` for ICorDebug scenarios outside of .NET Native. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugexceptionobjectcallstackenum-interface.md b/docs/framework/unmanaged-api/debugging/icordebugexceptionobjectcallstackenum-interface.md index c9a6cd5e53c4d..dd0fc628e6bfe 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugexceptionobjectcallstackenum-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugexceptionobjectcallstackenum-interface.md @@ -2,46 +2,46 @@ description: "Learn more about: ICorDebugExceptionObjectCallStackEnum Interface" title: "ICorDebugExceptionObjectCallStackEnum Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugExceptionObjectCallStackEnum" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugExceptionObjectCallStackEnum" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugExceptionObjectCallStackEnum interface [.NET Framework debugging]" ms.assetid: 39dffa18-c71b-48c4-b11d-e814631ab1e9 -topic_type: +topic_type: - "apiref" --- # ICorDebugExceptionObjectCallStackEnum Interface -Provides an enumerator for call stack information that is embedded in an exception object. This interface is a subclass of the ICorDebugEnum interface. - -## Methods - -|Method|Description| -|------------|-----------------| -|[ICorDebugExceptionObjectCallStackEnum::Next](icordebugexceptionobjectcallstackenum-next-method.md)|Gets a specified number of [CorDebugExceptionObjectStackFrame](cordebugexceptionobjectstackframe-structure.md) objects that contain information about an exception object's call stack.| - -## Remarks - - The `ICorDebugExceptionObjectCallStackEnum` interface implements the ICorDebugEnum interface. - - An `ICorDebugExceptionObjectCallStackEnum` instance is populated with [CorDebugExceptionObjectStackFrame](cordebugexceptionobjectstackframe-structure.md) objects by calling the [ICorDebugExceptionObjectValue::EnumerateExceptionCallStack](icordebugexceptionobjectvalue-enumerateexceptioncallstack-method.md) method. The call stack items in the collection can be enumerated by calling the [ICorDebugExceptionObjectCallStackEnum::Next](icordebugexceptionobjectcallstackenum-next-method.md) method - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - +Provides an enumerator for call stack information that is embedded in an exception object. This interface is a subclass of the ICorDebugEnum interface. + +## Methods + +|Method|Description| +|------------|-----------------| +|[ICorDebugExceptionObjectCallStackEnum::Next](icordebugexceptionobjectcallstackenum-next-method.md)|Gets a specified number of [CorDebugExceptionObjectStackFrame](cordebugexceptionobjectstackframe-structure.md) objects that contain information about an exception object's call stack.| + +## Remarks + + The `ICorDebugExceptionObjectCallStackEnum` interface implements the ICorDebugEnum interface. + + An `ICorDebugExceptionObjectCallStackEnum` instance is populated with [CorDebugExceptionObjectStackFrame](cordebugexceptionobjectstackframe-structure.md) objects by calling the [ICorDebugExceptionObjectValue::EnumerateExceptionCallStack](icordebugexceptionobjectvalue-enumerateexceptioncallstack-method.md) method. The call stack items in the collection can be enumerated by calling the [ICorDebugExceptionObjectCallStackEnum::Next](icordebugexceptionobjectcallstackenum-next-method.md) method + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugexceptionobjectcallstackenum-next-method.md b/docs/framework/unmanaged-api/debugging/icordebugexceptionobjectcallstackenum-next-method.md index 49793036f6bfb..d6f8347f54316 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugexceptionobjectcallstackenum-next-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugexceptionobjectcallstackenum-next-method.md @@ -2,58 +2,58 @@ description: "Learn more about: ICorDebugExceptionObjectCallStackEnum::Next Method" title: "ICorDebugExceptionObjectCallStackEnum::Next Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugExceptionObjectCallStackEnum::Next" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugExceptionObjectCallStackEnum::Next" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugExceptionObjectCallStackEnum::Next method [.NET Framework debugging]" - "Next method, ICorDebugExceptionObjectCallStackEnum interface [.NET Framework debugging]" ms.assetid: 3328a2c0-1e48-4a54-802a-9b474cf82c21 -topic_type: +topic_type: - "apiref" --- # ICorDebugExceptionObjectCallStackEnum::Next Method -Gets the specified number of [CorDebugExceptionObjectStackFrame](cordebugexceptionobjectstackframe-structure.md) instances that contain information from an exception object's call stack. - -## Syntax - -```cpp -HRESULT Next( - [in] ULONG celt, - [out, size_is(celt), length_is(*pceltFetched)] CorDebugExceptionObjectStackFrame values[], - [out] ULONG *pceltFetched -); -``` - -## Parameters - - `celt` - [in] The number of [CorDebugExceptionObjectStackFrame](cordebugexceptionobjectstackframe-structure.md) instances to be retrieved. - - `values` - [out] An array of pointers, each of which points to a [CorDebugExceptionObjectStackFrame](cordebugexceptionobjectstackframe-structure.md) object. - - `pceltFetched` - [out] A pointer to the number of [CorDebugExceptionObjectStackFrame](cordebugexceptionobjectstackframe-structure.md) instances actually returned. - -## Remarks - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - +Gets the specified number of [CorDebugExceptionObjectStackFrame](cordebugexceptionobjectstackframe-structure.md) instances that contain information from an exception object's call stack. + +## Syntax + +```cpp +HRESULT Next( + [in] ULONG celt, + [out, size_is(celt), length_is(*pceltFetched)] CorDebugExceptionObjectStackFrame values[], + [out] ULONG *pceltFetched +); +``` + +## Parameters + + `celt` + [in] The number of [CorDebugExceptionObjectStackFrame](cordebugexceptionobjectstackframe-structure.md) instances to be retrieved. + + `values` + [out] An array of pointers, each of which points to a [CorDebugExceptionObjectStackFrame](cordebugexceptionobjectstackframe-structure.md) object. + + `pceltFetched` + [out] A pointer to the number of [CorDebugExceptionObjectStackFrame](cordebugexceptionobjectstackframe-structure.md) instances actually returned. + +## Remarks + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [ICorDebugExceptionObjectCallStackEnum Interface](icordebugexceptionobjectcallstackenum-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugexceptionobjectvalue-enumerateexceptioncallstack-method.md b/docs/framework/unmanaged-api/debugging/icordebugexceptionobjectvalue-enumerateexceptioncallstack-method.md index d7091f8bfd4de..e814d313fd335 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugexceptionobjectvalue-enumerateexceptioncallstack-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugexceptionobjectvalue-enumerateexceptioncallstack-method.md @@ -2,54 +2,54 @@ description: "Learn more about: ICorDebugExceptionObjectValue::EnumerateExceptionCallStack Method" title: "ICorDebugExceptionObjectValue::EnumerateExceptionCallStack Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugExceptionObjectValue.EnumerateExceptionCallStack" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugExceptionObjectValue::EnumerateExceptionCallStack" -helpviewer_keywords: +helpviewer_keywords: - "EnumerateExceptionCallStack method, ICorDebugExceptionObjectValue interface [.NET Framework debugging]" - "ICorDebugExceptionObjectValue::EnumerateExceptionCallStack method [.NET Framework debugging]" ms.assetid: 00c64533-15dd-47f4-bb97-fe80a1ebadef -topic_type: +topic_type: - "apiref" --- # ICorDebugExceptionObjectValue::EnumerateExceptionCallStack Method -Gets an enumerator to the call stack embedded in an exception object. - -## Syntax - -```cpp -HRESULT EnumerateExceptionCallStack( - [out] ICorDebugExceptionObjectCallStackEnum **ppCallStackEnum -); -``` - -## Parameters - - ppCallStackEnum - [out] A pointer to the address of an [ICorDebugExceptionObjectCallStackEnum](icordebugexceptionobjectcallstackenum-interface.md) interface object that is a stack trace enumerator for a managed exception object. - -## Remarks - - If no call stack information is available, the method returns `S_OK`, and [ICorDebugExceptionObjectCallStackEnum](icordebugexceptionobjectcallstackenum-interface.md) is a valid enumerator with a length of 0. If the method is unable to retrieve stack trace information, the return value is `E_FAIL` and no enumerator is returned. - - The [ICorDebugExceptionObjectCallStackEnum](icordebugexceptionobjectcallstackenum-interface.md) object is responsible for decoding the stack trace data from the `_stackTrace` field of the exception object. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - +Gets an enumerator to the call stack embedded in an exception object. + +## Syntax + +```cpp +HRESULT EnumerateExceptionCallStack( + [out] ICorDebugExceptionObjectCallStackEnum **ppCallStackEnum +); +``` + +## Parameters + + ppCallStackEnum + [out] A pointer to the address of an [ICorDebugExceptionObjectCallStackEnum](icordebugexceptionobjectcallstackenum-interface.md) interface object that is a stack trace enumerator for a managed exception object. + +## Remarks + + If no call stack information is available, the method returns `S_OK`, and [ICorDebugExceptionObjectCallStackEnum](icordebugexceptionobjectcallstackenum-interface.md) is a valid enumerator with a length of 0. If the method is unable to retrieve stack trace information, the return value is `E_FAIL` and no enumerator is returned. + + The [ICorDebugExceptionObjectCallStackEnum](icordebugexceptionobjectcallstackenum-interface.md) object is responsible for decoding the stack trace data from the `_stackTrace` field of the exception object. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [ICorDebugExceptionObjectValue Interface](icordebugexceptionobjectvalue-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugexceptionobjectvalue-interface.md b/docs/framework/unmanaged-api/debugging/icordebugexceptionobjectvalue-interface.md index 29de9a965b7a4..4abc570fb8d11 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugexceptionobjectvalue-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugexceptionobjectvalue-interface.md @@ -2,44 +2,44 @@ description: "Learn more about: ICorDebugExceptionObjectValue Interface" title: "ICorDebugExceptionObjectValue Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugExceptionObjectValue" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugExceptionObjectValue" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugExceptionObjectValue interface [.NET Framework debugging]" ms.assetid: 43416dd5-8892-4106-9f59-f9143b19ddb4 -topic_type: +topic_type: - "apiref" --- # ICorDebugExceptionObjectValue Interface -Extends the "ICorDebugObjectValue" interface to provide stack trace information from a managed exception object. - -## Methods - -|Method|Description| -|------------|-----------------| -|[EnumerateExceptionCallStack Method](icordebugexceptionobjectvalue-enumerateexceptioncallstack-method.md)|Gets an enumerator to the call stack embedded in an exception object.| - -## Remarks - - The call to `QueryInterface` will succeed for managed objects that derive from . - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - +Extends the "ICorDebugObjectValue" interface to provide stack trace information from a managed exception object. + +## Methods + +|Method|Description| +|------------|-----------------| +|[EnumerateExceptionCallStack Method](icordebugexceptionobjectvalue-enumerateexceptioncallstack-method.md)|Gets an enumerator to the call stack embedded in an exception object.| + +## Remarks + + The call to `QueryInterface` will succeed for managed objects that derive from . + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugframe-createstepper-method.md b/docs/framework/unmanaged-api/debugging/icordebugframe-createstepper-method.md index 075271869787b..bee759b6552f1 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugframe-createstepper-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugframe-createstepper-method.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugFrame::CreateStepper Method" title: "ICorDebugFrame::CreateStepper Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugFrame.CreateStepper" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugFrame::CreateStepper" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugFrame::CreateStepper method [.NET Framework debugging]" - "CreateStepper method, ICorDebugFrame interface [.NET Framework debugging]" ms.assetid: 689e7f28-20c1-4d5c-9baa-17441cd63a88 -topic_type: +topic_type: - "apiref" --- # ICorDebugFrame::CreateStepper Method -Gets a stepper that allows the debugger to perform stepping operations relative to this ICorDebugFrame. - -## Syntax - -```cpp -HRESULT CreateStepper ( - [out] ICorDebugStepper **ppStepper -); -``` - -## Parameters - - `ppStepper` - [out] A pointer to the address of an ICorDebugStepper object that allows the debugger to perform stepping operations relative to the current frame. - -## Remarks - - If the frame is not active, the stepper object will typically have to return to the frame before the step is completed. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets a stepper that allows the debugger to perform stepping operations relative to this ICorDebugFrame. + +## Syntax + +```cpp +HRESULT CreateStepper ( + [out] ICorDebugStepper **ppStepper +); +``` + +## Parameters + + `ppStepper` + [out] A pointer to the address of an ICorDebugStepper object that allows the debugger to perform stepping operations relative to the current frame. + +## Remarks + + If the frame is not active, the stepper object will typically have to return to the frame before the step is completed. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugframe-getfunction-method.md b/docs/framework/unmanaged-api/debugging/icordebugframe-getfunction-method.md index d03749f6b19ee..4f7ca73f40be1 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugframe-getfunction-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugframe-getfunction-method.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugFrame::GetFunction Method" title: "ICorDebugFrame::GetFunction Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugFrame.GetFunction" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugFrame::GetFunction" -helpviewer_keywords: +helpviewer_keywords: - "GetFunction method, ICorDebugFrame interface [.NET Framework debugging]" - "ICorDebugFrame::GetFunction method [.NET Framework debugging]" ms.assetid: 879d2311-0ff1-4616-a8b3-959ea5868b2e -topic_type: +topic_type: - "apiref" --- # ICorDebugFrame::GetFunction Method -Gets the function that contains the code associated with this stack frame. - -## Syntax - -```cpp -HRESULT GetFunction ( - [out] ICorDebugFunction **ppFunction -); -``` - -## Parameters - - `ppFunction` - [out] A pointer to the address of an ICorDebugFunction object that represents the function containing the code associated with this stack frame. - -## Remarks - - The `GetFunction` method may fail if the frame is not associated with any particular function. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets the function that contains the code associated with this stack frame. + +## Syntax + +```cpp +HRESULT GetFunction ( + [out] ICorDebugFunction **ppFunction +); +``` + +## Parameters + + `ppFunction` + [out] A pointer to the address of an ICorDebugFunction object that represents the function containing the code associated with this stack frame. + +## Remarks + + The `GetFunction` method may fail if the frame is not associated with any particular function. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugframe-getstackrange-method.md b/docs/framework/unmanaged-api/debugging/icordebugframe-getstackrange-method.md index 52735b2d03764..4104840c56fd0 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugframe-getstackrange-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugframe-getstackrange-method.md @@ -2,52 +2,52 @@ description: "Learn more about: ICorDebugFrame::GetStackRange Method" title: "ICorDebugFrame::GetStackRange Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugFrame.GetStackRange" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugFrame::GetStackRange" -helpviewer_keywords: +helpviewer_keywords: - "GetStackRange method, ICorDebugFrame interface [.NET Framework debugging]" - "ICorDebugFrame::GetStackRange method [.NET Framework debugging]" ms.assetid: fab037cb-fda6-40fb-9367-921e435dd5a0 -topic_type: +topic_type: - "apiref" --- # ICorDebugFrame::GetStackRange Method -Gets the absolute address range of this stack frame. - -## Syntax - -```cpp -HRESULT GetStackRange ( +Gets the absolute address range of this stack frame. + +## Syntax + +```cpp +HRESULT GetStackRange ( [out] CORDB_ADDRESS *pStart, - [out] CORDB_ADDRESS *pEnd -); -``` - -## Parameters - - `pStart` - [out] A pointer to a `CORDB_ADDRESS` that specifies the starting address of the stack frame represented by this `ICorDebugFrame` object. - - `pEnd` - [out] A pointer to a `CORDB_ADDRESS` that specifies the ending address of the stack frame represented by this `ICorDebugFrame` object. - -## Remarks - - The address range of the stack is useful for piecing together interleaved stack traces gathered from multiple debugging engines. The numeric range provides no information about the contents of the stack frame. It is meaningful only for comparison of stack frame locations. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - + [out] CORDB_ADDRESS *pEnd +); +``` + +## Parameters + + `pStart` + [out] A pointer to a `CORDB_ADDRESS` that specifies the starting address of the stack frame represented by this `ICorDebugFrame` object. + + `pEnd` + [out] A pointer to a `CORDB_ADDRESS` that specifies the ending address of the stack frame represented by this `ICorDebugFrame` object. + +## Remarks + + The address range of the stack is useful for piecing together interleaved stack traces gathered from multiple debugging engines. The numeric range provides no information about the contents of the stack frame. It is meaningful only for comparison of stack frame locations. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugframe-interface.md b/docs/framework/unmanaged-api/debugging/icordebugframe-interface.md index 2c5eb5e9529c6..78af9ed03ae32 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugframe-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugframe-interface.md @@ -2,52 +2,52 @@ description: "Learn more about: ICorDebugFrame Interface" title: "ICorDebugFrame Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugFrame" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugFrame" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugFrame interface [.NET Framework debugging]" ms.assetid: 0c48f764-3c64-4602-b2f4-4ffc60eb2c65 -topic_type: +topic_type: - "apiref" --- # ICorDebugFrame Interface -Represents a frame on the current stack. - -## Methods - -|Method|Description| -|------------|-----------------| -|[CreateStepper Method](icordebugframe-createstepper-method.md)|Gets an ICorDebugStepper to perform stepping operations relative to this `ICorDebugFrame`.| -|[GetCallee Method](icordebugframe-getcallee-method.md)|Gets a pointer to the `ICorDebugFrame` in the current chain that this frame called, or returns null if this is the innermost frame in the chain.| -|[GetCaller Method](icordebugframe-getcaller-method.md)|Gets a pointer to the `ICorDebugFrame` in the current chain that called this frame, or returns null if this is the outermost frame in the chain.| -|[GetChain Method](icordebugframe-getchain-method.md)|Gets a pointer to the ICorDebugChain this `ICorDebugFrame` is a part of.| -|[GetCode Method](icordebugframe-getcode-method.md)|Gets a pointer to the ICorDebugCode associated with this stack frame.| -|[GetFunction Method](icordebugframe-getfunction-method.md)|Gets a pointer to the ICorDebugFunction that contains the code associated with this stack frame.| -|[GetFunctionToken Method](icordebugframe-getfunctiontoken-method.md)|Gets the metadata token for the function that contains the code associated with this stack frame.| -|[GetStackRange Method](icordebugframe-getstackrange-method.md)|Gets the absolute address range of the stack frame represented by this `ICorDebugFrame`.| - -## Remarks - +Represents a frame on the current stack. + +## Methods + +|Method|Description| +|------------|-----------------| +|[CreateStepper Method](icordebugframe-createstepper-method.md)|Gets an ICorDebugStepper to perform stepping operations relative to this `ICorDebugFrame`.| +|[GetCallee Method](icordebugframe-getcallee-method.md)|Gets a pointer to the `ICorDebugFrame` in the current chain that this frame called, or returns null if this is the innermost frame in the chain.| +|[GetCaller Method](icordebugframe-getcaller-method.md)|Gets a pointer to the `ICorDebugFrame` in the current chain that called this frame, or returns null if this is the outermost frame in the chain.| +|[GetChain Method](icordebugframe-getchain-method.md)|Gets a pointer to the ICorDebugChain this `ICorDebugFrame` is a part of.| +|[GetCode Method](icordebugframe-getcode-method.md)|Gets a pointer to the ICorDebugCode associated with this stack frame.| +|[GetFunction Method](icordebugframe-getfunction-method.md)|Gets a pointer to the ICorDebugFunction that contains the code associated with this stack frame.| +|[GetFunctionToken Method](icordebugframe-getfunctiontoken-method.md)|Gets the metadata token for the function that contains the code associated with this stack frame.| +|[GetStackRange Method](icordebugframe-getstackrange-method.md)|Gets the absolute address range of the stack frame represented by this `ICorDebugFrame`.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugframeenum-interface.md b/docs/framework/unmanaged-api/debugging/icordebugframeenum-interface.md index 032b1cbe4431b..0eba7b84b88fc 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugframeenum-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugframeenum-interface.md @@ -2,45 +2,45 @@ description: "Learn more about: ICorDebugFrameEnum Interface" title: "ICorDebugFrameEnum Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugFrameEnum" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugFrameEnum" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugFrameEnum interface [.NET Framework debugging]" ms.assetid: ee3f85d3-044e-46b8-945c-93ebfa5d9e91 -topic_type: +topic_type: - "apiref" --- # ICorDebugFrameEnum Interface -Implements ICorDebugEnum methods, and enumerates ICorDebugFrame arrays. - -## Methods - -|Method|Description| -|------------|-----------------| -|[Next Method](icordebugframeenum-next-method.md)|Gets the specified number of `ICorDebugFrame` instances from the enumeration, starting at the current position.| - -## Remarks - +Implements ICorDebugEnum methods, and enumerates ICorDebugFrame arrays. + +## Methods + +|Method|Description| +|------------|-----------------| +|[Next Method](icordebugframeenum-next-method.md)|Gets the specified number of `ICorDebugFrame` instances from the enumeration, starting at the current position.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugfunction-getcurrentversionnumber-method.md b/docs/framework/unmanaged-api/debugging/icordebugfunction-getcurrentversionnumber-method.md index 2ca4d6dc96157..f5d4380f5e488 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugfunction-getcurrentversionnumber-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugfunction-getcurrentversionnumber-method.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugFunction::GetCurrentVersionNumber Method" title: "ICorDebugFunction::GetCurrentVersionNumber Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugFunction.GetCurrentVersionNumber" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugFunction::GetCurrentVersionNumber" -helpviewer_keywords: +helpviewer_keywords: - "GetCurrentVersionNumber method [.NET Framework debugging]" - "ICorDebugFunction::GetCurrentVersionNumber method [.NET Framework debugging]" ms.assetid: c3af1575-cbe6-457a-bc08-c53460edcbc8 -topic_type: +topic_type: - "apiref" --- # ICorDebugFunction::GetCurrentVersionNumber Method -Gets the version number of the latest edit made to the function represented by this ICorDebugFunction object. - -## Syntax - -```cpp -HRESULT GetCurrentVersionNumber ( - [out] ULONG32 *pnCurrentVersion -); -``` - -## Parameters - - `pnCurrentVersion` - [out] A pointer to an integer value that is the version number of the latest edit made to this function. - -## Remarks - - The version number of the latest edit made to this function may be greater than the version number of the function itself. Use either the [ICorDebugFunction2::GetVersionNumber](icordebugfunction2-getversionnumber-method.md) method or the [ICorDebugCode::GetVersionNumber](icordebugcode-getversionnumber-method.md) method to retrieve the version number of the function. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets the version number of the latest edit made to the function represented by this ICorDebugFunction object. + +## Syntax + +```cpp +HRESULT GetCurrentVersionNumber ( + [out] ULONG32 *pnCurrentVersion +); +``` + +## Parameters + + `pnCurrentVersion` + [out] A pointer to an integer value that is the version number of the latest edit made to this function. + +## Remarks + + The version number of the latest edit made to this function may be greater than the version number of the function itself. Use either the [ICorDebugFunction2::GetVersionNumber](icordebugfunction2-getversionnumber-method.md) method or the [ICorDebugCode::GetVersionNumber](icordebugcode-getversionnumber-method.md) method to retrieve the version number of the function. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugfunction2-getjmcstatus-method.md b/docs/framework/unmanaged-api/debugging/icordebugfunction2-getjmcstatus-method.md index c1beaab276b1e..7e68432499543 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugfunction2-getjmcstatus-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugfunction2-getjmcstatus-method.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugFunction2::GetJMCStatus Method" title: "ICorDebugFunction2::GetJMCStatus Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugFunction2.GetJMCStatus" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugFunction2::GetJMCStatus" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugFunction2::GetJMCStatus method [.NET Framework debugging]" - "GetJMCStatus method [.NET Framework debugging]" ms.assetid: 840a71ed-bf5a-4f5e-8ed6-762222b34493 -topic_type: +topic_type: - "apiref" --- # ICorDebugFunction2::GetJMCStatus Method -Gets a value that indicates whether the function that is represented by this ICorDebugFunction2 object is marked as user code. - -## Syntax - -```cpp -HRESULT GetJMCStatus ( - [out] BOOL *pbIsJustMyCode -); -``` - -## Parameters - - `pbIsJustMyCode` - [out] A pointer to a Boolean value that is `true`, if this function is marked as user code; otherwise, the value is `false`. - -## Remarks - - If the function represented by this `ICorDebugFunction2` cannot be debugged, `pbIsJustMyCode` will always be `false`. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets a value that indicates whether the function that is represented by this ICorDebugFunction2 object is marked as user code. + +## Syntax + +```cpp +HRESULT GetJMCStatus ( + [out] BOOL *pbIsJustMyCode +); +``` + +## Parameters + + `pbIsJustMyCode` + [out] A pointer to a Boolean value that is `true`, if this function is marked as user code; otherwise, the value is `false`. + +## Remarks + + If the function represented by this `ICorDebugFunction2` cannot be debugged, `pbIsJustMyCode` will always be `false`. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugfunction2-getversionnumber-method.md b/docs/framework/unmanaged-api/debugging/icordebugfunction2-getversionnumber-method.md index ac0f26336bd97..d134bf03f5a4a 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugfunction2-getversionnumber-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugfunction2-getversionnumber-method.md @@ -2,54 +2,54 @@ description: "Learn more about: ICorDebugFunction2::GetVersionNumber Method" title: "ICorDebugFunction2::GetVersionNumber Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugFunction2.GetVersionNumber" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugFunction2::GetVersionNumber" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugFunction2::GetVersionNumber method [.NET Framework debugging]" - "GetVersionNumber method, ICorDebugFunction2 interface [.NET Framework debugging]" ms.assetid: e3a1ce48-9bb9-4ed6-a5fe-5e1819a6333f -topic_type: +topic_type: - "apiref" --- # ICorDebugFunction2::GetVersionNumber Method -Gets the Edit and Continue version of this function. - -## Syntax - -```cpp -HRESULT GetVersionNumber ( - [out] ULONG32 *pnVersion -); -``` - -## Parameters - - `pnVersion` - [out] A pointer to an integer that is the version number of the function that is represented by this ICorDebugFunction2 object. - -## Remarks - - The runtime keeps track of the number of edits that have taken place to each module during a debug session. The version number of a function is one more than the number of the edit that introduced the function. The function's original version is version 1. The number is incremented for a module every time [ICorDebugModule2::ApplyChanges](icordebugmodule2-applychanges-method.md) is called on that module. Thus, if a function’s body was replaced in the first and third call to `ICorDebugModule2::ApplyChanges`, `GetVersionNumber` may return version 1, 2, or 4 for that function, but not version 3. (That function would have no version 3.) - - The version number is tracked separately for each module. So, if you perform four edits on Module 1, and none on Module 2, your next edit on Module 1 will assign a version number of 6 to all the edited functions in Module 1. If the same edit touches Module 2, the functions in Module 2 will get a version number of 2. - - The version number obtained by the `GetVersionNumber` method may be lower than that obtained by [ICorDebugFunction::GetCurrentVersionNumber](icordebugfunction-getcurrentversionnumber-method.md). - - The [ICorDebugCode::GetVersionNumber](icordebugcode-getversionnumber-method.md) method performs the same operation as `ICorDebugFunction2::GetVersionNumber`. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets the Edit and Continue version of this function. + +## Syntax + +```cpp +HRESULT GetVersionNumber ( + [out] ULONG32 *pnVersion +); +``` + +## Parameters + + `pnVersion` + [out] A pointer to an integer that is the version number of the function that is represented by this ICorDebugFunction2 object. + +## Remarks + + The runtime keeps track of the number of edits that have taken place to each module during a debug session. The version number of a function is one more than the number of the edit that introduced the function. The function's original version is version 1. The number is incremented for a module every time [ICorDebugModule2::ApplyChanges](icordebugmodule2-applychanges-method.md) is called on that module. Thus, if a function’s body was replaced in the first and third call to `ICorDebugModule2::ApplyChanges`, `GetVersionNumber` may return version 1, 2, or 4 for that function, but not version 3. (That function would have no version 3.) + + The version number is tracked separately for each module. So, if you perform four edits on Module 1, and none on Module 2, your next edit on Module 1 will assign a version number of 6 to all the edited functions in Module 1. If the same edit touches Module 2, the functions in Module 2 will get a version number of 2. + + The version number obtained by the `GetVersionNumber` method may be lower than that obtained by [ICorDebugFunction::GetCurrentVersionNumber](icordebugfunction-getcurrentversionnumber-method.md). + + The [ICorDebugCode::GetVersionNumber](icordebugcode-getversionnumber-method.md) method performs the same operation as `ICorDebugFunction2::GetVersionNumber`. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugfunction2-interface.md b/docs/framework/unmanaged-api/debugging/icordebugfunction2-interface.md index f976c90738e48..21158ff1d507e 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugfunction2-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugfunction2-interface.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugFunction2 Interface" title: "ICorDebugFunction2 Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugFunction2" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugFunction2" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugFunction2 interface [.NET Framework debugging]" ms.assetid: 2b936bef-9b75-48bf-859f-42e419c65f1c -topic_type: +topic_type: - "apiref" --- # ICorDebugFunction2 Interface -Logically extends the ICorDebugFunction interface to provide support for Just My Code step-through debugging, which skips non-user code. - -## Methods - -|Method|Description| -|------------|-----------------| -|[EnumerateNativeCode Method](icordebugfunction2-enumeratenativecode-method.md)|(Not yet implemented.) Gets an interface pointer to an ICorDebugCodeEnum that contains the native code statements in the function referenced by this ICorDebugFunction2 object.| -|[GetJMCStatus Method](icordebugfunction2-getjmcstatus-method.md)|Gets a value that indicates whether this function is marked as user code.| -|[GetVersionNumber Method](icordebugfunction2-getversionnumber-method.md)|Gets the Edit and Continue version of this function.| -|[SetJMCStatus Method](icordebugfunction2-setjmcstatus-method.md)|Marks this function for Just My Code stepping.| - -## Remarks - +Logically extends the ICorDebugFunction interface to provide support for Just My Code step-through debugging, which skips non-user code. + +## Methods + +|Method|Description| +|------------|-----------------| +|[EnumerateNativeCode Method](icordebugfunction2-enumeratenativecode-method.md)|(Not yet implemented.) Gets an interface pointer to an ICorDebugCodeEnum that contains the native code statements in the function referenced by this ICorDebugFunction2 object.| +|[GetJMCStatus Method](icordebugfunction2-getjmcstatus-method.md)|Gets a value that indicates whether this function is marked as user code.| +|[GetVersionNumber Method](icordebugfunction2-getversionnumber-method.md)|Gets the Edit and Continue version of this function.| +|[SetJMCStatus Method](icordebugfunction2-setjmcstatus-method.md)|Marks this function for Just My Code stepping.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugfunction2-setjmcstatus-method.md b/docs/framework/unmanaged-api/debugging/icordebugfunction2-setjmcstatus-method.md index 8cb09ac60f521..e0c561c2e0bd6 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugfunction2-setjmcstatus-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugfunction2-setjmcstatus-method.md @@ -2,55 +2,55 @@ description: "Learn more about: ICorDebugFunction2::SetJMCStatus Method" title: "ICorDebugFunction2::SetJMCStatus Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugFunction2.SetJMCStatus" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugFunction2::SetJMCStatus" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugFunction2::SetJMCStatus method [.NET Framework debugging]" - "SetJMCStatus method, ICorDebugFunction2 interface [.NET Framework debugging]" ms.assetid: 22c27b01-2869-4214-b840-5921f7c874fc -topic_type: +topic_type: - "apiref" --- # ICorDebugFunction2::SetJMCStatus Method -Marks the function represented by this ICorDebugFunction2 for Just My Code stepping. - -## Syntax - -```cpp -HRESULT SetJMCStatus ( - [in] BOOL bIsJustMyCode -); -``` - -## Parameters - - `bIsJustMyCode` - [in] Set to `true` to mark the function as user code; otherwise, set to `false`. - -## Return Values - -|HRESULT|Description| -|-------------|-----------------| -|`S_OK`|The function was successfully marked.| -|`CORDBG_E_FUNCTION_NOT_DEBUGGABLE`|The function could not be marked as user code because it cannot be debugged.| - -## Remarks - - A Just My Code stepper will skip non-user code. User code must be a subset of debuggable code. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Marks the function represented by this ICorDebugFunction2 for Just My Code stepping. + +## Syntax + +```cpp +HRESULT SetJMCStatus ( + [in] BOOL bIsJustMyCode +); +``` + +## Parameters + + `bIsJustMyCode` + [in] Set to `true` to mark the function as user code; otherwise, set to `false`. + +## Return Values + +|HRESULT|Description| +|-------------|-----------------| +|`S_OK`|The function was successfully marked.| +|`CORDBG_E_FUNCTION_NOT_DEBUGGABLE`|The function could not be marked as user code because it cannot be debugged.| + +## Remarks + + A Just My Code stepper will skip non-user code. User code must be a subset of debuggable code. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugfunction3-getactiverejitrequestilcode-method.md b/docs/framework/unmanaged-api/debugging/icordebugfunction3-getactiverejitrequestilcode-method.md index eae2c17e674ce..33dbf09832919 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugfunction3-getactiverejitrequestilcode-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugfunction3-getactiverejitrequestilcode-method.md @@ -2,53 +2,53 @@ description: "Learn more about: ICorDebugFunction3::GetActiveReJitRequestILCode Method" title: "ICorDebugFunction3::GetActiveReJitRequestILCode Method" ms.date: "03/30/2017" -dev_langs: +dev_langs: - "cpp" -api_name: +api_name: - "ICorDebugFunction3.GetActiveReJitRequestILCode" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" ms.assetid: 88584574-ade5-45b2-9778-489ed5c4dd7f -topic_type: +topic_type: - "apiref" --- # ICorDebugFunction3::GetActiveReJitRequestILCode Method -[Supported in the .NET Framework 4.5.2 and later versions] - - Gets an interface pointer to an [ICorDebugILCode](icordebugilcode-interface.md) that contains the IL from an active ReJIT request. - -## Syntax - +[Supported in the .NET Framework 4.5.2 and later versions] + + Gets an interface pointer to an [ICorDebugILCode](icordebugilcode-interface.md) that contains the IL from an active ReJIT request. + +## Syntax + ```cpp -HRESULT GetActiveReJitRequestILCode( - ICorDebugILCode **ppReJitedILCode -); -``` - -## Parameters - - `ppReJitedILCode` - A pointer to the IL from an active ReJIT request. - -## Remarks - - If the method represented by this `ICorDebugFunction3` object has an active ReJIT request, `ppReJitedILCode` returns a pointer to its IL. If there is no active request, which is a common case, then `ppReJitedILCode` is **null**. - - A ReJIT request becomes active just after execution returns from the [ICorProfilerCallback4::GetReJITParameters](../profiling/icorprofilercallback4-getrejitparameters-method.md) method call. It may not yet be JIT-compiled, and threads may still be executing in the original version of the code. A ReJIT request becomes inactive during the profiler's call to the [ICorProfilerInfo4::RequestRevert](../profiling/icorprofilerinfo4-requestrevert-method.md) method. Even after the IL is reverted, a thread can still be executing in the JIT-recompiled (ReJIT) code. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v452plus](../../../../includes/net-current-v452plus-md.md)] - +HRESULT GetActiveReJitRequestILCode( + ICorDebugILCode **ppReJitedILCode +); +``` + +## Parameters + + `ppReJitedILCode` + A pointer to the IL from an active ReJIT request. + +## Remarks + + If the method represented by this `ICorDebugFunction3` object has an active ReJIT request, `ppReJitedILCode` returns a pointer to its IL. If there is no active request, which is a common case, then `ppReJitedILCode` is **null**. + + A ReJIT request becomes active just after execution returns from the [ICorProfilerCallback4::GetReJITParameters](../profiling/icorprofilercallback4-getrejitparameters-method.md) method call. It may not yet be JIT-compiled, and threads may still be executing in the original version of the code. A ReJIT request becomes inactive during the profiler's call to the [ICorProfilerInfo4::RequestRevert](../profiling/icorprofilerinfo4-requestrevert-method.md) method. Even after the IL is reverted, a thread can still be executing in the JIT-recompiled (ReJIT) code. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v452plus](../../../../includes/net-current-v452plus-md.md)] + ## See also - [ICorDebugFunction3 Interface](icordebugfunction3-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugfunction3-interface.md b/docs/framework/unmanaged-api/debugging/icordebugfunction3-interface.md index be318f3767ebb..619e7745e7f02 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugfunction3-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugfunction3-interface.md @@ -2,40 +2,40 @@ description: "Learn more about: ICorDebugFunction3 Interface" title: "ICorDebugFunction3 Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugFunction3" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" ms.assetid: b22717b9-ead5-4eea-887e-789b52d613dc -topic_type: +topic_type: - "apiref" --- # ICorDebugFunction3 Interface -[Supported in the .NET Framework 4.5.2 and later versions] - - Logically extends the ICorDebugFunction interface to provide access to code from a ReJIT request. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetActiveReJitRequestILCode Method](icordebugfunction3-getactiverejitrequestilcode-method.md)|Gets an interface pointer to an [ICorDebugILCode](icordebugilcode-interface.md) that contains the IL from an active ReJIT request.| - -## Remarks - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v452plus](../../../../includes/net-current-v452plus-md.md)] - +[Supported in the .NET Framework 4.5.2 and later versions] + + Logically extends the ICorDebugFunction interface to provide access to code from a ReJIT request. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetActiveReJitRequestILCode Method](icordebugfunction3-getactiverejitrequestilcode-method.md)|Gets an interface pointer to an [ICorDebugILCode](icordebugilcode-interface.md) that contains the IL from an active ReJIT request.| + +## Remarks + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v452plus](../../../../includes/net-current-v452plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugfunctionbreakpoint-interface.md b/docs/framework/unmanaged-api/debugging/icordebugfunctionbreakpoint-interface.md index c55b6befb6e5c..50b9b7711a88d 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugfunctionbreakpoint-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugfunctionbreakpoint-interface.md @@ -2,46 +2,46 @@ description: "Learn more about: ICorDebugFunctionBreakpoint Interface" title: "ICorDebugFunctionBreakpoint Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugFunctionBreakpoint" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugFunctionBreakpoint" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugFunctionBreakpoint interface [.NET Framework debugging]" ms.assetid: 9c149303-14b1-4138-83d7-e8c3e0fcd332 -topic_type: +topic_type: - "apiref" --- # ICorDebugFunctionBreakpoint Interface -Extends the ICorDebugBreakpoint interface to support breakpoints within functions. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetFunction Method](icordebugfunctionbreakpoint-getfunction-method.md)|Gets an interface pointer to an ICorDebugFunction that references the function in which the breakpoint is set.| -|[GetOffset Method](icordebugfunctionbreakpoint-getoffset-method.md)|Gets the offset of the breakpoint within the function.| - -## Remarks - +Extends the ICorDebugBreakpoint interface to support breakpoints within functions. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetFunction Method](icordebugfunctionbreakpoint-getfunction-method.md)|Gets an interface pointer to an ICorDebugFunction that references the function in which the breakpoint is set.| +|[GetOffset Method](icordebugfunctionbreakpoint-getoffset-method.md)|Gets the offset of the breakpoint within the function.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebuggcreferenceenum-interface.md b/docs/framework/unmanaged-api/debugging/icordebuggcreferenceenum-interface.md index db6cd37914103..9bc055fa1f604 100644 --- a/docs/framework/unmanaged-api/debugging/icordebuggcreferenceenum-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebuggcreferenceenum-interface.md @@ -2,54 +2,54 @@ description: "Learn more about: ICorDebugGCReferenceEnum Interface" title: "ICorDebugGCReferenceEnum Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugGCReferenceEnum" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugGCReferenceEnum" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugGCReferenceEnum interface [.NET Framework debugging]" ms.assetid: 5f3c91c9-c035-454f-96cc-011cab1ea06b -topic_type: +topic_type: - "apiref" --- # ICorDebugGCReferenceEnum Interface -Provides an enumerator for objects that will be garbage-collected. - -## Methods - -|Method|Description| -|------------|-----------------| -|[Next Method](icordebuggcreferenceenum-next-method.md)|Gets the specified number of [COR_GC_REFERENCE](cor-gc-reference-structure.md) instances that contain information about objects that will be garbage-collected.| - -## Remarks - - The `ICorDebugGCReferenceEnum` interface implements the "ICorDebugEnum" interface. - - An `ICorDebugGCReferenceEnum` instance is populated with [COR_GC_REFERENCE](cor-gc-reference-structure.md) instances by calling the [ICorDebugProcess5::EnumerateGCReferences](icordebugprocess5-enumerategcreferences-method.md) method. [COR_GC_REFERENCE](cor-gc-reference-structure.md) objects can be enumerated by calling the [ICorDebugGCReference::Next](icordebuggcreferenceenum-next-method.md) method. - - The [COR_GC_REFERENCE](cor-gc-reference-structure.md) objects in the collection populated by this method represent three kinds of objects: - -- Objects from all managed stacks. This includes live references in managed code as well as objects created by the common language runtime. - -- Objects from the handle table. This includes strong references (`HNDTYPE_STRONG` and `HNDTYPE_REFCOUNT`) and static variables in a module. - -- Objects from the finalizer queue. The finalizer queue roots objects until the finalizer has run. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - +Provides an enumerator for objects that will be garbage-collected. + +## Methods + +|Method|Description| +|------------|-----------------| +|[Next Method](icordebuggcreferenceenum-next-method.md)|Gets the specified number of [COR_GC_REFERENCE](cor-gc-reference-structure.md) instances that contain information about objects that will be garbage-collected.| + +## Remarks + + The `ICorDebugGCReferenceEnum` interface implements the "ICorDebugEnum" interface. + + An `ICorDebugGCReferenceEnum` instance is populated with [COR_GC_REFERENCE](cor-gc-reference-structure.md) instances by calling the [ICorDebugProcess5::EnumerateGCReferences](icordebugprocess5-enumerategcreferences-method.md) method. [COR_GC_REFERENCE](cor-gc-reference-structure.md) objects can be enumerated by calling the [ICorDebugGCReference::Next](icordebuggcreferenceenum-next-method.md) method. + + The [COR_GC_REFERENCE](cor-gc-reference-structure.md) objects in the collection populated by this method represent three kinds of objects: + +- Objects from all managed stacks. This includes live references in managed code as well as objects created by the common language runtime. + +- Objects from the handle table. This includes strong references (`HNDTYPE_STRONG` and `HNDTYPE_REFCOUNT`) and static variables in a module. + +- Objects from the finalizer queue. The finalizer queue roots objects until the finalizer has run. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebuggcreferenceenum-next-method.md b/docs/framework/unmanaged-api/debugging/icordebuggcreferenceenum-next-method.md index 922d6a5aee4c1..26750bcced783 100644 --- a/docs/framework/unmanaged-api/debugging/icordebuggcreferenceenum-next-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebuggcreferenceenum-next-method.md @@ -2,57 +2,57 @@ description: "Learn more about: ICorDebugGCReferenceEnum::Next Method" title: "ICorDebugGCReferenceEnum::Next Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugGCReferenceEnum.Next" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugGCReferenceEnum::Next" -helpviewer_keywords: +helpviewer_keywords: - "Next method, ICorDebugGCReferenceEnum interface [.NET Framework debugging]" - "ICorDebugGCReferenceEnum::Next method [.NET Framework debugging]" ms.assetid: 91b1345c-a94f-4ef8-9696-3823d06c6d05 -topic_type: +topic_type: - "apiref" --- # ICorDebugGCReferenceEnum::Next Method -Gets the specified number of [COR_GC_REFERENCE](cor-gc-reference-structure.md) instances that contain information about objects that will be garbage-collected. - -## Syntax - -```cpp -HRESULT Next( +Gets the specified number of [COR_GC_REFERENCE](cor-gc-reference-structure.md) instances that contain information about objects that will be garbage-collected. + +## Syntax + +```cpp +HRESULT Next( [in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] COR_GC_REFERENCE roots[], - [out] ULONG *pceltFetched -); -``` - -## Parameters - - celt - [in] The number of roots to be retrieved. - - roots - [out] An array of pointers, each of which points to a [COR_GC_REFERENCE](cor-gc-reference-structure.md) object that represents the root of an object to be garbage-collected. - - pceltFetched - [out] A pointer to the number of [COR_GC_REFERENCE](cor-gc-reference-structure.md) objects actually returned in `roots`. This value may be `null` if `celt` is 1. - -## Remarks - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - + [out] ULONG *pceltFetched +); +``` + +## Parameters + + celt + [in] The number of roots to be retrieved. + + roots + [out] An array of pointers, each of which points to a [COR_GC_REFERENCE](cor-gc-reference-structure.md) object that represents the root of an object to be garbage-collected. + + pceltFetched + [out] A pointer to the number of [COR_GC_REFERENCE](cor-gc-reference-structure.md) objects actually returned in `roots`. This value may be `null` if `celt` is 1. + +## Remarks + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [ICorDebugGCReferenceEnum Interface](icordebuggcreferenceenum-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebuggenericvalue-interface.md b/docs/framework/unmanaged-api/debugging/icordebuggenericvalue-interface.md index 192b56fda5f62..b6913546ace69 100644 --- a/docs/framework/unmanaged-api/debugging/icordebuggenericvalue-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebuggenericvalue-interface.md @@ -2,52 +2,52 @@ description: "Learn more about: ICorDebugGenericValue Interface" title: "ICorDebugGenericValue Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugGenericValue" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugGenericValue" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugGenericValue interface [.NET Framework debugging]" ms.assetid: bc14f408-b359-4c8c-ade2-888ccdf7261b -topic_type: +topic_type: - "apiref" --- # ICorDebugGenericValue Interface -A subclass of "ICorDebugValue" that applies to all values. This interface provides Get and Set methods for the value. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetValue Method](icordebuggenericvalue-getvalue-method.md)|Copies the value into the specified buffer.| -|[SetValue Method](icordebuggenericvalue-setvalue-method.md)|Copies a new value from the specified buffer.| - -## Remarks - - `ICorDebugGenericValue` is a sub-interface because it is non-remotable. - - For reference types, the value is the reference rather than the contents of the reference. - - This interface does not support being called remotely, either cross-machine or cross-process. - +A subclass of "ICorDebugValue" that applies to all values. This interface provides Get and Set methods for the value. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetValue Method](icordebuggenericvalue-getvalue-method.md)|Copies the value into the specified buffer.| +|[SetValue Method](icordebuggenericvalue-setvalue-method.md)|Copies a new value from the specified buffer.| + +## Remarks + + `ICorDebugGenericValue` is a sub-interface because it is non-remotable. + + For reference types, the value is the reference rather than the contents of the reference. + + This interface does not support being called remotely, either cross-machine or cross-process. + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebuggenericvalue-setvalue-method.md b/docs/framework/unmanaged-api/debugging/icordebuggenericvalue-setvalue-method.md index 20806eaca047d..08bd662f9d56b 100644 --- a/docs/framework/unmanaged-api/debugging/icordebuggenericvalue-setvalue-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebuggenericvalue-setvalue-method.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugGenericValue::SetValue Method" title: "ICorDebugGenericValue::SetValue Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugGenericValue.SetValue" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugGenericValue::SetValue" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugGenericValue::SetValue method [.NET Framework debugging]" - "SetValue method, ICorDebugGenericValue interface [.NET Framework debugging]" ms.assetid: ed4c6458-0435-44fc-8e78-8ba00be362f2 -topic_type: +topic_type: - "apiref" --- # ICorDebugGenericValue::SetValue Method -Copies a new value from the specified buffer. - -## Syntax - -```cpp -HRESULT SetValue ( - [in] void *pFrom -); -``` - -## Parameters - - `pFrom` - [in] A pointer to the buffer from which to copy the value. - -## Remarks - - For reference types, the value is the reference, not the content. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Copies a new value from the specified buffer. + +## Syntax + +```cpp +HRESULT SetValue ( + [in] void *pFrom +); +``` + +## Parameters + + `pFrom` + [in] A pointer to the buffer from which to copy the value. + +## Remarks + + For reference types, the value is the reference, not the content. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugguidtotypeenum-interface.md b/docs/framework/unmanaged-api/debugging/icordebugguidtotypeenum-interface.md index 4f612cb8d4902..cecbce66d16bd 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugguidtotypeenum-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugguidtotypeenum-interface.md @@ -2,44 +2,44 @@ description: "Learn more about: ICorDebugGuidToTypeEnum Interface" title: "ICorDebugGuidToTypeEnum Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugGuidToTypeEnum" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugGuidToTypeEnum" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugGuidToTypeEnum interface [.NET Framework debugging]" ms.assetid: aa32b12b-05fc-4ea8-a904-adae25034269 -topic_type: +topic_type: - "apiref" --- # ICorDebugGuidToTypeEnum Interface -Provides an enumerator that defines the mapping between a set of GUIDs and their corresponding types, which are represented by ICorDebugType instances. This interface inherits the methods from the ICorDebugEnum interface. - -## Methods - -|Method|Description| -|------------|-----------------| -|[ICorDebugGuidToTypeEnum::Next](icordebugguidtotypeenum-next-method.md)|Gets the specified number of [CorDebugGuidToTypeMapping](cordebugguidtotypemapping-structure.md) instances that map GUIDs to type information.| - -## Remarks - - An `ICorDebugGuidToTypeEnum` interface object can be retrieved by calling the [ICorDebugAppDomain3::GetCachedWinRTTypes](icordebugappdomain3-getcachedwinrttypes-method.md) method. A debugger can call this interface's [Next](icordebugguidtotypeenum-next-method.md) method to retrieve [CorDebugGuidToTypeMapping](cordebugguidtotypemapping-structure.md) objects that represent mappings of managed representations of Windows Runtime types loaded in the application domain used for the call to the [ICorDebugAppDomain3::GetCachedWinRTTypes](icordebugappdomain3-getcachedwinrttypes-method.md) method. - -## Requirements - - **Platforms:** Windows Runtime - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - +Provides an enumerator that defines the mapping between a set of GUIDs and their corresponding types, which are represented by ICorDebugType instances. This interface inherits the methods from the ICorDebugEnum interface. + +## Methods + +|Method|Description| +|------------|-----------------| +|[ICorDebugGuidToTypeEnum::Next](icordebugguidtotypeenum-next-method.md)|Gets the specified number of [CorDebugGuidToTypeMapping](cordebugguidtotypemapping-structure.md) instances that map GUIDs to type information.| + +## Remarks + + An `ICorDebugGuidToTypeEnum` interface object can be retrieved by calling the [ICorDebugAppDomain3::GetCachedWinRTTypes](icordebugappdomain3-getcachedwinrttypes-method.md) method. A debugger can call this interface's [Next](icordebugguidtotypeenum-next-method.md) method to retrieve [CorDebugGuidToTypeMapping](cordebugguidtotypemapping-structure.md) objects that represent mappings of managed representations of Windows Runtime types loaded in the application domain used for the call to the [ICorDebugAppDomain3::GetCachedWinRTTypes](icordebugappdomain3-getcachedwinrttypes-method.md) method. + +## Requirements + + **Platforms:** Windows Runtime + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugguidtotypeenum-next-method.md b/docs/framework/unmanaged-api/debugging/icordebugguidtotypeenum-next-method.md index 764e5128469d9..98205eece2cd1 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugguidtotypeenum-next-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugguidtotypeenum-next-method.md @@ -2,58 +2,58 @@ description: "Learn more about: ICorDebugGuidToTypeEnum::Next Method" title: "ICorDebugGuidToTypeEnum::Next Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugGuidToTypeEnum.Next" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugGuidToTypeEnum::Next" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugGuidToTypeEnum::Next method [.NET Framework debugging]" - "Next method, ICorDebugGuidToTypeEnum interface [.NET Framework debugging]" ms.assetid: c9937666-8e18-484d-9fe0-b9ac95199530 -topic_type: +topic_type: - "apiref" --- # ICorDebugGuidToTypeEnum::Next Method -Gets the specified number of [CorDebugGuidToTypeMapping](cordebugguidtotypemapping-structure.md) instances that map GUIDs to type information. - -## Syntax - -```cpp -HRESULT Next( - [in] ULONG celt, - [out, size_is(celt), length_is(*pceltFetched] CorDebugGuidToTypeMapping values[ ], - [out] ULONG *pceltFetched -); -``` - -## Parameters - - `celt` - [in] The number of GUID-to-type mapping objects to be retrieved. - - `values` - [out] An array of pointers, each of which points to a [CorDebugGuidToTypeMapping](cordebugguidtotypemapping-structure.md) object that maps a Windows Runtime GUID to its corresponding ICorDebugType object. - - `pceltFetched` - [out] A pointer to the number of [CorDebugGuidToTypeMapping](cordebugguidtotypemapping-structure.md) objects actually returned in `values`. - -## Remarks - -## Requirements - - **Platforms:** Windows Runtime - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - +Gets the specified number of [CorDebugGuidToTypeMapping](cordebugguidtotypemapping-structure.md) instances that map GUIDs to type information. + +## Syntax + +```cpp +HRESULT Next( + [in] ULONG celt, + [out, size_is(celt), length_is(*pceltFetched] CorDebugGuidToTypeMapping values[ ], + [out] ULONG *pceltFetched +); +``` + +## Parameters + + `celt` + [in] The number of GUID-to-type mapping objects to be retrieved. + + `values` + [out] An array of pointers, each of which points to a [CorDebugGuidToTypeMapping](cordebugguidtotypemapping-structure.md) object that maps a Windows Runtime GUID to its corresponding ICorDebugType object. + + `pceltFetched` + [out] A pointer to the number of [CorDebugGuidToTypeMapping](cordebugguidtotypemapping-structure.md) objects actually returned in `values`. + +## Remarks + +## Requirements + + **Platforms:** Windows Runtime + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [ICorDebugGuidToTypeEnum Interface](icordebugguidtotypeenum-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebughandlevalue-interface.md b/docs/framework/unmanaged-api/debugging/icordebughandlevalue-interface.md index 52e2ce8acbf80..b05f949e7d35d 100644 --- a/docs/framework/unmanaged-api/debugging/icordebughandlevalue-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebughandlevalue-interface.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugHandleValue Interface" title: "ICorDebugHandleValue Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugHandleValue" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugHandleValue" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugHandleValue interface [.NET Framework debugging]" ms.assetid: 66fcd2b8-ac66-414b-83a8-75a925e17772 -topic_type: +topic_type: - "apiref" --- # ICorDebugHandleValue Interface -A subclass of ICorDebugReferenceValue that represents a reference value to which the debugger has created a handle for garbage collection. - -## Methods - -|Method|Description| -|------------|-----------------| -|[Dispose Method](icordebughandlevalue-dispose-method.md)|Releases the handle referenced by this `ICorDebugHandleValue` object without explicitly releasing the interface pointer.| -|[GetHandleType Method](icordebughandlevalue-gethandletype-method.md)|Gets a CorDebugHandleType value that describes the kind of handle referenced by this `ICorDebugHandleValue`.| - -## Remarks - - An `ICorDebugReferenceValue` object is invalidated by a break in the execution of debugged code. An `ICorDebugHandleValue` maintains its reference through breaks and continuations, until it is explicitly released. - +A subclass of ICorDebugReferenceValue that represents a reference value to which the debugger has created a handle for garbage collection. + +## Methods + +|Method|Description| +|------------|-----------------| +|[Dispose Method](icordebughandlevalue-dispose-method.md)|Releases the handle referenced by this `ICorDebugHandleValue` object without explicitly releasing the interface pointer.| +|[GetHandleType Method](icordebughandlevalue-gethandletype-method.md)|Gets a CorDebugHandleType value that describes the kind of handle referenced by this `ICorDebugHandleValue`.| + +## Remarks + + An `ICorDebugReferenceValue` object is invalidated by a break in the execution of debugged code. An `ICorDebugHandleValue` maintains its reference through breaks and continuations, until it is explicitly released. + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugheapenum-interface.md b/docs/framework/unmanaged-api/debugging/icordebugheapenum-interface.md index f3acdd0d565ea..ba6b6c69a9381 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugheapenum-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugheapenum-interface.md @@ -2,46 +2,46 @@ description: "Learn more about: ICorDebugHeapEnum Interface" title: "ICorDebugHeapEnum Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugHeapEnum" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugHeapEnum" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugHeapEnum interface [.NET Framework debugging]" ms.assetid: 99cbc1eb-d539-4f76-a0d8-b93348112f14 -topic_type: +topic_type: - "apiref" --- # ICorDebugHeapEnum Interface -Provides an enumerator for objects on the managed heap. This interface is a subclass of the ICorDebugEnum interface. - -## Methods - -|Method|Description| -|------------|-----------------| -|[Next Method](icordebugheapenum-next-method.md)|Gets the specified number of [COR_HEAPOBJECT](cor-heapobject-structure.md) instances that contain information about objects on the managed heap.| - -## Remarks - - The `ICorDebugHeapEnum` interface implements the ICorDebugEnum interface. - - An `ICorDebugHeapEnum` instance is populated with [COR_HEAPOBJECT](cor-heapobject-structure.md) instances by calling the [ICorDebugProcess5::EnumerateHeap](icordebugprocess5-enumerateheap-method.md) method. Each [COR_HEAPOBJECT](cor-heapobject-structure.md) instance in the collection represents either a live object on the heap or an object that is not rooted by any object but has not yet been collected by the garbage collector. The [COR_HEAPOBJECT](cor-heapobject-structure.md) objects in the collection can be enumerated by calling the [ICorDebugHeapEnum::Next](icordebugheapenum-next-method.md) method. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - +Provides an enumerator for objects on the managed heap. This interface is a subclass of the ICorDebugEnum interface. + +## Methods + +|Method|Description| +|------------|-----------------| +|[Next Method](icordebugheapenum-next-method.md)|Gets the specified number of [COR_HEAPOBJECT](cor-heapobject-structure.md) instances that contain information about objects on the managed heap.| + +## Remarks + + The `ICorDebugHeapEnum` interface implements the ICorDebugEnum interface. + + An `ICorDebugHeapEnum` instance is populated with [COR_HEAPOBJECT](cor-heapobject-structure.md) instances by calling the [ICorDebugProcess5::EnumerateHeap](icordebugprocess5-enumerateheap-method.md) method. Each [COR_HEAPOBJECT](cor-heapobject-structure.md) instance in the collection represents either a live object on the heap or an object that is not rooted by any object but has not yet been collected by the garbage collector. The [COR_HEAPOBJECT](cor-heapobject-structure.md) objects in the collection can be enumerated by calling the [ICorDebugHeapEnum::Next](icordebugheapenum-next-method.md) method. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugheapenum-next-method.md b/docs/framework/unmanaged-api/debugging/icordebugheapenum-next-method.md index a57a231a0f2bf..2a63b6b678cb8 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugheapenum-next-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugheapenum-next-method.md @@ -2,59 +2,59 @@ description: "Learn more about: ICorDebugHeapEnum::Next Method" title: "ICorDebugHeapEnum::Next Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugHeapEnum.Next" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugHeapEnum::Next" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugHeapEnum::Next method [.NET Framework debugging]" - "Next method, ICorDebugHeapEnum interface [.NET Framework debugging]" ms.assetid: 2221fd06-9e27-4113-972e-2530db8c3594 -topic_type: +topic_type: - "apiref" --- # ICorDebugHeapEnum::Next Method -Gets the specified number of [COR_HEAPOBJECT](cor-heapobject-structure.md) instances that contain information about objects on the managed heap. - -## Syntax - -```cpp -HRESULT Next( +Gets the specified number of [COR_HEAPOBJECT](cor-heapobject-structure.md) instances that contain information about objects on the managed heap. + +## Syntax + +```cpp +HRESULT Next( [in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] COR_HEAPOBJECT objects[], - [out] ULONG *pceltFetched -); -``` - -## Parameters - - celt - [in] The number of objects to be retrieved. - - objects - [out] An array of pointers, each of which points to a [COR_HEAPOBJECT](cor-heapobject-structure.md) object that provides information about an object on the managed heap. - - pceltFetched - [out] A pointer to the number of [COR_HEAPOBJECT](cor-heapobject-structure.md) objects actually returned in `objects`. This value may be `null` if `celt` is 1. - -## Remarks - - The `COR_HEAPOBJECT.type` field is the identifier of a nested reference-counted COM interface. This reference must be released by the caller of `ICorDebugHeapEnum::Next`. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - + [out] ULONG *pceltFetched +); +``` + +## Parameters + + celt + [in] The number of objects to be retrieved. + + objects + [out] An array of pointers, each of which points to a [COR_HEAPOBJECT](cor-heapobject-structure.md) object that provides information about an object on the managed heap. + + pceltFetched + [out] A pointer to the number of [COR_HEAPOBJECT](cor-heapobject-structure.md) objects actually returned in `objects`. This value may be `null` if `celt` is 1. + +## Remarks + + The `COR_HEAPOBJECT.type` field is the identifier of a nested reference-counted COM interface. This reference must be released by the caller of `ICorDebugHeapEnum::Next`. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [ICorDebugHeapEnum Interface](icordebugheapenum-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugheapsegmentenum-interface.md b/docs/framework/unmanaged-api/debugging/icordebugheapsegmentenum-interface.md index b13a743b298a9..cd661184da0be 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugheapsegmentenum-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugheapsegmentenum-interface.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugHeapSegmentEnum Interface" title: "ICorDebugHeapSegmentEnum Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugHealRegionEnum" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugHeapSegmentEnum" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugHeapSegmentEnum interface [.NET Framework debugging]" ms.assetid: 20fc1b9d-e228-4107-bd76-53934c1724b9 -topic_type: +topic_type: - "apiref" --- # ICorDebugHeapSegmentEnum Interface -Provides an enumerator for the memory regions of the managed heap. This interface is a subclass of the ICorDebugEnum interface. - -## Methods - -|Method|Description| -|------------|-----------------| -|[Next Method](icordebugheapsegmentenum-next-method.md)|Gets the specified number of [COR_SEGMENT](cor-segment-structure.md) instances that contain information about regions of the managed heap.| - -## Remarks - - The `ICorDebugHeapSegmentEnum` interface implements the ICorDebugEnum interface. - - An `ICorDebugHeapSegmentEnum` instance is populated with [COR_SEGMENT](cor-segment-structure.md) instances by calling the [ICorDebugProcess5::EnumerateHeapRegions](icordebugprocess5-enumerateheapregions-method.md) method. The [COR_SEGMENT](cor-segment-structure.md) objects in the collection can be enumerated by calling the [ICorDebugHeapSegmentEnum::Next](icordebugheapsegmentenum-next-method.md) method. - - An `ICorDebugHeapSegmentEnum` collection object enumerates all memory regions that may contain managed objects, but it does not guarantee that managed objects actually reside in those regions. It may include information about empty or reserved memory regions. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - +Provides an enumerator for the memory regions of the managed heap. This interface is a subclass of the ICorDebugEnum interface. + +## Methods + +|Method|Description| +|------------|-----------------| +|[Next Method](icordebugheapsegmentenum-next-method.md)|Gets the specified number of [COR_SEGMENT](cor-segment-structure.md) instances that contain information about regions of the managed heap.| + +## Remarks + + The `ICorDebugHeapSegmentEnum` interface implements the ICorDebugEnum interface. + + An `ICorDebugHeapSegmentEnum` instance is populated with [COR_SEGMENT](cor-segment-structure.md) instances by calling the [ICorDebugProcess5::EnumerateHeapRegions](icordebugprocess5-enumerateheapregions-method.md) method. The [COR_SEGMENT](cor-segment-structure.md) objects in the collection can be enumerated by calling the [ICorDebugHeapSegmentEnum::Next](icordebugheapsegmentenum-next-method.md) method. + + An `ICorDebugHeapSegmentEnum` collection object enumerates all memory regions that may contain managed objects, but it does not guarantee that managed objects actually reside in those regions. It may include information about empty or reserved memory regions. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugheapsegmentenum-next-method.md b/docs/framework/unmanaged-api/debugging/icordebugheapsegmentenum-next-method.md index 3c6321383253a..47c27f75d27af 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugheapsegmentenum-next-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugheapsegmentenum-next-method.md @@ -2,57 +2,57 @@ description: "Learn more about: ICorDebugHeapSegmentEnum::Next Method" title: "ICorDebugHeapSegmentEnum::Next Method" ms.date: "03/30/2017" -api_name: +api_name: - "Next" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugHeapSegmentEnum::Next" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugHeapSegmentEnum::Next method [.NET Framework debugging]" - "Next method, ICorDebugHeapSegmentEnum interface [.NET Framework debugging]" ms.assetid: 51625fd0-7399-49c7-b22b-5dfb05451fe6 -topic_type: +topic_type: - "apiref" --- # ICorDebugHeapSegmentEnum::Next Method -Gets the specified number of [COR_SEGMENT](cor-segment-structure.md) instances that contain information about memory regions of the managed heap. - -## Syntax - -```cpp -HRESULT Next( +Gets the specified number of [COR_SEGMENT](cor-segment-structure.md) instances that contain information about memory regions of the managed heap. + +## Syntax + +```cpp +HRESULT Next( [in] ULONG celt, [out, size_is(celt), length_is(*pceltFetched)] COR_SEGMENT segments[], - [out] ULONG *pceltFetched -); -``` - -## Parameters - - celt - [in] The number of segments to be retrieved. - - segments - [out] An array of pointers, each of which points to a [COR_SEGMENT](cor-segment-structure.md) object that provides information about a region of memory in the managed heap. - - pceltFetched - [out] A pointer to the number of [COR_SEGMENT](cor-segment-structure.md) objects actually returned in `segments`. This value may be `null` if `celt` is 1. - -## Remarks - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - + [out] ULONG *pceltFetched +); +``` + +## Parameters + + celt + [in] The number of segments to be retrieved. + + segments + [out] An array of pointers, each of which points to a [COR_SEGMENT](cor-segment-structure.md) object that provides information about a region of memory in the managed heap. + + pceltFetched + [out] A pointer to the number of [COR_SEGMENT](cor-segment-structure.md) objects actually returned in `segments`. This value may be `null` if `celt` is 1. + +## Remarks + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [ICorDebugHeapSegmentEnum Interface](icordebugheapsegmentenum-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugheapvalue-interface.md b/docs/framework/unmanaged-api/debugging/icordebugheapvalue-interface.md index c883b23274e07..0bfbcc697f45e 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugheapvalue-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugheapvalue-interface.md @@ -2,46 +2,46 @@ description: "Learn more about: ICorDebugHeapValue Interface" title: "ICorDebugHeapValue Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugHeapValue" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugHeapValue" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugHeapValue interface [.NET Framework debugging]" ms.assetid: 1bca66db-0359-4ae8-846e-e35f7e547e8b -topic_type: +topic_type: - "apiref" --- # ICorDebugHeapValue Interface -A subclass of "ICorDebugValue" that represents an object that has been collected by the common language runtime (CLR) garbage collector. - -## Methods - -|Method|Description| -|------------|-----------------| -|[CreateRelocBreakpoint Method](icordebugheapvalue-createrelocbreakpoint-method.md)|Not implemented.| -|[IsValid Method](icordebugheapvalue-isvalid-method.md)|Gets a value that indicates whether the object represented by this `ICorDebugHeapValue` is valid, or has been reclaimed by the garbage collector. This method has been deprecated in .NET Framework version 2.0.| - -## Remarks - +A subclass of "ICorDebugValue" that represents an object that has been collected by the common language runtime (CLR) garbage collector. + +## Methods + +|Method|Description| +|------------|-----------------| +|[CreateRelocBreakpoint Method](icordebugheapvalue-createrelocbreakpoint-method.md)|Not implemented.| +|[IsValid Method](icordebugheapvalue-isvalid-method.md)|Gets a value that indicates whether the object represented by this `ICorDebugHeapValue` is valid, or has been reclaimed by the garbage collector. This method has been deprecated in .NET Framework version 2.0.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugheapvalue-isvalid-method.md b/docs/framework/unmanaged-api/debugging/icordebugheapvalue-isvalid-method.md index 5cc2c62ac6fc5..8b59d4c1d75a8 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugheapvalue-isvalid-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugheapvalue-isvalid-method.md @@ -2,52 +2,52 @@ description: "Learn more about: ICorDebugHeapValue::IsValid Method" title: "ICorDebugHeapValue::IsValid Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugHeapValue.IsValid" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugHeapValue::IsValid" -helpviewer_keywords: +helpviewer_keywords: - "IsValid method [.NET Framework debugging]" - "ICorDebugHeapValue::IsValid method [.NET Framework debugging]" ms.assetid: 68e20e62-203d-46d8-bb91-8d3c61cfacc3 -topic_type: +topic_type: - "apiref" --- # ICorDebugHeapValue::IsValid Method -Gets a value that indicates whether the object represented by this ICorDebugHeapValue is valid. - - This method has been deprecated in .NET Framework version 2.0. - -## Syntax - -```cpp -HRESULT IsValid ( - [out] BOOL *pbValid -); -``` - -## Parameters - - `pbValid` - [out] A pointer to a Boolean value that indicates whether this value on the heap is valid. - -## Remarks - - The value is invalid if it has been reclaimed by the garbage collector. - - This method has been deprecated. In .NET Framework 2.0, all values are valid until [ICorDebugController::Continue](icordebugcontroller-continue-method.md) is called, at which time the values are invalidated. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets a value that indicates whether the object represented by this ICorDebugHeapValue is valid. + + This method has been deprecated in .NET Framework version 2.0. + +## Syntax + +```cpp +HRESULT IsValid ( + [out] BOOL *pbValid +); +``` + +## Parameters + + `pbValid` + [out] A pointer to a Boolean value that indicates whether this value on the heap is valid. + +## Remarks + + The value is invalid if it has been reclaimed by the garbage collector. + + This method has been deprecated. In .NET Framework 2.0, all values are valid until [ICorDebugController::Continue](icordebugcontroller-continue-method.md) is called, at which time the values are invalidated. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugheapvalue2-createhandle-method.md b/docs/framework/unmanaged-api/debugging/icordebugheapvalue2-createhandle-method.md index 8876155b31e63..80b75f5c5716f 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugheapvalue2-createhandle-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugheapvalue2-createhandle-method.md @@ -2,54 +2,54 @@ description: "Learn more about: ICorDebugHeapValue2::CreateHandle Method" title: "ICorDebugHeapValue2::CreateHandle Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugHeapValue2.CreateHandle" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugHeapValue2::CreateHandle" -helpviewer_keywords: +helpviewer_keywords: - "CreateHandle method [.NET Framework debugging]" - "ICorDebugHeapValue2::CreateHandle method [.NET Framework debugging]" ms.assetid: fbc418e8-fa22-420d-84ec-e0e1800db041 -topic_type: +topic_type: - "apiref" --- # ICorDebugHeapValue2::CreateHandle Method -Creates a handle of the specified type for the heap value represented by this ICorDebugHeapValue2 object. - -## Syntax - -```cpp -HRESULT CreateHandle ( +Creates a handle of the specified type for the heap value represented by this ICorDebugHeapValue2 object. + +## Syntax + +```cpp +HRESULT CreateHandle ( [in] CorDebugHandleType type, - [out] ICorDebugHandleValue **ppHandle -); -``` - -## Parameters - - `type` - [in] A value of the CorDebugHandleType enumeration that specifies the type of handle to be created. - - `ppHandle` - [out] A pointer to the address of an ICorDebugHandleValue object that represents the new handle for this heap value. - -## Remarks - - The handle will be created in the application domain that is associated with the heap value, and will become invalid if the application domain gets unloaded. - - Multiple calls to this function for the same heap value will create multiple handles. Because handles affect the performance of the garbage collector, the debugger should limit itself to a relatively small number of handles (about 256) that are active at a time. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - + [out] ICorDebugHandleValue **ppHandle +); +``` + +## Parameters + + `type` + [in] A value of the CorDebugHandleType enumeration that specifies the type of handle to be created. + + `ppHandle` + [out] A pointer to the address of an ICorDebugHandleValue object that represents the new handle for this heap value. + +## Remarks + + The handle will be created in the application domain that is associated with the heap value, and will become invalid if the application domain gets unloaded. + + Multiple calls to this function for the same heap value will create multiple handles. Because handles affect the performance of the garbage collector, the debugger should limit itself to a relatively small number of handles (about 256) that are active at a time. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugheapvalue2-interface1.md b/docs/framework/unmanaged-api/debugging/icordebugheapvalue2-interface1.md index 3028403e3b29f..7bc230b3e316f 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugheapvalue2-interface1.md +++ b/docs/framework/unmanaged-api/debugging/icordebugheapvalue2-interface1.md @@ -2,45 +2,45 @@ description: "Learn more about: ICorDebugHeapValue2 Interface" title: "ICorDebugHeapValue2 Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugHeapValue2" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugHeapValue2" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugHeapValue2 interface [.NET Framework debugging]" ms.assetid: 87360a52-90b1-4ada-80c0-589a556116d8 -topic_type: +topic_type: - "apiref" --- # ICorDebugHeapValue2 Interface -An extension of ICorDebugHeapValue that provides support for common language runtime (CLR) handles. - -## Methods - -|Method|Description| -|------------|-----------------| -|[CreateHandle Method](icordebugheapvalue2-createhandle-method.md)|Creates a handle of the specified type for this `ICorDebugHeapValue2` object.| - -## Remarks - +An extension of ICorDebugHeapValue that provides support for common language runtime (CLR) handles. + +## Methods + +|Method|Description| +|------------|-----------------| +|[CreateHandle Method](icordebugheapvalue2-createhandle-method.md)|Creates a handle of the specified type for this `ICorDebugHeapValue2` object.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugheapvalue3-getmonitoreventwaitlist-method.md b/docs/framework/unmanaged-api/debugging/icordebugheapvalue3-getmonitoreventwaitlist-method.md index ab6f1565fc3d5..369a94a39f3c8 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugheapvalue3-getmonitoreventwaitlist-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugheapvalue3-getmonitoreventwaitlist-method.md @@ -2,71 +2,71 @@ description: "Learn more about: ICorDebugHeapValue3::GetMonitorEventWaitList Method" title: "ICorDebugHeapValue3::GetMonitorEventWaitList Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugHeapValue3.GetMonitorEventWaitList" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugHeapValue3::GetMonitorEventWaitList" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugHeapValue3::GetMonitorEventWaitList method [.NET Framework debugging]" - "GetMonitorEventWaitList method [.NET Framework debugging]" ms.assetid: 035a9035-ac66-4953-b48a-99652b42b7fe -topic_type: +topic_type: - "apiref" --- # ICorDebugHeapValue3::GetMonitorEventWaitList Method -Provides an ordered list of threads that are queued on the event that is associated with a monitor lock. - -## Syntax - -```cpp -HRESULT GetMonitorEventWaitList ( - [out] ICorDebugThreadEnum **ppThreadEnum -); -``` - -## Parameters - - `ppThreadEnum` - [out] The ICorDebugThreadEnum enumerator that provides the ordered list of threads. - -## Return Value - - This method returns the following specific HRESULTs as well as HRESULT errors that indicate method failure. - -|HRESULT|Description| -|-------------|-----------------| -|S_OK|The list is not empty.| -|S_FALSE|The list is empty.| - -## Exceptions - -## Remarks - - The first thread in the list is the first thread that is released by the next call to . The next thread in the list is released on the following call, and so on. - - If the list is not empty, this method returns S_OK. If the list is empty, the method returns S_FALSE; in this case, the enumeration is still valid, although it is empty. - - In either case, the enumeration interface is usable only for the duration of the current synchronized state. However, the thread's interfaces dispensed from it are valid until the thread exits. - - If `ppThreadEnum` is not a valid pointer, the result is undefined. - - If an error occurs such that it cannot be determined which, if any, threads are waiting for the monitor, the method returns an HRESULT that indicates failure. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +Provides an ordered list of threads that are queued on the event that is associated with a monitor lock. + +## Syntax + +```cpp +HRESULT GetMonitorEventWaitList ( + [out] ICorDebugThreadEnum **ppThreadEnum +); +``` + +## Parameters + + `ppThreadEnum` + [out] The ICorDebugThreadEnum enumerator that provides the ordered list of threads. + +## Return Value + + This method returns the following specific HRESULTs as well as HRESULT errors that indicate method failure. + +|HRESULT|Description| +|-------------|-----------------| +|S_OK|The list is not empty.| +|S_FALSE|The list is empty.| + +## Exceptions + +## Remarks + + The first thread in the list is the first thread that is released by the next call to . The next thread in the list is released on the following call, and so on. + + If the list is not empty, this method returns S_OK. If the list is empty, the method returns S_FALSE; in this case, the enumeration is still valid, although it is empty. + + In either case, the enumeration interface is usable only for the duration of the current synchronized state. However, the thread's interfaces dispensed from it are valid until the thread exits. + + If `ppThreadEnum` is not a valid pointer, the result is undefined. + + If an error occurs such that it cannot be determined which, if any, threads are waiting for the monitor, the method returns an HRESULT that indicates failure. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugheapvalue3-getthreadowningmonitorlock-method.md b/docs/framework/unmanaged-api/debugging/icordebugheapvalue3-getthreadowningmonitorlock-method.md index db03c2c9f979b..65a61f0bd00e6 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugheapvalue3-getthreadowningmonitorlock-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugheapvalue3-getthreadowningmonitorlock-method.md @@ -2,77 +2,77 @@ description: "Learn more about: ICorDebugHeapValue3::GetThreadOwningMonitorLock Method" title: "ICorDebugHeapValue3::GetThreadOwningMonitorLock Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugHeapValue3.GetThreadOwningMonitorLock" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugHeapValue3::GetThreadOwningMonitorLock" -helpviewer_keywords: +helpviewer_keywords: - "GetThreadOwningMonitorLock method [.NET Framework debugging]" - "ICorDebugHeapValue3::GetThreadOwningMonitorLock method [.NET Framework debugging]" ms.assetid: e06fc19d-2cf4-4cad-81a3-137a68af8969 -topic_type: +topic_type: - "apiref" --- # ICorDebugHeapValue3::GetThreadOwningMonitorLock Method -Returns the managed thread that owns the monitor lock on this object. - -## Syntax - -```cpp -HRESULT GetThreadOwningMonitorLock ( - [out] ICorDebugThread **ppThread, - [out] DWORD *pAcquisitionCount -); -``` - -## Parameters - - `ppThread` - [out] The managed thread that owns the monitor lock on this object. - - `pAcquisitionCount` - [out] The number of times this thread would have to release the lock before it returns to being unowned. - -## Return Value - - This method returns the following specific HRESULTs as well as HRESULT errors that indicate method failure. - -|HRESULT|Description| -|-------------|-----------------| -|S_OK|The method completed successfully.| -|S_FALSE|No managed thread owns the monitor lock on this object.| - -## Exceptions - -## Remarks - - If a managed thread owns the monitor lock on this object: - -- The method returns S_OK. - -- The thread object is valid until the thread exits. - - If no managed thread owns the monitor lock on this object, `ppThread` and `pAcquisitionCount` are unchanged, and the method returns S_FALSE. - - If `ppThread` or `pAcquisitionCount` is not a valid pointer, the result is undefined. - - If an error occurs such that it cannot be determined which, if any, thread owns the monitor lock on this object, the method returns an HRESULT that indicates failure. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +Returns the managed thread that owns the monitor lock on this object. + +## Syntax + +```cpp +HRESULT GetThreadOwningMonitorLock ( + [out] ICorDebugThread **ppThread, + [out] DWORD *pAcquisitionCount +); +``` + +## Parameters + + `ppThread` + [out] The managed thread that owns the monitor lock on this object. + + `pAcquisitionCount` + [out] The number of times this thread would have to release the lock before it returns to being unowned. + +## Return Value + + This method returns the following specific HRESULTs as well as HRESULT errors that indicate method failure. + +|HRESULT|Description| +|-------------|-----------------| +|S_OK|The method completed successfully.| +|S_FALSE|No managed thread owns the monitor lock on this object.| + +## Exceptions + +## Remarks + + If a managed thread owns the monitor lock on this object: + +- The method returns S_OK. + +- The thread object is valid until the thread exits. + + If no managed thread owns the monitor lock on this object, `ppThread` and `pAcquisitionCount` are unchanged, and the method returns S_FALSE. + + If `ppThread` or `pAcquisitionCount` is not a valid pointer, the result is undefined. + + If an error occurs such that it cannot be determined which, if any, thread owns the monitor lock on this object, the method returns an HRESULT that indicates failure. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugheapvalue3-interface.md b/docs/framework/unmanaged-api/debugging/icordebugheapvalue3-interface.md index 8447da4a0d71f..352578a5cebd8 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugheapvalue3-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugheapvalue3-interface.md @@ -2,46 +2,46 @@ description: "Learn more about: ICorDebugHeapValue3 Interface" title: "ICorDebugHeapValue3 Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugHeapValue3" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugHeapValue3" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugHeapValue3 interface [.NET Framework debugging]" ms.assetid: 9c421bb0-e647-4b2d-a986-f3d578cc7f20 -topic_type: +topic_type: - "apiref" --- # ICorDebugHeapValue3 Interface -Exposes the monitor lock properties of objects. This interface extends the ICorDebugHeapValue and ICorDebugHeapValue2 interfaces. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetThreadOwningMonitorLock Method](icordebugheapvalue3-getthreadowningmonitorlock-method.md)|Returns the managed thread that owns the monitor lock on this object.| -|[GetMonitorEventWaitList Method](icordebugheapvalue3-getmonitoreventwaitlist-method.md)|Provides an ordered list of threads that are queued on the event that is associated with a monitor lock.| - -## Remarks - +Exposes the monitor lock properties of objects. This interface extends the ICorDebugHeapValue and ICorDebugHeapValue2 interfaces. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetThreadOwningMonitorLock Method](icordebugheapvalue3-getthreadowningmonitorlock-method.md)|Returns the managed thread that owns the monitor lock on this object.| +|[GetMonitorEventWaitList Method](icordebugheapvalue3-getmonitoreventwaitlist-method.md)|Provides an ordered list of threads that are queued on the event that is associated with a monitor lock.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugilcode-getehclauses-method.md b/docs/framework/unmanaged-api/debugging/icordebugilcode-getehclauses-method.md index d52b0cbf6286e..420aa1c5527ca 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugilcode-getehclauses-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugilcode-getehclauses-method.md @@ -2,58 +2,58 @@ description: "Learn more about: ICorDebugILCode::GetEHClauses Method" title: "ICorDebugILCode::GetEHClauses Method" ms.date: "03/30/2017" -dev_langs: +dev_langs: - "cpp" -api_name: +api_name: - "ICorDebugILCode.GetEHClauses" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" ms.assetid: cf7a0e00-06ae-47a5-8037-598b26196802 -topic_type: +topic_type: - "apiref" --- # ICorDebugILCode::GetEHClauses Method -[Supported in the .NET Framework 4.5.2 and later versions] - - Returns a pointer to a list of exception handling (EH) clauses that are defined for this intermediate language (IL). - -## Syntax - +[Supported in the .NET Framework 4.5.2 and later versions] + + Returns a pointer to a list of exception handling (EH) clauses that are defined for this intermediate language (IL). + +## Syntax + ```cpp -HRESULT GetEHClauses( - [in] ULONG32 cClauses, - [out] ULONG32 * pcClauses, - [out, size_is(cClauses), length_is(*pcClauses)] CorDebugEHClause clauses[]); -``` - -## Parameters - - `cClauses` - [in] The storage capacity of the `clauses` array. See the Remarks section for more information. - - `pcClauses` - [out] The number of clauses about which information is written to the `clauses` array. - - clauses - [out] An array of [CorDebugEHClause](cordebugehclause-structure.md) objects that contain information on exception handling clauses defined for this IL. - -## Remarks - - If `cClauses` is 0 and `pcClauses` is non-**null**, `pcClauses` is set to the number of available exception handling clauses. If `cClauses` is non-zero, it represents the storage capacity of the `clauses` array. When the method returns, `clauses` contains a maximum of `cClauses` items, and `pcClauses` is set to the number of clauses actually written to the `clauses` array. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v452plus](../../../../includes/net-current-v452plus-md.md)] - +HRESULT GetEHClauses( + [in] ULONG32 cClauses, + [out] ULONG32 * pcClauses, + [out, size_is(cClauses), length_is(*pcClauses)] CorDebugEHClause clauses[]); +``` + +## Parameters + + `cClauses` + [in] The storage capacity of the `clauses` array. See the Remarks section for more information. + + `pcClauses` + [out] The number of clauses about which information is written to the `clauses` array. + + clauses + [out] An array of [CorDebugEHClause](cordebugehclause-structure.md) objects that contain information on exception handling clauses defined for this IL. + +## Remarks + + If `cClauses` is 0 and `pcClauses` is non-**null**, `pcClauses` is set to the number of available exception handling clauses. If `cClauses` is non-zero, it represents the storage capacity of the `clauses` array. When the method returns, `clauses` contains a maximum of `cClauses` items, and `pcClauses` is set to the number of clauses actually written to the `clauses` array. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v452plus](../../../../includes/net-current-v452plus-md.md)] + ## See also - [ICorDebugILCode Interface](icordebugilcode-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugilcode2-getinstrumentedilmap-method.md b/docs/framework/unmanaged-api/debugging/icordebugilcode2-getinstrumentedilmap-method.md index 2c08feb2182a0..4e5ab204fbb81 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugilcode2-getinstrumentedilmap-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugilcode2-getinstrumentedilmap-method.md @@ -2,63 +2,63 @@ description: "Learn more about: ICorDebugILCode2::GetInstrumentedILMap Method" title: "ICorDebugILCode2::GetInstrumentedILMap Method" ms.date: "03/30/2017" -dev_langs: +dev_langs: - "cpp" -api_name: +api_name: - "ICorDebugILCode2.GetInstrumentedILMap" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" ms.assetid: 7a4e3085-8f95-40ef-a4be-7d6146f47ce2 -topic_type: +topic_type: - "apiref" --- # ICorDebugILCode2::GetInstrumentedILMap Method -[Supported in the .NET Framework 4.5.2 and later versions] - - Returns a map from profiler-instrumented intermediate language (IL) offsets to original method IL offsets for this instance. - -## Syntax - +[Supported in the .NET Framework 4.5.2 and later versions] + + Returns a map from profiler-instrumented intermediate language (IL) offsets to original method IL offsets for this instance. + +## Syntax + ```cpp -HRESULT GetInstrumentedILMap( - [in] ULONG32 cMap, - [out] ULONG32 *pcMap, - [out, size_is(cMap), length_is(*pcMap)] COR_IL_MAP map[] -); -``` - -## Parameters - - cMap - [in] The storage capacity of the `map` array. See the Remarks section for more information. - - pcMap - [out] The number of COR_IL_MAP values written to the map array. - - map - [out] An array of COR_IL_MAP values that provide information on mappings from profiler-instrumented IL to the IL of the original method. - -## Remarks - - If the profiler sets the mapping by calling the [ICorProfilerInfo::SetILInstrumentedCodeMap](../profiling/icorprofilerinfo-setilinstrumentedcodemap-method.md) method, the debugger can call this method to retrieve the mapping and to use the mapping internally when calculating IL offsets for stack traces and variable lifetimes. - - If `cMap` is 0 and `pcMap` is non-**null**, `pcMap` is set to the number of available COR_IL_MAP values. If `cMap` is non-zero, it represents the storage capacity of the `map` array. When the method returns, `map` contains a maximum of `cMap` items, and `pcMap` is set to the number of COR_IL_MAP values actually written to the `map` array. - - If the IL hasn't been instrumented or the mapping wasn't provided by a profiler, this method returns `S_OK` and sets `pcMap` to 0. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v452plus](../../../../includes/net-current-v452plus-md.md)] - +HRESULT GetInstrumentedILMap( + [in] ULONG32 cMap, + [out] ULONG32 *pcMap, + [out, size_is(cMap), length_is(*pcMap)] COR_IL_MAP map[] +); +``` + +## Parameters + + cMap + [in] The storage capacity of the `map` array. See the Remarks section for more information. + + pcMap + [out] The number of COR_IL_MAP values written to the map array. + + map + [out] An array of COR_IL_MAP values that provide information on mappings from profiler-instrumented IL to the IL of the original method. + +## Remarks + + If the profiler sets the mapping by calling the [ICorProfilerInfo::SetILInstrumentedCodeMap](../profiling/icorprofilerinfo-setilinstrumentedcodemap-method.md) method, the debugger can call this method to retrieve the mapping and to use the mapping internally when calculating IL offsets for stack traces and variable lifetimes. + + If `cMap` is 0 and `pcMap` is non-**null**, `pcMap` is set to the number of available COR_IL_MAP values. If `cMap` is non-zero, it represents the storage capacity of the `map` array. When the method returns, `map` contains a maximum of `cMap` items, and `pcMap` is set to the number of COR_IL_MAP values actually written to the `map` array. + + If the IL hasn't been instrumented or the mapping wasn't provided by a profiler, this method returns `S_OK` and sets `pcMap` to 0. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v452plus](../../../../includes/net-current-v452plus-md.md)] + ## See also - [ICorProfilerInfo::SetILInstrumentedCodeMap](../profiling/icorprofilerinfo-setilinstrumentedcodemap-method.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugilcode2-getlocalvarsigtoken-method.md b/docs/framework/unmanaged-api/debugging/icordebugilcode2-getlocalvarsigtoken-method.md index 4bfa616702ab2..3b7abc71388ac 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugilcode2-getlocalvarsigtoken-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugilcode2-getlocalvarsigtoken-method.md @@ -2,49 +2,49 @@ description: "Learn more about: ICorDebugILCode2::GetLocalVarSigToken Method" title: "ICorDebugILCode2::GetLocalVarSigToken Method" ms.date: "03/30/2017" -dev_langs: +dev_langs: - "cpp" -api_name: +api_name: - "ICorDebugILCode2.GetLocalVarSigToken" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" ms.assetid: 17665b77-1342-4115-94fd-9f45b0ecfb0f -topic_type: +topic_type: - "apiref" --- # ICorDebugILCode2::GetLocalVarSigToken Method -[Supported in the .NET Framework 4.5.2 and later versions] - - Gets the metadata token for the local variable signature for the function that is represented by this instance. - -## Syntax - +[Supported in the .NET Framework 4.5.2 and later versions] + + Gets the metadata token for the local variable signature for the function that is represented by this instance. + +## Syntax + ```cpp -HRESULT GetLocalVarSigToken( - [out] mdSignature *pmdSig -); -``` - -## Parameters - - `pmdSig` - [out] A pointer to the `mdSignature` token for the local variable signature for this function, or `mdSignatureNil` if there is no signature (that is, if the function doesn't have any local variables). - -## Remarks - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v452plus](../../../../includes/net-current-v452plus-md.md)] - +HRESULT GetLocalVarSigToken( + [out] mdSignature *pmdSig +); +``` + +## Parameters + + `pmdSig` + [out] A pointer to the `mdSignature` token for the local variable signature for this function, or `mdSignatureNil` if there is no signature (that is, if the function doesn't have any local variables). + +## Remarks + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v452plus](../../../../includes/net-current-v452plus-md.md)] + ## See also - [ICorDebugILCode2 Interface](icordebugilcode2-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugilframe-enumeratearguments-method.md b/docs/framework/unmanaged-api/debugging/icordebugilframe-enumeratearguments-method.md index cc5b44fc71d60..20bbbafa95b36 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugilframe-enumeratearguments-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugilframe-enumeratearguments-method.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugILFrame::EnumerateArguments Method" title: "ICorDebugILFrame::EnumerateArguments Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugILFrame.EnumerateArguments" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugILFrame::EnumerateArguments" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugILFrame::EnumerateArguments method [.NET Framework debugging]" - "EnumerateArguments method [.NET Framework debugging]" ms.assetid: 00ac81e2-a774-422a-bd88-54a4b3c99f73 -topic_type: +topic_type: - "apiref" --- # ICorDebugILFrame::EnumerateArguments Method -Gets an enumerator for the arguments in this frame. - -## Syntax - -```cpp -HRESULT EnumerateArguments ( - [out] ICorDebugValueEnum **ppValueEnum -); -``` - -## Parameters - - `ppValueEnum` - [out] A pointer to the address of an ICorDebugValueEnum object that is the enumerator for the arguments in this frame. - -## Remarks - - `EnumerateArguments` gets an enumerator that can list the arguments available in the call frame that is represented by this ICorDebugILFrame object. The list will include arguments that are [vararg](/cpp/windows/vararg) (that is, a variable number of arguments) as well as arguments that are not `vararg`. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets an enumerator for the arguments in this frame. + +## Syntax + +```cpp +HRESULT EnumerateArguments ( + [out] ICorDebugValueEnum **ppValueEnum +); +``` + +## Parameters + + `ppValueEnum` + [out] A pointer to the address of an ICorDebugValueEnum object that is the enumerator for the arguments in this frame. + +## Remarks + + `EnumerateArguments` gets an enumerator that can list the arguments available in the call frame that is represented by this ICorDebugILFrame object. The list will include arguments that are [vararg](/cpp/windows/vararg) (that is, a variable number of arguments) as well as arguments that are not `vararg`. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugilframe-enumeratelocalvariables-method.md b/docs/framework/unmanaged-api/debugging/icordebugilframe-enumeratelocalvariables-method.md index 0dbb1940dbd51..410132a3cfd7b 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugilframe-enumeratelocalvariables-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugilframe-enumeratelocalvariables-method.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugILFrame::EnumerateLocalVariables Method" title: "ICorDebugILFrame::EnumerateLocalVariables Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugILFrame.EnumerateLocalVariables" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugILFrame::EnumerateLocalVariables" -helpviewer_keywords: +helpviewer_keywords: - "EnumerateLocalVariables method [.NET Framework debugging]" - "ICorDebugILFrame::EnumerateLocalVariables method [.NET Framework debugging]" ms.assetid: 1a67fa1b-2419-4cd0-aad4-6f46a0719b4b -topic_type: +topic_type: - "apiref" --- # ICorDebugILFrame::EnumerateLocalVariables Method -Gets an enumerator for the local variables in this frame. - -## Syntax - -```cpp +Gets an enumerator for the local variables in this frame. + +## Syntax + +```cpp HRESULT EnumerateLocalVariables( - [out] ICorDebugValueEnum **ppValueEnum -); -``` - -## Parameters - - `ppValueEnum` - [out] A pointer to the address of an ICorDebugValueEnum object that is the enumerator for the local variables in this frame. - -## Remarks - - `EnumerateLocalVariables` gets an enumerator that can list the local variables available in the call frame that is represented by this ICorDebugILFrame object. The list may not include all of the local variables in the running function, because some of them may not be active. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - + [out] ICorDebugValueEnum **ppValueEnum +); +``` + +## Parameters + + `ppValueEnum` + [out] A pointer to the address of an ICorDebugValueEnum object that is the enumerator for the local variables in this frame. + +## Remarks + + `EnumerateLocalVariables` gets an enumerator that can list the local variables available in the call frame that is represented by this ICorDebugILFrame object. The list may not include all of the local variables in the running function, because some of them may not be active. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugilframe2-enumeratetypeparameters-method.md b/docs/framework/unmanaged-api/debugging/icordebugilframe2-enumeratetypeparameters-method.md index 73a47a1fd0ad7..cd5df75cead1e 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugilframe2-enumeratetypeparameters-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugilframe2-enumeratetypeparameters-method.md @@ -2,52 +2,52 @@ description: "Learn more about: ICorDebugILFrame2::EnumerateTypeParameters Method" title: "ICorDebugILFrame2::EnumerateTypeParameters Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugILFrame2.EnumerateTypeParameters" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugILFrame2::EnumerateTypeParameters" -helpviewer_keywords: +helpviewer_keywords: - "EnumerateTypeParameters method, ICorDebugILFrame2 interface [.NET Framework debugging]" - "ICorDebugILFrame2::EnumerateTypeParameters method [.NET Framework debugging]" ms.assetid: 722d0d74-e0df-491f-98c4-62d501dfaf6f -topic_type: +topic_type: - "apiref" --- # ICorDebugILFrame2::EnumerateTypeParameters Method -Gets an ICorDebugTypeEnum object that contains the parameters in this frame. - -## Syntax - -```cpp -HRESULT EnumerateTypeParameters ( - [out] ICorDebugTypeEnum **ppTyParEnum -); -``` - -## Parameters - - `ppTyParEnum` - A pointer to the address of a ICorDebugTypeEnum interface object that allows enumeration of type parameters. - - The list of type parameters include the class type parameters (if any) followed by the method type parameters (if any). - -## Remarks - - Use the [IMetaDataImport2::EnumGenericParams](../metadata/imetadataimport2-enumgenericparams-method.md) method to determine how many class type parameters and method type parameters this list contains. - - The type parameters are not always available. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets an ICorDebugTypeEnum object that contains the parameters in this frame. + +## Syntax + +```cpp +HRESULT EnumerateTypeParameters ( + [out] ICorDebugTypeEnum **ppTyParEnum +); +``` + +## Parameters + + `ppTyParEnum` + A pointer to the address of a ICorDebugTypeEnum interface object that allows enumeration of type parameters. + + The list of type parameters include the class type parameters (if any) followed by the method type parameters (if any). + +## Remarks + + Use the [IMetaDataImport2::EnumGenericParams](../metadata/imetadataimport2-enumgenericparams-method.md) method to determine how many class type parameters and method type parameters this list contains. + + The type parameters are not always available. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugilframe3-getreturnvalueforiloffset-method.md b/docs/framework/unmanaged-api/debugging/icordebugilframe3-getreturnvalueforiloffset-method.md index 18e9ec566f260..206d5c9ad30e8 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugilframe3-getreturnvalueforiloffset-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugilframe3-getreturnvalueforiloffset-method.md @@ -2,73 +2,73 @@ description: "Learn more about: ICorDebugILFrame3::GetReturnValueForILOffset Method" title: "ICorDebugILFrame3::GetReturnValueForILOffset Method" ms.date: "03/30/2017" -dev_langs: +dev_langs: - "csharp" - "vb" -api_name: +api_name: - "ICorDebugILFrame3.GetReturnValueForILOffset" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" ms.assetid: 06522727-5f64-4391-9331-11386883c352 -topic_type: +topic_type: - "apiref" --- # ICorDebugILFrame3::GetReturnValueForILOffset Method -Gets an "ICorDebugValue" object that encapsulates the return value of a function. - -## Syntax - +Gets an "ICorDebugValue" object that encapsulates the return value of a function. + +## Syntax + ```cpp -HRESULT GetReturnValueForILOffset( +HRESULT GetReturnValueForILOffset( ULONG32 ILoffset, - [out] ICorDebugValue **ppReturnValue -); -``` - -## Parameters - - `ILOffset` - The IL offset. See the Remarks section. - - `ppReturnValue` - A pointer to the address of an "ICorDebugValue" interface object that provides information about the return value of a function call. - -## Remarks - - This method is used along with the [ICorDebugCode3::GetReturnValueLiveOffset](icordebugcode3-getreturnvalueliveoffset-method.md) method to get the return value of a method. It is particularly useful in the case of methods whose return values are ignored, as in the following two code examples. The first example calls the method, but ignores the method's return value. - + [out] ICorDebugValue **ppReturnValue +); +``` + +## Parameters + + `ILOffset` + The IL offset. See the Remarks section. + + `ppReturnValue` + A pointer to the address of an "ICorDebugValue" interface object that provides information about the return value of a function call. + +## Remarks + + This method is used along with the [ICorDebugCode3::GetReturnValueLiveOffset](icordebugcode3-getreturnvalueliveoffset-method.md) method to get the return value of a method. It is particularly useful in the case of methods whose return values are ignored, as in the following two code examples. The first example calls the method, but ignores the method's return value. + [!code-csharp[Unmanaged.Debugging.MRV#1](../../../../samples/snippets/csharp/VS_Snippets_CLR/unmanaged.debugging.mrv/cs/mrv1.cs#1)] - [!code-vb[Unmanaged.Debugging.MRV#1](../../../../samples/snippets/visualbasic/VS_Snippets_CLR/unmanaged.debugging.mrv/vb/mrv1.vb#1)] - - The second example illustrates a much more common problem in debugging. Because a method is used as an argument in a method call, its return value is accessible only when the debugger steps through the called method. In many cases, particularly when the called method is defined in an external library, that is not possible. - + [!code-vb[Unmanaged.Debugging.MRV#1](../../../../samples/snippets/visualbasic/VS_Snippets_CLR/unmanaged.debugging.mrv/vb/mrv1.vb#1)] + + The second example illustrates a much more common problem in debugging. Because a method is used as an argument in a method call, its return value is accessible only when the debugger steps through the called method. In many cases, particularly when the called method is defined in an external library, that is not possible. + [!code-csharp[Unmanaged.Debugging.MRV#2](../../../../samples/snippets/csharp/VS_Snippets_CLR/unmanaged.debugging.mrv/cs/mrv2.cs#2)] - [!code-vb[Unmanaged.Debugging.MRV#2](../../../../samples/snippets/visualbasic/VS_Snippets_CLR/unmanaged.debugging.mrv/vb/mrv2.vb#2)] - - If you pass the [ICorDebugCode3::GetReturnValueLiveOffset](icordebugcode3-getreturnvalueliveoffset-method.md) method an IL offset to a function call site, it returns one or more native offsets. The debugger can then set breakpoints on these native offsets in the function. When the debugger hits one of the breakpoints, you can then pass the same IL offset that you passed to this method to get the return value. The debugger should then clear all the breakpoints that it set. - + [!code-vb[Unmanaged.Debugging.MRV#2](../../../../samples/snippets/visualbasic/VS_Snippets_CLR/unmanaged.debugging.mrv/vb/mrv2.vb#2)] + + If you pass the [ICorDebugCode3::GetReturnValueLiveOffset](icordebugcode3-getreturnvalueliveoffset-method.md) method an IL offset to a function call site, it returns one or more native offsets. The debugger can then set breakpoints on these native offsets in the function. When the debugger hits one of the breakpoints, you can then pass the same IL offset that you passed to this method to get the return value. The debugger should then clear all the breakpoints that it set. + > [!WARNING] -> The [ICorDebugCode3::GetReturnValueLiveOffset Method](icordebugcode3-getreturnvalueliveoffset-method.md) and `ICorDebugILFrame3::GetReturnValueForILOffset` methods allow you to get return value information for reference types only. Retrieving return value information from value types (that is, all types that derive from ) is not supported. - - The IL offset specified by the `ILOffset` parameter should be at a function call site, and the debuggee should be stopped at a breakpoint set at the native offset returned by the [ICorDebugCode3::GetReturnValueLiveOffset](icordebugcode3-getreturnvalueliveoffset-method.md) method for the same IL offset. If the debuggee is not stopped at the correct location for the specified IL offset, the API will fail. - - If the function call doesn't return a value, the API will fail. - - The `ICorDebugILFrame3::GetReturnValueForILOffset` method is available only on x86-based and AMD64 systems. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v451plus](../../../../includes/net-current-v451plus-md.md)] - +> The [ICorDebugCode3::GetReturnValueLiveOffset Method](icordebugcode3-getreturnvalueliveoffset-method.md) and `ICorDebugILFrame3::GetReturnValueForILOffset` methods allow you to get return value information for reference types only. Retrieving return value information from value types (that is, all types that derive from ) is not supported. + + The IL offset specified by the `ILOffset` parameter should be at a function call site, and the debuggee should be stopped at a breakpoint set at the native offset returned by the [ICorDebugCode3::GetReturnValueLiveOffset](icordebugcode3-getreturnvalueliveoffset-method.md) method for the same IL offset. If the debuggee is not stopped at the correct location for the specified IL offset, the API will fail. + + If the function call doesn't return a value, the API will fail. + + The `ICorDebugILFrame3::GetReturnValueForILOffset` method is available only on x86-based and AMD64 systems. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v451plus](../../../../includes/net-current-v451plus-md.md)] + ## See also - [GetReturnValueLiveOffset Method](icordebugcode3-getreturnvalueliveoffset-method.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugilframe3-interface.md b/docs/framework/unmanaged-api/debugging/icordebugilframe3-interface.md index 70304b24fdfb0..6f03e5139ce7a 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugilframe3-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugilframe3-interface.md @@ -2,41 +2,41 @@ description: "Learn more about: ICorDebugILFrame3 Interface" title: "ICorDebugILFrame3 Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugILFrame3" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" ms.assetid: 15212cb5-93d4-4025-bec9-d4b9919eb1fe -topic_type: +topic_type: - "apiref" --- # ICorDebugILFrame3 Interface -Provides a method that encapsulates the return value of a function. `ICorDebugILFrame3` is a logical extension of the ICorDebugILFrame and ICorDebugILFrame2 interfaces. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetReturnValueForILOffset Method](icordebugilframe3-getreturnvalueforiloffset-method.md)|Gets an ICorDebugValue object that encapsulates the return value of a function.| - -## Remarks - +Provides a method that encapsulates the return value of a function. `ICorDebugILFrame3` is a logical extension of the ICorDebugILFrame and ICorDebugILFrame2 interfaces. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetReturnValueForILOffset Method](icordebugilframe3-getreturnvalueforiloffset-method.md)|Gets an ICorDebugValue object that encapsulates the return value of a function.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v451plus](../../../../includes/net-current-v451plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v451plus](../../../../includes/net-current-v451plus-md.md)] + ## See also - [ICorDebugCode3 Interface](icordebugcode3-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugilframe4-enumeratelocalvariablesex-method.md b/docs/framework/unmanaged-api/debugging/icordebugilframe4-enumeratelocalvariablesex-method.md index c189fe1b6c810..2628686c58e73 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugilframe4-enumeratelocalvariablesex-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugilframe4-enumeratelocalvariablesex-method.md @@ -2,57 +2,57 @@ description: "Learn more about: ICorDebugILFrame4::EnumerateLocalVariablesEx Method" title: "ICorDebugILFrame4::EnumerateLocalVariablesEx Method" ms.date: "03/30/2017" -dev_langs: +dev_langs: - "cpp" -api_name: +api_name: - "ICorDebugILFrame4.EnumerateLocalVariablesEx" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" ms.assetid: 6f60aae6-70ec-4c4c-963a-138df98c4668 -topic_type: +topic_type: - "apiref" --- # ICorDebugILFrame4::EnumerateLocalVariablesEx Method -[Supported in the .NET Framework 4.5.2 and later versions] - - Gets an enumerator for the local variable in the frame, and optionally includes variables added in profiler ReJIT instrumentation. - -## Syntax - +[Supported in the .NET Framework 4.5.2 and later versions] + + Gets an enumerator for the local variable in the frame, and optionally includes variables added in profiler ReJIT instrumentation. + +## Syntax + ```cpp -HRESULT EnumerateLocalVariablesEx( +HRESULT EnumerateLocalVariablesEx( [in] ILCodeKind flags, - [out] ICorDebugValueEnum **ppValueEnum -); -``` - -## Parameters - - `flags` - [in] An [ILCodeKind](ilcodekind-enumeration.md) enumeration member that specifies whether variables added in profiler ReJIT instrumentation are included in the frame. - - `ppValueEnum` - [out] A pointer to the address of an "ICorDebugValueEnum" object that is the enumerator for the local variables in this frame. - -## Remarks - - This method is similar to the [EnumerateLocalVariables](icordebugilframe-enumeratelocalvariables-method.md) method, except that it optionally accesses variables added in profiler ReJIT instrumentation. Setting `flags` to `ILCODE_ORIGINAL_IL` is equivalent to calling [ICorDebugILFrame::EnumerateLocalVariables](icordebugilframe-enumeratelocalvariables-method.md). Setting `flags` to `ILCODE_REJIT_IL` allows the debugger to access the local variables added in profiler ReJIT instrumentation. If the intermediate language (IL) is not instrumented, the enumeration is empty and the method returns `S_OK`. - - The enumerator may not include all of the local variables in the running method, since some of them may not be active. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v452plus](../../../../includes/net-current-v452plus-md.md)] - + [out] ICorDebugValueEnum **ppValueEnum +); +``` + +## Parameters + + `flags` + [in] An [ILCodeKind](ilcodekind-enumeration.md) enumeration member that specifies whether variables added in profiler ReJIT instrumentation are included in the frame. + + `ppValueEnum` + [out] A pointer to the address of an "ICorDebugValueEnum" object that is the enumerator for the local variables in this frame. + +## Remarks + + This method is similar to the [EnumerateLocalVariables](icordebugilframe-enumeratelocalvariables-method.md) method, except that it optionally accesses variables added in profiler ReJIT instrumentation. Setting `flags` to `ILCODE_ORIGINAL_IL` is equivalent to calling [ICorDebugILFrame::EnumerateLocalVariables](icordebugilframe-enumeratelocalvariables-method.md). Setting `flags` to `ILCODE_REJIT_IL` allows the debugger to access the local variables added in profiler ReJIT instrumentation. If the intermediate language (IL) is not instrumented, the enumeration is empty and the method returns `S_OK`. + + The enumerator may not include all of the local variables in the running method, since some of them may not be active. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v452plus](../../../../includes/net-current-v452plus-md.md)] + ## See also - [ICorDebugILFrame4 Interface](icordebugilframe4-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugilframe4-getcodeex-method.md b/docs/framework/unmanaged-api/debugging/icordebugilframe4-getcodeex-method.md index ed7a9eb801dba..d2eb73eeb6cee 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugilframe4-getcodeex-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugilframe4-getcodeex-method.md @@ -2,55 +2,55 @@ description: "Learn more about: ICorDebugILFrame4::GetCodeEx Method" title: "ICorDebugILFrame4::GetCodeEx Method" ms.date: "03/30/2017" -dev_langs: +dev_langs: - "cpp" -api_name: +api_name: - "ICorDebugILFrame4.GetLocalVariableEx" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" ms.assetid: aeda0e42-29ee-4ca8-9f21-ac4641677a62 -topic_type: +topic_type: - "apiref" --- # ICorDebugILFrame4::GetCodeEx Method -[Supported in the .NET Framework 4.5.2 and later versions] - - Gets a pointer to the code that this stack frame is executing. - -## Syntax - +[Supported in the .NET Framework 4.5.2 and later versions] + + Gets a pointer to the code that this stack frame is executing. + +## Syntax + ```cpp -HRESULT GetCodeEx( +HRESULT GetCodeEx( [in] ILCodeKind flags, - [out] ICorDebugCode **ppCode -); -``` - -## Parameters - - `flags` - [in] An [ILCodeKind](ilcodekind-enumeration.md) enumeration member that specifies whether the intermediate language (IL) defined by the profiler's ReJIT request is included in the frame. - - `ppCode` - [out] A pointer to the address of an "ICorDebugCode" object that represents the code that this stack frame is executing. - -## Remarks - - This method is similar to the [ICorDebugFrame::GetCode](icordebugframe-getcode-method.md) method, except that it optionally accesses code defined by the profiler's ReJIT request. Calling this method with a `flags` value of `ILCODE_ORIGINAL_IL` is equivalent to calling [GetCode](icordebugframe-getcode-method.md); if the method is instrumented, its IL will not be accessible. `ILCODE_REJIT_IL` allows the debugger to access the IL defined by the profiler's ReJIT request. If the IL is not instrumented, `ppCode` is **null**, and the method returns `S_OK`. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v452plus](../../../../includes/net-current-v452plus-md.md)] - + [out] ICorDebugCode **ppCode +); +``` + +## Parameters + + `flags` + [in] An [ILCodeKind](ilcodekind-enumeration.md) enumeration member that specifies whether the intermediate language (IL) defined by the profiler's ReJIT request is included in the frame. + + `ppCode` + [out] A pointer to the address of an "ICorDebugCode" object that represents the code that this stack frame is executing. + +## Remarks + + This method is similar to the [ICorDebugFrame::GetCode](icordebugframe-getcode-method.md) method, except that it optionally accesses code defined by the profiler's ReJIT request. Calling this method with a `flags` value of `ILCODE_ORIGINAL_IL` is equivalent to calling [GetCode](icordebugframe-getcode-method.md); if the method is instrumented, its IL will not be accessible. `ILCODE_REJIT_IL` allows the debugger to access the IL defined by the profiler's ReJIT request. If the IL is not instrumented, `ppCode` is **null**, and the method returns `S_OK`. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v452plus](../../../../includes/net-current-v452plus-md.md)] + ## See also - [ICorDebugILFrame4 Interface](icordebugilframe4-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugilframe4-getlocalvariableex-method.md b/docs/framework/unmanaged-api/debugging/icordebugilframe4-getlocalvariableex-method.md index 0b3a02635c6e3..6d542051f86d3 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugilframe4-getlocalvariableex-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugilframe4-getlocalvariableex-method.md @@ -2,59 +2,59 @@ description: "Learn more about: ICorDebugILFrame4::GetLocalVariableEx Method" title: "ICorDebugILFrame4::GetLocalVariableEx Method" ms.date: "03/30/2017" -dev_langs: +dev_langs: - "cpp" -api_name: +api_name: - "ICorDebugILFrame4.GetCodeEx" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" ms.assetid: 0c8676f8-ca0d-4998-b64d-fefac7e38912 -topic_type: +topic_type: - "apiref" --- # ICorDebugILFrame4::GetLocalVariableEx Method -[Supported in the .NET Framework 4.5.2 and later versions] - - Gets the value of the specified local variable in this intermediate language (IL) stack frame, and optionally accesses a variable added in profiler ReJIT instrumentation. - -## Syntax - +[Supported in the .NET Framework 4.5.2 and later versions] + + Gets the value of the specified local variable in this intermediate language (IL) stack frame, and optionally accesses a variable added in profiler ReJIT instrumentation. + +## Syntax + ```cpp -HRESULT GetLocalVariableEx( +HRESULT GetLocalVariableEx( [in] ILCodeKind flags, [in] DWORD dwIndex, - [out] ICorDebugValue **ppValue -); -``` - -## Parameters - - `flags` - [in] An [ILCodeKind](ilcodekind-enumeration.md) enumeration member that specifies whether a variable added in profiler ReJIT instrumentation is included in the frame. - - `dwIndex` - [in] The index of the local variable in the IL stack frame. - - `ppValue` - [out] A pointer to the address of an "ICorDebugValue" object that represents the retrieved value. - -## Remarks - - This method is similar to the [GetLocalVariable](icordebugilframe-getlocalvariable-method.md) method, except that it optionally accesses a variable added in profiler ReJIT instrumentation. Calling this method with a `flags` value of `ILCODE_ORIGINAL_IL` is equivalent to calling [GetLocalVariable](icordebugilframe-getlocalvariable-method.md); if the method is instrumented with additional local variables, those variables cannot be accessed. `ILCODE_REJIT_IL` allows the debugger to access the local variables added in profiler ReJIT instrumentation. If the IL is not instrumented, the method returns `E_INVALIDARG`. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v452plus](../../../../includes/net-current-v452plus-md.md)] - + [out] ICorDebugValue **ppValue +); +``` + +## Parameters + + `flags` + [in] An [ILCodeKind](ilcodekind-enumeration.md) enumeration member that specifies whether a variable added in profiler ReJIT instrumentation is included in the frame. + + `dwIndex` + [in] The index of the local variable in the IL stack frame. + + `ppValue` + [out] A pointer to the address of an "ICorDebugValue" object that represents the retrieved value. + +## Remarks + + This method is similar to the [GetLocalVariable](icordebugilframe-getlocalvariable-method.md) method, except that it optionally accesses a variable added in profiler ReJIT instrumentation. Calling this method with a `flags` value of `ILCODE_ORIGINAL_IL` is equivalent to calling [GetLocalVariable](icordebugilframe-getlocalvariable-method.md); if the method is instrumented with additional local variables, those variables cannot be accessed. `ILCODE_REJIT_IL` allows the debugger to access the local variables added in profiler ReJIT instrumentation. If the IL is not instrumented, the method returns `E_INVALIDARG`. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v452plus](../../../../includes/net-current-v452plus-md.md)] + ## See also - [ICorDebugILFrame4 Interface](icordebugilframe4-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugilframe4-interface.md b/docs/framework/unmanaged-api/debugging/icordebugilframe4-interface.md index 1c35c09ed8014..23306abf75103 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugilframe4-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugilframe4-interface.md @@ -2,44 +2,44 @@ description: "Learn more about: ICorDebugILFrame4 Interface" title: "ICorDebugILFrame4 Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugILFrame4" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" ms.assetid: 1e739183-3e05-49e5-846f-4075256e41de -topic_type: +topic_type: - "apiref" --- # ICorDebugILFrame4 Interface -[Supported in the .NET Framework 4.5.2 and later versions] - - Provides methods that allow you to access the local variables and code in a stack frame of intermediate language (IL) code. A parameter specifies whether the debugger has access to variables and code added in profiler ReJIT instrumentation. - -## Methods - -|Method|Description| -|------------|-----------------| -|[EnumerateLocalVariablesEx Method](icordebugilframe4-enumeratelocalvariablesex-method.md)|Returns a list of the local variables available in the current frame.| -|[GetCodeEx Method](icordebugilframe4-getcodeex-method.md)|Returns the code that this stack frame is running.| -|[GetLocalVariableEx Method](icordebugilframe4-getlocalvariableex-method.md)|Returns the value of a local variable in the IL frame.| - -## Remarks - - These methods offer functionality in addition to that provided by the [EnumerateLocalVariables](icordebugilframe-enumeratelocalvariables-method.md), [GetCode](icordebugframe-getcode-method.md), and [GetLocalVariable](icordebugilframe-getlocalvariable-method.md) methods. Each method includes a `flags` parameter that specifies whether additional local variables or code defined by a profiler's ReJIT request are visible. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v452plus](../../../../includes/net-current-v452plus-md.md)] - +[Supported in the .NET Framework 4.5.2 and later versions] + + Provides methods that allow you to access the local variables and code in a stack frame of intermediate language (IL) code. A parameter specifies whether the debugger has access to variables and code added in profiler ReJIT instrumentation. + +## Methods + +|Method|Description| +|------------|-----------------| +|[EnumerateLocalVariablesEx Method](icordebugilframe4-enumeratelocalvariablesex-method.md)|Returns a list of the local variables available in the current frame.| +|[GetCodeEx Method](icordebugilframe4-getcodeex-method.md)|Returns the code that this stack frame is running.| +|[GetLocalVariableEx Method](icordebugilframe4-getlocalvariableex-method.md)|Returns the value of a local variable in the IL frame.| + +## Remarks + + These methods offer functionality in addition to that provided by the [EnumerateLocalVariables](icordebugilframe-enumeratelocalvariables-method.md), [GetCode](icordebugframe-getcode-method.md), and [GetLocalVariable](icordebugilframe-getlocalvariable-method.md) methods. Each method includes a `flags` parameter that specifies whether additional local variables or code defined by a profiler's ReJIT request are visible. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v452plus](../../../../includes/net-current-v452plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebuginstancefieldsymbol-getname-method.md b/docs/framework/unmanaged-api/debugging/icordebuginstancefieldsymbol-getname-method.md index e50f2dd2dc00d..dd41cd6a49482 100644 --- a/docs/framework/unmanaged-api/debugging/icordebuginstancefieldsymbol-getname-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebuginstancefieldsymbol-getname-method.md @@ -6,44 +6,44 @@ ms.assetid: d9c12b1f-9c1d-4943-8e9e-93b55faf085f --- # ICorDebugInstanceFieldSymbol::GetName Method -Gets the name of the instance field. - -## Syntax - -```cpp -HRESULT GetName( +Gets the name of the instance field. + +## Syntax + +```cpp +HRESULT GetName( [in] ULONG32 cchName, [out] ULONG32 *pcchName, - [out, size_is(cchName), length_is(*pcchName)] WCHAR szName[] -); -``` - -## Parameters - - `cchName` - [in] The number of characters in the `szName` buffer. - - `pcchName` - [out] A pointer to the number of characters actually written to the `szName` buffer. - - `szName` - [out] A character array that stores the returned name. - -## Remarks - + [out, size_is(cchName), length_is(*pcchName)] WCHAR szName[] +); +``` + +## Parameters + + `cchName` + [in] The number of characters in the `szName` buffer. + + `pcchName` + [out] A pointer to the number of characters actually written to the `szName` buffer. + + `szName` + [out] A character array that stores the returned name. + +## Remarks + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugInstanceFieldSymbol Interface](icordebuginstancefieldsymbol-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebuginstancefieldsymbol-getoffset-method.md b/docs/framework/unmanaged-api/debugging/icordebuginstancefieldsymbol-getoffset-method.md index 9a3323717bb07..406f55adfcf4e 100644 --- a/docs/framework/unmanaged-api/debugging/icordebuginstancefieldsymbol-getoffset-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebuginstancefieldsymbol-getoffset-method.md @@ -6,36 +6,36 @@ ms.assetid: 7e470150-2b92-4425-989c-315f48964fd2 --- # ICorDebugInstanceFieldSymbol::GetOffset Method -Gets the offset in bytes of this instance field in its parent class. - -## Syntax - -```cpp -HRESULT GetOffset( - [out] ULONG32 *pcbOffset -); -``` - -## Parameters - - `pcbOffset` - A pointer to the number of bytes that this instance field is offset in its parent class. - -## Remarks - +Gets the offset in bytes of this instance field in its parent class. + +## Syntax + +```cpp +HRESULT GetOffset( + [out] ULONG32 *pcbOffset +); +``` + +## Parameters + + `pcbOffset` + A pointer to the number of bytes that this instance field is offset in its parent class. + +## Remarks + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugInstanceFieldSymbol Interface](icordebuginstancefieldsymbol-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebuginstancefieldsymbol-getsize-method.md b/docs/framework/unmanaged-api/debugging/icordebuginstancefieldsymbol-getsize-method.md index 29629a0543fce..3c78b431ab7a5 100644 --- a/docs/framework/unmanaged-api/debugging/icordebuginstancefieldsymbol-getsize-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebuginstancefieldsymbol-getsize-method.md @@ -6,36 +6,36 @@ ms.assetid: a4af1e3b-6a9f-4855-95ba-5317565c8e2b --- # ICorDebugInstanceFieldSymbol::GetSize Method -Gets the size in bytes of the instance field. - -## Syntax - -```cpp -HRESULT GetSize( - [out] ULONG32 *pcbSize -); -``` - -## Parameters - - `pcbSize` - [out] A pointer to length of the field. - -## Remarks - +Gets the size in bytes of the instance field. + +## Syntax + +```cpp +HRESULT GetSize( + [out] ULONG32 *pcbSize +); +``` + +## Parameters + + `pcbSize` + [out] A pointer to length of the field. + +## Remarks + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugInstanceFieldSymbol Interface](icordebuginstancefieldsymbol-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebuginstancefieldsymbol-interface.md b/docs/framework/unmanaged-api/debugging/icordebuginstancefieldsymbol-interface.md index d9b8d2ba788b6..a47b85ee65218 100644 --- a/docs/framework/unmanaged-api/debugging/icordebuginstancefieldsymbol-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebuginstancefieldsymbol-interface.md @@ -6,33 +6,33 @@ ms.assetid: a4a8f259-b83a-4425-ae8b-72b067dbc0d9 --- # ICorDebugInstanceFieldSymbol Interface -Represents the debug symbol information for an instance field. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetName Method](icordebuginstancefieldsymbol-getname-method.md)|Gets the name of the instance field.| -|[GetOffset Method](icordebuginstancefieldsymbol-getoffset-method.md)|Gets the offset in bytes of this instance field in its parent class.| -|[GetSize Method](icordebuginstancefieldsymbol-getsize-method.md)|Gets the size in bytes of the instance field.| - -## Remarks - - The `ICorDebugInstanceFieldSymbol` interface is used to retrieve the debug symbol information for an instance field. - +Represents the debug symbol information for an instance field. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetName Method](icordebuginstancefieldsymbol-getname-method.md)|Gets the name of the instance field.| +|[GetOffset Method](icordebuginstancefieldsymbol-getoffset-method.md)|Gets the offset in bytes of this instance field in its parent class.| +|[GetSize Method](icordebuginstancefieldsymbol-getsize-method.md)|Gets the size in bytes of the instance field.| + +## Remarks + + The `ICorDebugInstanceFieldSymbol` interface is used to retrieve the debug symbol information for an instance field. + > [!NOTE] -> This interface is available with .NET Native only. If you implement this interface for ICorDebug scenarios outside of .NET Native, the common language runtime will ignore this interface. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This interface is available with .NET Native only. If you implement this interface for ICorDebug scenarios outside of .NET Native, the common language runtime will ignore this interface. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugStaticFieldSymbol Interface](icordebugstaticfieldsymbol-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebuginternalframe-getframetype-method.md b/docs/framework/unmanaged-api/debugging/icordebuginternalframe-getframetype-method.md index 958d8be57ef7b..e474d588915cf 100644 --- a/docs/framework/unmanaged-api/debugging/icordebuginternalframe-getframetype-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebuginternalframe-getframetype-method.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugInternalFrame::GetFrameType Method" title: "ICorDebugInternalFrame::GetFrameType Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugInternalFrame.GetFrameType" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugInternalFrame::GetFrameType" -helpviewer_keywords: +helpviewer_keywords: - "GetFrameType method [.NET Framework debugging]" - "ICorDebugInternalFrame::GetFrameType method [.NET Framework debugging]" ms.assetid: da278a29-dc2e-4bf7-96ce-801bdc4d7025 -topic_type: +topic_type: - "apiref" --- # ICorDebugInternalFrame::GetFrameType Method -Gets the type of this internal frame. - -## Syntax - -```cpp -HRESULT GetFrameType ( - [out] CorDebugInternalFrameType *pType -); -``` - -## Parameters - - `pType` - [out] A pointer to a value of the CorDebugInternalFrameType enumeration that indicates the type of internal frame represented by this `ICorDebugInternalFrame` object. - -## Remarks - - The internal frame type will never be STUBFRAME_NONE. Debuggers should gracefully ignore unrecognized internal frame types. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets the type of this internal frame. + +## Syntax + +```cpp +HRESULT GetFrameType ( + [out] CorDebugInternalFrameType *pType +); +``` + +## Parameters + + `pType` + [out] A pointer to a value of the CorDebugInternalFrameType enumeration that indicates the type of internal frame represented by this `ICorDebugInternalFrame` object. + +## Remarks + + The internal frame type will never be STUBFRAME_NONE. Debuggers should gracefully ignore unrecognized internal frame types. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebuginternalframe-interface.md b/docs/framework/unmanaged-api/debugging/icordebuginternalframe-interface.md index fa069a29c35f2..ddd8ab50c258d 100644 --- a/docs/framework/unmanaged-api/debugging/icordebuginternalframe-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebuginternalframe-interface.md @@ -2,45 +2,45 @@ description: "Learn more about: ICorDebugInternalFrame Interface" title: "ICorDebugInternalFrame Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugInternalFrame" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugInternalFrame" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugInternalFrame interface [.NET Framework debugging]" ms.assetid: bb4772ca-0d54-4185-b738-7a6ffe9ea85a -topic_type: +topic_type: - "apiref" --- # ICorDebugInternalFrame Interface -Represents a runtime-internal frame on the stack. This interface is a subclass of the ICorDebugFrame interface. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetFrameType Method](icordebuginternalframe-getframetype-method.md)|Gets the type of this internal frame.| - -## Remarks - +Represents a runtime-internal frame on the stack. This interface is a subclass of the ICorDebugFrame interface. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetFrameType Method](icordebuginternalframe-getframetype-method.md)|Gets the type of this internal frame.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebuginternalframe2-getframeaddress-method.md b/docs/framework/unmanaged-api/debugging/icordebuginternalframe2-getframeaddress-method.md index 6c6fde3a03907..f7b6381fcdc59 100644 --- a/docs/framework/unmanaged-api/debugging/icordebuginternalframe2-getframeaddress-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebuginternalframe2-getframeaddress-method.md @@ -2,60 +2,60 @@ description: "Learn more about: ICorDebugInternalFrame2::GetFrameAddress Method" title: "ICorDebugInternalFrame2::GetFrameAddress Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugInternalFrame2.GetFrameAddress Method" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugInternalFrame2::GetFrameAddress" -helpviewer_keywords: +helpviewer_keywords: - "GetFrameAddress method [.NET Framework debugging]" - "ICorDebugInternalFrame2::GetFrameAddress method [.NET Framework debugging]" ms.assetid: 4ee8d058-ffc8-4967-9133-a5adfef4e518 -topic_type: +topic_type: - "apiref" --- # ICorDebugInternalFrame2::GetFrameAddress Method -Returns the stack address of the internal frame. - -## Syntax - -```cpp -HRESULT GetFrameAddress([out] CORDB_ADDRESS *pAddress); -``` - -## Parameters - - `pAddress` - [out] Pointer to the `CORDB_ADDRESS` for the internal frame. - -## Return Value - - This method returns the following specific HRESULTs as well as HRESULT errors that indicate method failure. - -|HRESULT|Description| -|-------------|-----------------| -|S_OK|The address of the internal frame was successfully returned.| -|E_FAIL|The address of the internal frame could not be returned.| -|E_INVALIDARG|`pAddress` is `null`.| - -## Remarks - - The value returned in `pAddress` can be used to determine the location of the internal frame relative to other frames on the stack. Even on IA-64-based computers, the internal frame lives on the stack only, and there is no corresponding pointer to a backing store. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +Returns the stack address of the internal frame. + +## Syntax + +```cpp +HRESULT GetFrameAddress([out] CORDB_ADDRESS *pAddress); +``` + +## Parameters + + `pAddress` + [out] Pointer to the `CORDB_ADDRESS` for the internal frame. + +## Return Value + + This method returns the following specific HRESULTs as well as HRESULT errors that indicate method failure. + +|HRESULT|Description| +|-------------|-----------------| +|S_OK|The address of the internal frame was successfully returned.| +|E_FAIL|The address of the internal frame could not be returned.| +|E_INVALIDARG|`pAddress` is `null`.| + +## Remarks + + The value returned in `pAddress` can be used to determine the location of the internal frame relative to other frames on the stack. Even on IA-64-based computers, the internal frame lives on the stack only, and there is no corresponding pointer to a backing store. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [ICorDebugInternalFrame2 Interface](icordebuginternalframe2-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebuginternalframe2-interface.md b/docs/framework/unmanaged-api/debugging/icordebuginternalframe2-interface.md index 3e7d3fa236f4e..eaa266dd33d5f 100644 --- a/docs/framework/unmanaged-api/debugging/icordebuginternalframe2-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebuginternalframe2-interface.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugInternalFrame2 Interface" title: "ICorDebugInternalFrame2 Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugInternalFrame2" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugInternalFrame2" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugInternalFrame2 interface [.NET Framework debugging]" ms.assetid: d4755569-85b8-4ff4-bf50-0e608e76429f -topic_type: +topic_type: - "apiref" --- # ICorDebugInternalFrame2 Interface -Provides information about internal frames, including stack address and position in relation to ICorDebugFrame objects. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetFrameAddress Method](icordebuginternalframe2-getframeaddress-method.md)|Returns the stack address of the internal frame.| -|[IsCloserToLeaf Method](icordebuginternalframe2-isclosertoleaf-method.md)|Checks whether the `this` internal frame is closer to the leaf than the specified ICorDebugFrame object.| - -## Remarks - - This interface extends the ICorDebugInternalFrame interface. - +Provides information about internal frames, including stack address and position in relation to ICorDebugFrame objects. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetFrameAddress Method](icordebuginternalframe2-getframeaddress-method.md)|Returns the stack address of the internal frame.| +|[IsCloserToLeaf Method](icordebuginternalframe2-isclosertoleaf-method.md)|Checks whether the `this` internal frame is closer to the leaf than the specified ICorDebugFrame object.| + +## Remarks + + This interface extends the ICorDebugInternalFrame interface. + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebuginternalframe2-isclosertoleaf-method.md b/docs/framework/unmanaged-api/debugging/icordebuginternalframe2-isclosertoleaf-method.md index 909e66135be7a..0076a35e88d48 100644 --- a/docs/framework/unmanaged-api/debugging/icordebuginternalframe2-isclosertoleaf-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebuginternalframe2-isclosertoleaf-method.md @@ -2,64 +2,64 @@ description: "Learn more about: ICorDebugInternalFrame2::IsCloserToLeaf Method" title: "ICorDebugInternalFrame2::IsCloserToLeaf Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugInternalFrame2.IsCloserToLeaf Method" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugInternalFrame2::IsCloserToLeaf" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugInternalFrame2::IsCloserToLeaf method [.NET Framework debugging]" - "IsCloserToLeaf method [.NET Framework debugging]" ms.assetid: c1d3d1eb-8370-4f25-8297-3bd262b4740a -topic_type: +topic_type: - "apiref" --- # ICorDebugInternalFrame2::IsCloserToLeaf Method -Checks whether the `this` internal frame is closer to the leaf than the specified ICorDebugFrame object. - -## Syntax - -```cpp -HRESULT IsCloserToLeaf([in] ICorDebugFrame * pFrameToCompare, - [out] BOOL * pIsCloser); -``` - -## Parameters - - `pFrameToCompare` - [in] A pointer to the comparison `ICorDebugFrame` object. - - `pIsCloser` - [out] `true` if the `this` internal frame is closer to the leaf than the frame specified by `pFrameToCompare`; otherwise, `false`. - -## Return Value - - This method returns the following specific HRESULTs as well as HRESULT errors that indicate method failure. - -|HRESULT|Description| -|-------------|-----------------| -|S_OK|The comparison was successfully performed.| -|E_FAIL|The comparison could not be performed.| -|E_INVALIDARG|`pFrameToCompare` or `pIsCloser` is null.| - -## Remarks - - `IsCloserToLeaf` can be used to implement a policy for interleaving internal frames with other frames on the stack. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +Checks whether the `this` internal frame is closer to the leaf than the specified ICorDebugFrame object. + +## Syntax + +```cpp +HRESULT IsCloserToLeaf([in] ICorDebugFrame * pFrameToCompare, + [out] BOOL * pIsCloser); +``` + +## Parameters + + `pFrameToCompare` + [in] A pointer to the comparison `ICorDebugFrame` object. + + `pIsCloser` + [out] `true` if the `this` internal frame is closer to the leaf than the frame specified by `pFrameToCompare`; otherwise, `false`. + +## Return Value + + This method returns the following specific HRESULTs as well as HRESULT errors that indicate method failure. + +|HRESULT|Description| +|-------------|-----------------| +|S_OK|The comparison was successfully performed.| +|E_FAIL|The comparison could not be performed.| +|E_INVALIDARG|`pFrameToCompare` or `pIsCloser` is null.| + +## Remarks + + `IsCloserToLeaf` can be used to implement a policy for interleaving internal frames with other frames on the stack. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [ICorDebugInternalFrame2 Interface](icordebuginternalframe2-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugloadedmodule-getbaseaddress-method.md b/docs/framework/unmanaged-api/debugging/icordebugloadedmodule-getbaseaddress-method.md index 88f0f9b647515..222c10e99bb82 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugloadedmodule-getbaseaddress-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugloadedmodule-getbaseaddress-method.md @@ -6,36 +6,36 @@ ms.assetid: 7c036772-d58a-47f1-a5fa-31779898ef0d --- # ICorDebugLoadedModule::GetBaseAddress Method -Gets the base address of the loaded module. - -## Syntax - -```cpp -HRESULT GetBaseAddress( - [out] CORDB_ADDRESS *pAddress -); -``` - -## Parameters - - `pAddress` - [out] A pointer to the base address of the loaded module. - -## Remarks - +Gets the base address of the loaded module. + +## Syntax + +```cpp +HRESULT GetBaseAddress( + [out] CORDB_ADDRESS *pAddress +); +``` + +## Parameters + + `pAddress` + [out] A pointer to the base address of the loaded module. + +## Remarks + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugLoadedModule Interface](icordebugloadedmodule-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugloadedmodule-getname-method.md b/docs/framework/unmanaged-api/debugging/icordebugloadedmodule-getname-method.md index 15296bd40fc14..e7ed3092b0b0a 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugloadedmodule-getname-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugloadedmodule-getname-method.md @@ -6,45 +6,45 @@ ms.assetid: 88c304d5-edaa-4c0e-a8e1-144e8a76877e --- # ICorDebugLoadedModule::GetName Method -Gets the name of the loaded module. - -## Syntax - -```cpp -HRESULT GetName( - [in] ULONG32 cchName, - [out] ULONG32 *pcchName, - [out, size_is(cchName), - length_is(*pcchName)] WCHAR szName[] -); -``` - -## Parameters - - `cchName` - [in] The number of characters in the `szName` buffer. - - `pcchName` - [out] A pointer to the number of characters actually written to the `szName` buffer. - - `szName` - [out] An array of characters that contain the name of the loaded module. - -## Remarks - +Gets the name of the loaded module. + +## Syntax + +```cpp +HRESULT GetName( + [in] ULONG32 cchName, + [out] ULONG32 *pcchName, + [out, size_is(cchName), + length_is(*pcchName)] WCHAR szName[] +); +``` + +## Parameters + + `cchName` + [in] The number of characters in the `szName` buffer. + + `pcchName` + [out] A pointer to the number of characters actually written to the `szName` buffer. + + `szName` + [out] An array of characters that contain the name of the loaded module. + +## Remarks + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugLoadedModule Interface](icordebugloadedmodule-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugloadedmodule-getsize-method.md b/docs/framework/unmanaged-api/debugging/icordebugloadedmodule-getsize-method.md index 01da6b1878f2f..616611c566160 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugloadedmodule-getsize-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugloadedmodule-getsize-method.md @@ -6,36 +6,36 @@ ms.assetid: aaa0e5c0-be9d-4fe1-8418-5295b9b184d6 --- # ICorDebugLoadedModule::GetSize Method -Gets the size in bytes of the loaded module. - -## Syntax - -```cpp -HRESULT GetSize( - [out] ULONG32 *pcBytes -); -``` - -## Parameters - - `pcBytes` - [out] A pointer to the number of bytes in the loaded module. - -## Remarks - +Gets the size in bytes of the loaded module. + +## Syntax + +```cpp +HRESULT GetSize( + [out] ULONG32 *pcBytes +); +``` + +## Parameters + + `pcBytes` + [out] A pointer to the number of bytes in the loaded module. + +## Remarks + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugLoadedModule Interface](icordebugloadedmodule-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugloadedmodule-interface.md b/docs/framework/unmanaged-api/debugging/icordebugloadedmodule-interface.md index 71326bf2cc0a6..0bbf9a2fb185b 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugloadedmodule-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugloadedmodule-interface.md @@ -6,33 +6,33 @@ ms.assetid: 34be6369-2e75-4a95-a538-3b29ac97cf6d --- # ICorDebugLoadedModule Interface -Provides information about a loaded module. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetBaseAddress Method](icordebugloadedmodule-getbaseaddress-method.md)|Gets the base address of the loaded module.| -|[GetName Method](icordebugloadedmodule-getname-method.md)|Gets the name of the loaded module.| -|[GetSize Method](icordebugloadedmodule-getsize-method.md)|Gets the size in bytes of the loaded module.| - -## Remarks - - The `ICorDebugLoadedModule` interface is implemented by a debugger and is used by the CLR debugging interfaces to get information about the loaded module from the debugger. - +Provides information about a loaded module. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetBaseAddress Method](icordebugloadedmodule-getbaseaddress-method.md)|Gets the base address of the loaded module.| +|[GetName Method](icordebugloadedmodule-getname-method.md)|Gets the name of the loaded module.| +|[GetSize Method](icordebugloadedmodule-getsize-method.md)|Gets the size in bytes of the loaded module.| + +## Remarks + + The `ICorDebugLoadedModule` interface is implemented by a debugger and is used by the CLR debugging interfaces to get information about the loaded module from the debugger. + > [!NOTE] -> This interface is available with .NET Native only. If you implement this interface for ICorDebug scenarios outside of .NET Native, the common language runtime will ignore this interface. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This interface is available with .NET Native only. If you implement this interface for ICorDebug scenarios outside of .NET Native, the common language runtime will ignore this interface. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-breakpointseterror-method.md b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-breakpointseterror-method.md index b6ce99043ed18..455f1299737f5 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-breakpointseterror-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-breakpointseterror-method.md @@ -2,64 +2,64 @@ description: "Learn more about: ICorDebugManagedCallback::BreakpointSetError Method" title: "ICorDebugManagedCallback::BreakpointSetError Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugManagedCallback.BreakpointSetError" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugManagedCallback::BreakpointSetError" -helpviewer_keywords: +helpviewer_keywords: - "BreakpointSetError method [.NET Framework debugging]" - "ICorDebugManagedCallback::BreakpointSetError method [.NET Framework debugging]" ms.assetid: f2b773a4-c4d0-429c-9717-51d6e2ed86af -topic_type: +topic_type: - "apiref" --- # ICorDebugManagedCallback::BreakpointSetError Method -Notifies the debugger that the common language runtime was unable to accurately bind a breakpoint that was set before a function was just-in-time (JIT) compiled. - -## Syntax - -```cpp -HRESULT BreakpointSetError ( - [in] ICorDebugAppDomain *pAppDomain, - [in] ICorDebugThread *pThread, - [in] ICorDebugBreakpoint *pBreakpoint, - [in] DWORD dwError -); -``` - -## Parameters - - `pAppDomain` - [in] A pointer to an ICorDebugAppDomain object that represents the application domain that contains the unbound breakpoint. - - `pThread` - [in] A pointer to an ICorDebugThread object that represents the thread that contains the unbound breakpoint. - - `pBreakpoint` - [in] A pointer to an ICorDebugBreakpoint object that represents the unbound breakpoint. - - `dwError` - [in] An integer that indicates the error. - -## Remarks - - The given breakpoint will never be hit. The debugger should deactivate and rebind it. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Notifies the debugger that the common language runtime was unable to accurately bind a breakpoint that was set before a function was just-in-time (JIT) compiled. + +## Syntax + +```cpp +HRESULT BreakpointSetError ( + [in] ICorDebugAppDomain *pAppDomain, + [in] ICorDebugThread *pThread, + [in] ICorDebugBreakpoint *pBreakpoint, + [in] DWORD dwError +); +``` + +## Parameters + + `pAppDomain` + [in] A pointer to an ICorDebugAppDomain object that represents the application domain that contains the unbound breakpoint. + + `pThread` + [in] A pointer to an ICorDebugThread object that represents the thread that contains the unbound breakpoint. + + `pBreakpoint` + [in] A pointer to an ICorDebugBreakpoint object that represents the unbound breakpoint. + + `dwError` + [in] An integer that indicates the error. + +## Remarks + + The given breakpoint will never be hit. The debugger should deactivate and rebind it. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [ICorDebugManagedCallback Interface](icordebugmanagedcallback-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-controlctrap-method.md b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-controlctrap-method.md index ed9ab8fdbeac1..879e5f2efad2e 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-controlctrap-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-controlctrap-method.md @@ -2,59 +2,59 @@ description: "Learn more about: ICorDebugManagedCallback::ControlCTrap Method" title: "ICorDebugManagedCallback::ControlCTrap Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugManagedCallback.ControlCTrap" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugManagedCallback::ControlCTrap" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugManagedCallback::ControlCTrap method [.NET Framework debugging]" - "ControlCTrap method [.NET Framework debugging]" ms.assetid: 0500854e-2121-43d9-a028-64312da35258 -topic_type: +topic_type: - "apiref" --- # ICorDebugManagedCallback::ControlCTrap Method -Notifies the debugger that a CTRL+C is trapped in the process that is being debugged. - -## Syntax - -```cpp -HRESULT ControlCTrap ( - [in] ICorDebugProcess *pProcess -); -``` - -## Parameters - - `pProcess` - [in] A pointer to an ICorDebugProcess object that represents the process in which the CTRL+C is trapped. - -## Return Value - -|HRESULT|Description| -|-------------|-----------------| -|S_OK|The debugger will handle the CTRL+C trap.| -|S_FALSE|The debugger will not handle the CTRL+C trap.| - -## Remarks - - All application domains within the process are stopped for this callback. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Notifies the debugger that a CTRL+C is trapped in the process that is being debugged. + +## Syntax + +```cpp +HRESULT ControlCTrap ( + [in] ICorDebugProcess *pProcess +); +``` + +## Parameters + + `pProcess` + [in] A pointer to an ICorDebugProcess object that represents the process in which the CTRL+C is trapped. + +## Return Value + +|HRESULT|Description| +|-------------|-----------------| +|S_OK|The debugger will handle the CTRL+C trap.| +|S_FALSE|The debugger will not handle the CTRL+C trap.| + +## Remarks + + All application domains within the process are stopped for this callback. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [ICorDebugManagedCallback Interface](icordebugmanagedcallback-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-createprocess-method.md b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-createprocess-method.md index 5cddada287077..92bae99b533b7 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-createprocess-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-createprocess-method.md @@ -2,52 +2,52 @@ description: "Learn more about: ICorDebugManagedCallback::CreateProcess Method" title: "ICorDebugManagedCallback::CreateProcess Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugManagedCallback.CreateProcess" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugManagedCallback::CreateProcess" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugManagedCallback::CreateProcess method [.NET Framework debugging]" - "CreateProcess method, ICorDebugManagedCallback interface [.NET Framework debugging]" ms.assetid: 8e89d5ee-e4e3-4738-8302-0b7d1cf4846e -topic_type: +topic_type: - "apiref" --- # ICorDebugManagedCallback::CreateProcess Method -Notifies the debugger when a process has been attached or started for the first time. - -## Syntax - -```cpp -HRESULT CreateProcess ( - [in] ICorDebugProcess *pProcess -); -``` - -## Parameters - - `pProcess` - [in] A pointer to an ICorDebugProcess object that represents the process that has been attached or started. - -## Remarks - - This method is not called until the common language runtime is initialized. Most of the [ICorDebug](icordebug-interface.md) methods will return CORDBG_E_NOTREADY before the `CreateProcess` callback. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Notifies the debugger when a process has been attached or started for the first time. + +## Syntax + +```cpp +HRESULT CreateProcess ( + [in] ICorDebugProcess *pProcess +); +``` + +## Parameters + + `pProcess` + [in] A pointer to an ICorDebugProcess object that represents the process that has been attached or started. + +## Remarks + + This method is not called until the common language runtime is initialized. Most of the [ICorDebug](icordebug-interface.md) methods will return CORDBG_E_NOTREADY before the `CreateProcess` callback. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [ICorDebugManagedCallback Interface](icordebugmanagedcallback-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-createthread-method.md b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-createthread-method.md index 7c5b43b6c7f9d..0156099985ffa 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-createthread-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-createthread-method.md @@ -2,56 +2,56 @@ description: "Learn more about: ICorDebugManagedCallback::CreateThread Method" title: "ICorDebugManagedCallback::CreateThread Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugManagedCallback.CreateThread" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugManagedCallback::CreateThread method" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugManagedCallback::CreateThread method [.NET Framework debugging]" - "CreateThread method [.NET Framework debugging]" ms.assetid: 6b961728-21c4-4e8d-ae81-197458be62f4 -topic_type: +topic_type: - "apiref" --- # ICorDebugManagedCallback::CreateThread Method -Notifies the debugger that a thread has started executing managed code. - -## Syntax - -```cpp -HRESULT CreateThread ( - [in] ICorDebugAppDomain *pAppDomain, - [in] ICorDebugThread *thread -); -``` - -## Parameters - - `pAppDomain` - [in] A pointer to an ICorDebugAppDomain object that represents the application domain that contains the thread. - - `thread` - [in] A pointer to an ICorDebugThread object that represents the thread. - -## Remarks - - The thread will be positioned at the first managed code instruction to be executed. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Notifies the debugger that a thread has started executing managed code. + +## Syntax + +```cpp +HRESULT CreateThread ( + [in] ICorDebugAppDomain *pAppDomain, + [in] ICorDebugThread *thread +); +``` + +## Parameters + + `pAppDomain` + [in] A pointer to an ICorDebugAppDomain object that represents the application domain that contains the thread. + + `thread` + [in] A pointer to an ICorDebugThread object that represents the thread. + +## Remarks + + The thread will be positioned at the first managed code instruction to be executed. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [ICorDebugManagedCallback Interface](icordebugmanagedcallback-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-debuggererror-method.md b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-debuggererror-method.md index 81c2b62cfc42c..0f8c3475d2595 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-debuggererror-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-debuggererror-method.md @@ -2,62 +2,62 @@ description: "Learn more about: ICorDebugManagedCallback::DebuggerError Method" title: "ICorDebugManagedCallback::DebuggerError Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugManagedCallback.DebuggerError" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugManagedCallback::DebuggerError" -helpviewer_keywords: +helpviewer_keywords: - "DebuggerError method [.NET Framework debugging]" - "ICorDebugManagedCallback::DebuggerError method [.NET Framework debugging]" ms.assetid: 9e983d11-eaf3-4741-b936-29ec456384a3 -topic_type: +topic_type: - "apiref" --- # ICorDebugManagedCallback::DebuggerError Method -Notifies the debugger that an error has occurred while attempting to handle an event from the common language runtime (CLR). - -## Syntax - -```cpp -HRESULT DebuggerError ( - [in] ICorDebugProcess *pProcess, - [in] HRESULT errorHR, - [in] DWORD errorCode -); -``` - -## Parameters - - `pProcess` - [in] A pointer to an "ICorDebugProcess" object that represents the process in which the event occurred. - - `errorHR` - [in] The HRESULT value that was returned from the event handler. - - `errorCode` - [in] An integer that specifies the CLR error. - -## Remarks - - The process may be placed into pass-through mode, depending on the nature of the error. - - The `DebugError` callback indicates that debugging services have been disabled due to an error, so debuggers should make the error message available to the user. [ICorDebugProcess::GetID](icordebugprocess-getid-method.md) will be safe to call, but all other methods, including [ICorDebug::Terminate](icordebug-terminate-method.md), should not be called. The debugger should use operating-system facilities for terminating processes. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Notifies the debugger that an error has occurred while attempting to handle an event from the common language runtime (CLR). + +## Syntax + +```cpp +HRESULT DebuggerError ( + [in] ICorDebugProcess *pProcess, + [in] HRESULT errorHR, + [in] DWORD errorCode +); +``` + +## Parameters + + `pProcess` + [in] A pointer to an "ICorDebugProcess" object that represents the process in which the event occurred. + + `errorHR` + [in] The HRESULT value that was returned from the event handler. + + `errorCode` + [in] An integer that specifies the CLR error. + +## Remarks + + The process may be placed into pass-through mode, depending on the nature of the error. + + The `DebugError` callback indicates that debugging services have been disabled due to an error, so debuggers should make the error message available to the user. [ICorDebugProcess::GetID](icordebugprocess-getid-method.md) will be safe to call, but all other methods, including [ICorDebug::Terminate](icordebug-terminate-method.md), should not be called. The debugger should use operating-system facilities for terminating processes. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [ICorDebugManagedCallback Interface](icordebugmanagedcallback-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-editandcontinueremap-method.md b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-editandcontinueremap-method.md index 0e52d55fbbfa7..6ec3a7bade615 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-editandcontinueremap-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-editandcontinueremap-method.md @@ -2,50 +2,50 @@ description: "Learn more about: ICorDebugManagedCallback::EditAndContinueRemap Method" title: "ICorDebugManagedCallback::EditAndContinueRemap Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugManagedCallback.EditAndContinueRemap" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugManagedCallback::EditAndContinueRemap" -helpviewer_keywords: +helpviewer_keywords: - "EditAndContinueRemap method [.NET Framework debugging]" - "ICorDebugManagedCallback::EditAndContinueRemap method [.NET Framework debugging]" ms.assetid: 24a8fcce-317e-48ff-aefc-d86123ada935 -topic_type: +topic_type: - "apiref" --- # ICorDebugManagedCallback::EditAndContinueRemap Method -This method has been deprecated. It notifies the debugger that a remap event has been sent to the integrated development environment (IDE). - -## Syntax - -```cpp -HRESULT EditAndContinueRemap ( - [in] ICorDebugAppDomain *pAppDomain, - [in] ICorDebugThread *pThread, - [in] ICorDebugFunction *pFunction, - [in] BOOL fAccurate -); -``` - -## Remarks - - The `EditAndContinueRemap` method is called when the execution of the code in an old version of an updated function has been attempted. The common language runtime calls the `EditAndContinueRemap` method to send a remap event to the IDE. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +This method has been deprecated. It notifies the debugger that a remap event has been sent to the integrated development environment (IDE). + +## Syntax + +```cpp +HRESULT EditAndContinueRemap ( + [in] ICorDebugAppDomain *pAppDomain, + [in] ICorDebugThread *pThread, + [in] ICorDebugFunction *pFunction, + [in] BOOL fAccurate +); +``` + +## Remarks + + The `EditAndContinueRemap` method is called when the execution of the code in an old version of an updated function has been attempted. The common language runtime calls the `EditAndContinueRemap` method to send a remap event to the IDE. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [ICorDebugManagedCallback Interface](icordebugmanagedcallback-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-exception-method.md b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-exception-method.md index bd696a96435b3..9e4ecd26095fd 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-exception-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-exception-method.md @@ -2,60 +2,60 @@ description: "Learn more about: ICorDebugManagedCallback::Exception Method" title: "ICorDebugManagedCallback::Exception Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugManagedCallback.Exception" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugManagedCallback::Exception" -helpviewer_keywords: +helpviewer_keywords: - "Exception method, ICorDebugManagedCallback interface [.NET Framework debugging]" - "ICorDebugManagedCallback::Exception method [.NET Framework debugging]" ms.assetid: ab18a509-dff3-4930-b585-bd15e0414176 -topic_type: +topic_type: - "apiref" --- # ICorDebugManagedCallback::Exception Method -Notifies the debugger that an exception has been thrown from managed code. - -## Syntax - -```cpp -HRESULT Exception ( - [in] ICorDebugAppDomain *pAppDomain, - [in] ICorDebugThread *pThread, - [in] BOOL unhandled -); -``` - -## Parameters - - `pAppDomain` - [in] A pointer to an ICorDebugAppDomain object that represents the application domain in which the exception was thrown. - - `pThread` - [in] A pointer to an ICorDebugThread object that represents the thread in which the exception was thrown. - - `unhandled` - [in] If this value is `false`, the exception has not yet been processed by the application; otherwise, the exception is unhandled and will terminate the process. - -## Remarks - - The specific exception can be retrieved from the thread object. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Notifies the debugger that an exception has been thrown from managed code. + +## Syntax + +```cpp +HRESULT Exception ( + [in] ICorDebugAppDomain *pAppDomain, + [in] ICorDebugThread *pThread, + [in] BOOL unhandled +); +``` + +## Parameters + + `pAppDomain` + [in] A pointer to an ICorDebugAppDomain object that represents the application domain in which the exception was thrown. + + `pThread` + [in] A pointer to an ICorDebugThread object that represents the thread in which the exception was thrown. + + `unhandled` + [in] If this value is `false`, the exception has not yet been processed by the application; otherwise, the exception is unhandled and will terminate the process. + +## Remarks + + The specific exception can be retrieved from the thread object. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [ICorDebugManagedCallback Interface](icordebugmanagedcallback-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-exitprocess-method.md b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-exitprocess-method.md index 87666fa9d0367..85499f4ca0946 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-exitprocess-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-exitprocess-method.md @@ -2,56 +2,56 @@ description: "Learn more about: ICorDebugManagedCallback::ExitProcess Method" title: "ICorDebugManagedCallback::ExitProcess Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugManagedCallback.ExitProcess" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugManagedCallback::ExitProcess" -helpviewer_keywords: +helpviewer_keywords: - "ExitProcess method, ICorDebugManagedCallback interface [.NET Framework debugging]" - "ICorDebugManagedCallback::ExitProcess method [.NET Framework debugging]" ms.assetid: 63a7d47a-0d54-4e29-9767-9f09feaa38b7 -topic_type: +topic_type: - "apiref" --- # ICorDebugManagedCallback::ExitProcess Method -Notifies the debugger that a process has exited. - -## Syntax - -```cpp -HRESULT ExitProcess ( - [in] ICorDebugProcess *pProcess -); -``` - -## Parameters - - `pProcess` - [in] A pointer to an ICorDebugProcess object that represents the process. - -## Remarks - - You cannot continue from an `ExitProcess` event. This event may fire asynchronously to other events while the process appears to be stopped. This can occur if the process terminates while stopped, usually due to some external force. - - If the common language runtime (CLR) is already dispatching a managed callback, this event will be delayed until after that callback has returned. - - The `ExitProcess` event is the only exit/unload event that is guaranteed to get called on shutdown. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Notifies the debugger that a process has exited. + +## Syntax + +```cpp +HRESULT ExitProcess ( + [in] ICorDebugProcess *pProcess +); +``` + +## Parameters + + `pProcess` + [in] A pointer to an ICorDebugProcess object that represents the process. + +## Remarks + + You cannot continue from an `ExitProcess` event. This event may fire asynchronously to other events while the process appears to be stopped. This can occur if the process terminates while stopped, usually due to some external force. + + If the common language runtime (CLR) is already dispatching a managed callback, this event will be delayed until after that callback has returned. + + The `ExitProcess` event is the only exit/unload event that is guaranteed to get called on shutdown. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [ICorDebugManagedCallback Interface](icordebugmanagedcallback-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-exitthread-method.md b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-exitthread-method.md index 675ebb0ff1b02..139c5a2e5a458 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-exitthread-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-exitthread-method.md @@ -2,56 +2,56 @@ description: "Learn more about: ICorDebugManagedCallback::ExitThread Method" title: "ICorDebugManagedCallback::ExitThread Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugManagedCallback.ExitThread" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugManagedCallback::ExitThread" -helpviewer_keywords: +helpviewer_keywords: - "ExitThread method [.NET Framework debugging]" - "ICorDebugManagedCallback::ExitThread method [.NET Framework debugging]" ms.assetid: 62db708b-6cf0-45c5-b897-4b5c75bd2505 -topic_type: +topic_type: - "apiref" --- # ICorDebugManagedCallback::ExitThread Method -Notifies the debugger that a thread that was executing managed code has exited. - -## Syntax - -```cpp -HRESULT ExitThread ( - [in] ICorDebugAppDomain *pAppDomain, - [in] ICorDebugThread *thread -); -``` - -## Parameters - - `pAppDomain` - [in] A pointer to an ICorDebugAppDomain object that represents the application domain containing the managed thread. - - `thread` - [in] A pointer to an ICorDebugThread object that represents the managed thread. - -## Remarks - - Once the `ExitThread` callback is fired, the thread will no longer appear in thread enumerations. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Notifies the debugger that a thread that was executing managed code has exited. + +## Syntax + +```cpp +HRESULT ExitThread ( + [in] ICorDebugAppDomain *pAppDomain, + [in] ICorDebugThread *thread +); +``` + +## Parameters + + `pAppDomain` + [in] A pointer to an ICorDebugAppDomain object that represents the application domain containing the managed thread. + + `thread` + [in] A pointer to an ICorDebugThread object that represents the managed thread. + +## Remarks + + Once the `ExitThread` callback is fired, the thread will no longer appear in thread enumerations. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [ICorDebugManagedCallback Interface](icordebugmanagedcallback-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-interface.md b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-interface.md index db0e7df36ad21..8829c5c61aff1 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-interface.md @@ -2,76 +2,76 @@ description: "Learn more about: ICorDebugManagedCallback Interface" title: "ICorDebugManagedCallback Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugManagedCallback" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugManagedCallback" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugManagedCallback interface [.NET Framework debugging]" ms.assetid: b47f1d61-c7dc-4196-b926-0b08c94f7041 -topic_type: +topic_type: - "apiref" --- # ICorDebugManagedCallback Interface -Provides methods to process debugger callbacks. - -## Methods - -|Method|Description| -|------------|-----------------| -|[Break Method](icordebugmanagedcallback-break-method.md)|Notifies the debugger when a instruction in the code stream is executed.| -|[Breakpoint Method](icordebugmanagedcallback-breakpoint-method.md)|Notifies the debugger when a breakpoint is encountered.| -|[BreakpointSetError Method](icordebugmanagedcallback-breakpointseterror-method.md)|Notifies the debugger that the common language runtime (CLR) was unable to accurately bind a breakpoint that was set before a function was just-in-time (JIT) compiled.| -|[ControlCTrap Method](icordebugmanagedcallback-controlctrap-method.md)|Notifies the debugger that a CTRL+C is trapped in the process being debugged.| -|[CreateAppDomain Method](icordebugmanagedcallback-createappdomain-method.md)|Notifies the debugger that an application domain has been created.| -|[CreateProcess Method](icordebugmanagedcallback-createprocess-method.md)|Notifies the debugger when a process has been attached or started for the first time.| -|[CreateThread Method](icordebugmanagedcallback-createthread-method.md)|Notifies the debugger that a thread has started executing managed code.| -|[DebuggerError Method](icordebugmanagedcallback-debuggererror-method.md)|Notifies the debugger that an error has occurred while attempting to handle an event from the CLR.| -|[EditAndContinueRemap Method](icordebugmanagedcallback-editandcontinueremap-method.md)|Deprecated. Notifies the debugger that a remap event has been sent to the IDE.| -|[EvalComplete Method](icordebugmanagedcallback-evalcomplete-method.md)|Notifies the debugger that an evaluation has been completed.| -|[EvalException Method](icordebugmanagedcallback-evalexception-method.md)|Notifies the debugger that an evaluation has been terminated with an unhandled exception.| -|[Exception Method](icordebugmanagedcallback-exception-method.md)|Notifies the debugger that an exception has been thrown from managed code.| -|[ExitAppDomain Method](icordebugmanagedcallback-exitappdomain-method.md)|Notifies the debugger that an application domain has exited.| -|[ExitProcess Method](icordebugmanagedcallback-exitprocess-method.md)|Notifies the debugger that a process has exited.| -|[ExitThread Method](icordebugmanagedcallback-exitthread-method.md)|Notifies the debugger that a thread that was executing managed code has exited.| -|[LoadAssembly Method](icordebugmanagedcallback-loadassembly-method.md)|Notifies the debugger that a CLR assembly has been successfully loaded.| -|[LoadClass Method](icordebugmanagedcallback-loadclass-method.md)|Notifies the debugger that a class has been loaded.| -|[LoadModule Method](icordebugmanagedcallback-loadmodule-method.md)|Notifies the debugger that a CLR module has been successfully loaded.| -|[LogMessage Method](icordebugmanagedcallback-logmessage-method.md)|Notifies the debugger that a CLR managed thread has called a method in the class to log an event.| -|[LogSwitch Method](icordebugmanagedcallback-logswitch-method.md)|Notifies the debugger that a CLR managed thread has called a method in the class to create, modify, or delete a debugging/tracing switch.| -|[NameChange Method](icordebugmanagedcallback-namechange-method.md)|Notifies the debugger that the name of either an application domain or thread has changed.| -|[StepComplete Method](icordebugmanagedcallback-stepcomplete-method.md)|Notifies the debugger that a step has completed.| -|[UnloadAssembly Method](icordebugmanagedcallback-unloadassembly-method.md)|Notifies the debugger that a CLR assembly has been unloaded.| -|[UnloadClass Method](icordebugmanagedcallback-unloadclass-method.md)|Notifies the debugger that a class is being unloaded.| -|[UnloadModule Method](icordebugmanagedcallback-unloadmodule-method.md)|Notifies the debugger that a CLR module (DLL) has been unloaded.| -|[UpdateModuleSymbols Method](icordebugmanagedcallback-updatemodulesymbols-method.md)|Notifies the debugger that the symbols for a CLR module have changed.| - -## Remarks +Provides methods to process debugger callbacks. + +## Methods + +|Method|Description| +|------------|-----------------| +|[Break Method](icordebugmanagedcallback-break-method.md)|Notifies the debugger when a instruction in the code stream is executed.| +|[Breakpoint Method](icordebugmanagedcallback-breakpoint-method.md)|Notifies the debugger when a breakpoint is encountered.| +|[BreakpointSetError Method](icordebugmanagedcallback-breakpointseterror-method.md)|Notifies the debugger that the common language runtime (CLR) was unable to accurately bind a breakpoint that was set before a function was just-in-time (JIT) compiled.| +|[ControlCTrap Method](icordebugmanagedcallback-controlctrap-method.md)|Notifies the debugger that a CTRL+C is trapped in the process being debugged.| +|[CreateAppDomain Method](icordebugmanagedcallback-createappdomain-method.md)|Notifies the debugger that an application domain has been created.| +|[CreateProcess Method](icordebugmanagedcallback-createprocess-method.md)|Notifies the debugger when a process has been attached or started for the first time.| +|[CreateThread Method](icordebugmanagedcallback-createthread-method.md)|Notifies the debugger that a thread has started executing managed code.| +|[DebuggerError Method](icordebugmanagedcallback-debuggererror-method.md)|Notifies the debugger that an error has occurred while attempting to handle an event from the CLR.| +|[EditAndContinueRemap Method](icordebugmanagedcallback-editandcontinueremap-method.md)|Deprecated. Notifies the debugger that a remap event has been sent to the IDE.| +|[EvalComplete Method](icordebugmanagedcallback-evalcomplete-method.md)|Notifies the debugger that an evaluation has been completed.| +|[EvalException Method](icordebugmanagedcallback-evalexception-method.md)|Notifies the debugger that an evaluation has been terminated with an unhandled exception.| +|[Exception Method](icordebugmanagedcallback-exception-method.md)|Notifies the debugger that an exception has been thrown from managed code.| +|[ExitAppDomain Method](icordebugmanagedcallback-exitappdomain-method.md)|Notifies the debugger that an application domain has exited.| +|[ExitProcess Method](icordebugmanagedcallback-exitprocess-method.md)|Notifies the debugger that a process has exited.| +|[ExitThread Method](icordebugmanagedcallback-exitthread-method.md)|Notifies the debugger that a thread that was executing managed code has exited.| +|[LoadAssembly Method](icordebugmanagedcallback-loadassembly-method.md)|Notifies the debugger that a CLR assembly has been successfully loaded.| +|[LoadClass Method](icordebugmanagedcallback-loadclass-method.md)|Notifies the debugger that a class has been loaded.| +|[LoadModule Method](icordebugmanagedcallback-loadmodule-method.md)|Notifies the debugger that a CLR module has been successfully loaded.| +|[LogMessage Method](icordebugmanagedcallback-logmessage-method.md)|Notifies the debugger that a CLR managed thread has called a method in the class to log an event.| +|[LogSwitch Method](icordebugmanagedcallback-logswitch-method.md)|Notifies the debugger that a CLR managed thread has called a method in the class to create, modify, or delete a debugging/tracing switch.| +|[NameChange Method](icordebugmanagedcallback-namechange-method.md)|Notifies the debugger that the name of either an application domain or thread has changed.| +|[StepComplete Method](icordebugmanagedcallback-stepcomplete-method.md)|Notifies the debugger that a step has completed.| +|[UnloadAssembly Method](icordebugmanagedcallback-unloadassembly-method.md)|Notifies the debugger that a CLR assembly has been unloaded.| +|[UnloadClass Method](icordebugmanagedcallback-unloadclass-method.md)|Notifies the debugger that a class is being unloaded.| +|[UnloadModule Method](icordebugmanagedcallback-unloadmodule-method.md)|Notifies the debugger that a CLR module (DLL) has been unloaded.| +|[UpdateModuleSymbols Method](icordebugmanagedcallback-updatemodulesymbols-method.md)|Notifies the debugger that the symbols for a CLR module have changed.| + +## Remarks + + All callbacks are serialized, called in the same thread, and called with the process in the synchronized state. + + Each callback implementation must call [ICorDebugController::Continue](icordebugcontroller-continue-method.md) to resume execution. If `ICorDebugController::Continue` is not called before the callback returns, the process will remain stopped and no more event callbacks will occur until `ICorDebugController::Continue` is called. + + A debugger must implement [ICorDebugManagedCallback2](icordebugmanagedcallback2-interface.md) if it is debugging .NET Framework version 2.0 applications. An instance of `ICorDebugManagedCallback` or `ICorDebugManagedCallback2` is passed as the callback object to [ICorDebug::SetManagedHandler](icordebug-setmanagedhandler-method.md). - All callbacks are serialized, called in the same thread, and called with the process in the synchronized state. - - Each callback implementation must call [ICorDebugController::Continue](icordebugcontroller-continue-method.md) to resume execution. If `ICorDebugController::Continue` is not called before the callback returns, the process will remain stopped and no more event callbacks will occur until `ICorDebugController::Continue` is called. - - A debugger must implement [ICorDebugManagedCallback2](icordebugmanagedcallback2-interface.md) if it is debugging .NET Framework version 2.0 applications. An instance of `ICorDebugManagedCallback` or `ICorDebugManagedCallback2` is passed as the callback object to [ICorDebug::SetManagedHandler](icordebug-setmanagedhandler-method.md). - > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - ## See also - [ICorDebug Interface](icordebug-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-loadclass-method.md b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-loadclass-method.md index 646a47687ff8f..d385b967e07fa 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-loadclass-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-loadclass-method.md @@ -2,58 +2,58 @@ description: "Learn more about: ICorDebugManagedCallback::LoadClass Method" title: "ICorDebugManagedCallback::LoadClass Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugManagedCallback.LoadClass" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugManagedCallback::LoadClass" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugManagedCallback::LoadClass method [.NET Framework debugging]" - "LoadClass method [.NET Framework debugging]" ms.assetid: e58dac7b-85c3-41ca-b9aa-3a7fc9ae6680 -topic_type: +topic_type: - "apiref" --- # ICorDebugManagedCallback::LoadClass Method -Notifies the debugger that a class has been loaded. - -## Syntax - -```cpp -HRESULT LoadClass ( - [in] ICorDebugAppDomain *pAppDomain, - [in] ICorDebugClass *c -); -``` - -## Parameters - - `pAppDomain` - [in] A pointer to an ICorDebugAppDomain object that represents the application domain into which the class has been loaded. - - `c` - [in] A pointer to an ICorDebugClass object that represents the class. - -## Remarks - - This callback occurs only if class loading has been enabled for the module that contains the class. Class loading is always enabled for dynamic modules. - - The `LoadClass` callback provides an appropriate time to bind breakpoints to newly generated classes in dynamic modules. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Notifies the debugger that a class has been loaded. + +## Syntax + +```cpp +HRESULT LoadClass ( + [in] ICorDebugAppDomain *pAppDomain, + [in] ICorDebugClass *c +); +``` + +## Parameters + + `pAppDomain` + [in] A pointer to an ICorDebugAppDomain object that represents the application domain into which the class has been loaded. + + `c` + [in] A pointer to an ICorDebugClass object that represents the class. + +## Remarks + + This callback occurs only if class loading has been enabled for the module that contains the class. Class loading is always enabled for dynamic modules. + + The `LoadClass` callback provides an appropriate time to bind breakpoints to newly generated classes in dynamic modules. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [UnloadClass Method](icordebugmanagedcallback-unloadclass-method.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-loadmodule-method.md b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-loadmodule-method.md index 188130f3141dd..574fad0f0ec9a 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-loadmodule-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-loadmodule-method.md @@ -2,56 +2,56 @@ description: "Learn more about: ICorDebugManagedCallback::LoadModule Method" title: "ICorDebugManagedCallback::LoadModule Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugManagedCallback.LoadModule" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugManagedCallback::LoadModule" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugManagedCallback::LoadModule method [.NET Framework debugging]" - "LoadModule method [.NET Framework debugging]" ms.assetid: 66ec04e9-87cb-42ce-9720-81522abb5d5a -topic_type: +topic_type: - "apiref" --- # ICorDebugManagedCallback::LoadModule Method -Notifies the debugger that a common language runtime (CLR) module has been successfully loaded. - -## Syntax - -```cpp -HRESULT LoadModule ( - [in] ICorDebugAppDomain *pAppDomain, - [in] ICorDebugModule *pModule -); -``` - -## Parameters - - `pAppDomain` - [in] A pointer to an ICorDebugAppDomain object that represents the application domain into which the module has been loaded. - - `pModule` - [in] A pointer to an ICorDebugModule object that represents the CLR module. - -## Remarks - - The `LoadModule` callback provides an appropriate time to examine metadata for the module, set just-in-time (JIT) compiler flags, or enable or disable class loading callbacks for the module. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Notifies the debugger that a common language runtime (CLR) module has been successfully loaded. + +## Syntax + +```cpp +HRESULT LoadModule ( + [in] ICorDebugAppDomain *pAppDomain, + [in] ICorDebugModule *pModule +); +``` + +## Parameters + + `pAppDomain` + [in] A pointer to an ICorDebugAppDomain object that represents the application domain into which the module has been loaded. + + `pModule` + [in] A pointer to an ICorDebugModule object that represents the CLR module. + +## Remarks + + The `LoadModule` callback provides an appropriate time to examine metadata for the module, set just-in-time (JIT) compiler flags, or enable or disable class loading callbacks for the module. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [UnloadModule Method](icordebugmanagedcallback-unloadmodule-method.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-stepcomplete-method.md b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-stepcomplete-method.md index 1d42e223a08d7..4563d8c2abdb4 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-stepcomplete-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-stepcomplete-method.md @@ -2,64 +2,64 @@ description: "Learn more about: ICorDebugManagedCallback::StepComplete Method" title: "ICorDebugManagedCallback::StepComplete Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugManagedCallback.StepComplete" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugManagedCallback::StepComplete" -helpviewer_keywords: +helpviewer_keywords: - "StepComplete method [.NET Framework debugging]" - "ICorDebugManagedCallback::StepComplete method [.NET Framework debugging]" ms.assetid: 5e1f2c47-81df-4530-826d-96489cd68719 -topic_type: +topic_type: - "apiref" --- # ICorDebugManagedCallback::StepComplete Method -Notifies the debugger that a step has completed. - -## Syntax - -```cpp -HRESULT StepComplete ( - [in] ICorDebugAppDomain *pAppDomain, - [in] ICorDebugThread *pThread, - [in] ICorDebugStepper *pStepper, - [in] CorDebugStepReason reason -); -``` - -## Parameters - - `pAppDomain` - [in] A pointer to an ICorDebugAppDomain object that represents the application domain containing the thread in which the step has completed. - - `pThread` - [in] A pointer to an ICorDebugThread object that represents the thread in which the step has completed. - - `pStepper` - [in] A pointer to an ICorDebugStepper object that represents the step in code execution. - - `reason` - [in] A value of the CorDebugStepReason enumeration that indicates the outcome of an individual step. - -## Remarks - - The stepper may be used to continue stepping if desired, unless the debugging is terminated. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Notifies the debugger that a step has completed. + +## Syntax + +```cpp +HRESULT StepComplete ( + [in] ICorDebugAppDomain *pAppDomain, + [in] ICorDebugThread *pThread, + [in] ICorDebugStepper *pStepper, + [in] CorDebugStepReason reason +); +``` + +## Parameters + + `pAppDomain` + [in] A pointer to an ICorDebugAppDomain object that represents the application domain containing the thread in which the step has completed. + + `pThread` + [in] A pointer to an ICorDebugThread object that represents the thread in which the step has completed. + + `pStepper` + [in] A pointer to an ICorDebugStepper object that represents the step in code execution. + + `reason` + [in] A value of the CorDebugStepReason enumeration that indicates the outcome of an individual step. + +## Remarks + + The stepper may be used to continue stepping if desired, unless the debugging is terminated. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [ICorDebugManagedCallback Interface](icordebugmanagedcallback-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-unloadassembly-method.md b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-unloadassembly-method.md index cdda06b7e540f..a0dca0ff28a83 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-unloadassembly-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-unloadassembly-method.md @@ -2,56 +2,56 @@ description: "Learn more about: ICorDebugManagedCallback::UnloadAssembly Method" title: "ICorDebugManagedCallback::UnloadAssembly Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugManagedCallback.UnloadAssembly" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugManagedCallback::UnloadAssembly" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugManagedCallback::UnloadAssembly method [.NET Framework debugging]" - "UnloadAssembly method [.NET Framework debugging]" ms.assetid: 6734321c-c8a9-401f-a558-cad715ec4a77 -topic_type: +topic_type: - "apiref" --- # ICorDebugManagedCallback::UnloadAssembly Method -Notifies the debugger that a common language runtime assembly has been unloaded. - -## Syntax - -```cpp -HRESULT UnloadAssembly ( - [in] IcorDebugAppDomain *pAppDomain, - [in] ICorDebugAssembly *pAssembly -); -``` - -## Parameters - - `pAppDomain` - [in] A pointer to an ICorDebugAppDomain object that represents the application domain that contained the assembly. - - `pAssembly` - [in] A pointer to an ICorDebugAssembly object that represents the assembly. - -## Remarks - - The assembly should not be used after this callback. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Notifies the debugger that a common language runtime assembly has been unloaded. + +## Syntax + +```cpp +HRESULT UnloadAssembly ( + [in] IcorDebugAppDomain *pAppDomain, + [in] ICorDebugAssembly *pAssembly +); +``` + +## Parameters + + `pAppDomain` + [in] A pointer to an ICorDebugAppDomain object that represents the application domain that contained the assembly. + + `pAssembly` + [in] A pointer to an ICorDebugAssembly object that represents the assembly. + +## Remarks + + The assembly should not be used after this callback. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [LoadAssembly Method](icordebugmanagedcallback-loadassembly-method.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-unloadclass-method.md b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-unloadclass-method.md index bacc571f8d3a4..2532aab0147e6 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-unloadclass-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-unloadclass-method.md @@ -2,56 +2,56 @@ description: "Learn more about: ICorDebugManagedCallback::UnloadClass Method" title: "ICorDebugManagedCallback::UnloadClass Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugManagedCallback.UnloadClass" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugManagedCallback::UnloadClass" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugManagedCallback::UnloadClass method [.NET Framework debugging]" - "UnloadClass method [.NET Framework debugging]" ms.assetid: 66a59b18-ce9a-41f4-b23b-4dd6753d6d36 -topic_type: +topic_type: - "apiref" --- # ICorDebugManagedCallback::UnloadClass Method -Notifies the debugger that a class is being unloaded. - -## Syntax - -```cpp -HRESULT UnloadClass ( - [in] ICorDebugAppDomain *pAppDomain, - [in] ICorDebugClass *c -); -``` - -## Parameters - - `pAppDomain` - [in] A pointer to an ICorDebugAppDomain object that represents the application domain containing the class. - - `c` - [in] A pointer to an ICorDebugClass object that represents the class. - -## Remarks - - The class should not be referenced after this call. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Notifies the debugger that a class is being unloaded. + +## Syntax + +```cpp +HRESULT UnloadClass ( + [in] ICorDebugAppDomain *pAppDomain, + [in] ICorDebugClass *c +); +``` + +## Parameters + + `pAppDomain` + [in] A pointer to an ICorDebugAppDomain object that represents the application domain containing the class. + + `c` + [in] A pointer to an ICorDebugClass object that represents the class. + +## Remarks + + The class should not be referenced after this call. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [LoadClass Method](icordebugmanagedcallback-loadclass-method.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-unloadmodule-method.md b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-unloadmodule-method.md index 6515f596b5fde..07c5bab9cc307 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-unloadmodule-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-unloadmodule-method.md @@ -2,56 +2,56 @@ description: "Learn more about: ICorDebugManagedCallback::UnloadModule Method" title: "ICorDebugManagedCallback::UnloadModule Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugManagedCallback.UnloadModule" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugManagedCallback::UnloadModule" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugManagedCallback::UnloadModule method [.NET Framework debugging]" - "UnloadModule method [.NET Framework debugging]" ms.assetid: b12bfcd9-1e29-48bf-9a3d-44bfae5df5e8 -topic_type: +topic_type: - "apiref" --- # ICorDebugManagedCallback::UnloadModule Method -Notifies the debugger that a common language runtime module (DLL) has been unloaded. - -## Syntax - -```cpp -HRESULT UnloadModule ( - [in] ICorDebugAppDomain *pAppDomain, - [in] ICorDebugModule *pModule -); -``` - -## Parameters - - `pAppDomain` - [in] A pointer to an ICorDebugAppDomain object that represents the application domain that contained the module. - - `pModule` - [in] A pointer to an ICorDebugModule object that represents the module. - -## Remarks - - The module should not be used after this call. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Notifies the debugger that a common language runtime module (DLL) has been unloaded. + +## Syntax + +```cpp +HRESULT UnloadModule ( + [in] ICorDebugAppDomain *pAppDomain, + [in] ICorDebugModule *pModule +); +``` + +## Parameters + + `pAppDomain` + [in] A pointer to an ICorDebugAppDomain object that represents the application domain that contained the module. + + `pModule` + [in] A pointer to an ICorDebugModule object that represents the module. + +## Remarks + + The module should not be used after this call. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [LoadModule Method](icordebugmanagedcallback-loadmodule-method.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-updatemodulesymbols-method.md b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-updatemodulesymbols-method.md index a70f38ee6e481..90f9ef1ebf954 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-updatemodulesymbols-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback-updatemodulesymbols-method.md @@ -2,64 +2,64 @@ description: "Learn more about: ICorDebugManagedCallback::UpdateModuleSymbols Method" title: "ICorDebugManagedCallback::UpdateModuleSymbols Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugManagedCallback.UpdateModuleSymbols" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugManagedCallback::UpdateModuleSymbols" -helpviewer_keywords: +helpviewer_keywords: - "UpdateModuleSymbols method [.NET Framework debugging]" - "ICorDebugManagedCallback::UpdateModuleSymbols method [.NET Framework debugging]" ms.assetid: 0863f644-58e8-45a0-b0c3-a28e99b20938 -topic_type: +topic_type: - "apiref" --- # ICorDebugManagedCallback::UpdateModuleSymbols Method -Notifies the debugger that the symbols for a common language runtime module have changed. - -## Syntax - -```cpp -HRESULT UpdateModuleSymbols ( - [in] ICorDebugAppDomain *pAppDomain, - [in] ICorDebugModule *pModule, - [in] IStream *pSymbolStream -); -``` - -## Parameters - - `pAppDomain` - [in] A pointer to an ICorDebugAppDomain object that represents the application domain containing the module in which the symbols have changed. - - `pModule` - [in] A pointer to an ICorDebugModule object that represents the module in which the symbols have changed. - - `pSymbolStream` - [in] A pointer to a Win32 COM `IStream` object that contains the modified symbols. - -## Remarks - - This method provides an opportunity to update the debugger's view of a module's symbols by calling [ISymUnmanagedReader::UpdateSymbolStore](../diagnostics/isymunmanagedreader-updatesymbolstore-method.md) or [ISymUnmanagedReader::ReplaceSymbolStore](../diagnostics/isymunmanagedreader-replacesymbolstore-method.md). - - This callback can occur multiple times for the same module. - - A debugger should try to bind unbound source-level breakpoints. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Notifies the debugger that the symbols for a common language runtime module have changed. + +## Syntax + +```cpp +HRESULT UpdateModuleSymbols ( + [in] ICorDebugAppDomain *pAppDomain, + [in] ICorDebugModule *pModule, + [in] IStream *pSymbolStream +); +``` + +## Parameters + + `pAppDomain` + [in] A pointer to an ICorDebugAppDomain object that represents the application domain containing the module in which the symbols have changed. + + `pModule` + [in] A pointer to an ICorDebugModule object that represents the module in which the symbols have changed. + + `pSymbolStream` + [in] A pointer to a Win32 COM `IStream` object that contains the modified symbols. + +## Remarks + + This method provides an opportunity to update the debugger's view of a module's symbols by calling [ISymUnmanagedReader::UpdateSymbolStore](../diagnostics/isymunmanagedreader-updatesymbolstore-method.md) or [ISymUnmanagedReader::ReplaceSymbolStore](../diagnostics/isymunmanagedreader-replacesymbolstore-method.md). + + This callback can occur multiple times for the same module. + + A debugger should try to bind unbound source-level breakpoints. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [ICorDebugManagedCallback Interface](icordebugmanagedcallback-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback2-changeconnection-method.md b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback2-changeconnection-method.md index 3679dbccd07e8..238b50ea449e3 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback2-changeconnection-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback2-changeconnection-method.md @@ -2,62 +2,62 @@ description: "Learn more about: ICorDebugManagedCallback2::ChangeConnection Method" title: "ICorDebugManagedCallback2::ChangeConnection Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugManagedCallback2.ChangeConnection" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugManagedCallback2::ChangeConnection" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugManagedCallback2::ChangeConnection method [.NET Framework debugging]" - "ChangeConnection method [.NET Framework debugging]" ms.assetid: 7263f9a9-4c0b-4d82-a181-288873fb2b18 -topic_type: +topic_type: - "apiref" --- # ICorDebugManagedCallback2::ChangeConnection Method -Notifies the debugger that the set of tasks associated with the specified connection has changed. - -## Syntax - -```cpp -HRESULT ChangeConnection ( - [in] ICorDebugProcess *pProcess, - [in] CONNID dwConnectionId -); -``` - -## Parameters - - `pProcess` - [in] A pointer to an "ICorDebugProcess" object that represents the process containing the connection that changed. - - `dwConnectionId` - [in] The ID of the connection that changed. - -## Remarks - - A `ChangeConnection` callback will be fired in either of the following cases: - -- When a debugger attaches to a process that contains connections. In this case, the runtime will generate and dispatch a [ICorDebugManagedCallback2::CreateConnection](icordebugmanagedcallback2-createconnection-method.md) event and a `ChangeConnection` event for each connection in the process. A `ChangeConnection` event is generated for every existing connection, regardless of whether that connection’s set of tasks has been changed since its creation. - -- When a host calls [ICLRDebugManager::SetConnectionTasks](../hosting/iclrdebugmanager-setconnectiontasks-method.md) in the [Hosting API](../hosting/index.md). - - The debugger should scan all threads in the process to pick up the new changes. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +Notifies the debugger that the set of tasks associated with the specified connection has changed. + +## Syntax + +```cpp +HRESULT ChangeConnection ( + [in] ICorDebugProcess *pProcess, + [in] CONNID dwConnectionId +); +``` + +## Parameters + + `pProcess` + [in] A pointer to an "ICorDebugProcess" object that represents the process containing the connection that changed. + + `dwConnectionId` + [in] The ID of the connection that changed. + +## Remarks + + A `ChangeConnection` callback will be fired in either of the following cases: + +- When a debugger attaches to a process that contains connections. In this case, the runtime will generate and dispatch a [ICorDebugManagedCallback2::CreateConnection](icordebugmanagedcallback2-createconnection-method.md) event and a `ChangeConnection` event for each connection in the process. A `ChangeConnection` event is generated for every existing connection, regardless of whether that connection’s set of tasks has been changed since its creation. + +- When a host calls [ICLRDebugManager::SetConnectionTasks](../hosting/iclrdebugmanager-setconnectiontasks-method.md) in the [Hosting API](../hosting/index.md). + + The debugger should scan all threads in the process to pick up the new changes. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [ICorDebugManagedCallback2 Interface](icordebugmanagedcallback2-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback2-createconnection-method.md b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback2-createconnection-method.md index 4402569daefbf..a410986005df2 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback2-createconnection-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback2-createconnection-method.md @@ -2,64 +2,64 @@ description: "Learn more about: ICorDebugManagedCallback2::CreateConnection Method" title: "ICorDebugManagedCallback2::CreateConnection Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugManagedCallback2.CreateConnection" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugManagedCallback2::CreateConnection" -helpviewer_keywords: +helpviewer_keywords: - "CreateConnection method [.NET Framework debugging]" - "ICorDebugManagedCallback2::CreateConnection method [.NET Framework debugging]" ms.assetid: 49e647be-9d63-4250-9d11-704e2a400d1b -topic_type: +topic_type: - "apiref" --- # ICorDebugManagedCallback2::CreateConnection Method -Notifies the debugger that a new connection has been created. - -## Syntax - -```cpp -HRESULT CreateConnection ( - [in] ICorDebugProcess *pProcess, - [in] CONNID dwConnectionId, - [in] WCHAR *pConnName -); -``` - -## Parameters - - `pProcess` - [in] A pointer to an "ICorDebugProcess" object that represents the process in which the connection was created - - `dwConnectionId` - [in] The ID of the new connection. - - `pConnName` - [in] A pointer to the name of the new connection. - -## Remarks - - A `CreateConnection` callback will be fired in either of the following cases: - -- When a debugger attaches to a process that contains connections. In this case, the runtime will generate and dispatch a `CreateConnection` event and a [ICorDebugManagedCallback2::ChangeConnection](icordebugmanagedcallback2-changeconnection-method.md) event for each connection in the process. - -- When a host calls [ICLRDebugManager::BeginConnection](../hosting/iclrdebugmanager-beginconnection-method.md) in the [Hosting API](../hosting/index.md). - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +Notifies the debugger that a new connection has been created. + +## Syntax + +```cpp +HRESULT CreateConnection ( + [in] ICorDebugProcess *pProcess, + [in] CONNID dwConnectionId, + [in] WCHAR *pConnName +); +``` + +## Parameters + + `pProcess` + [in] A pointer to an "ICorDebugProcess" object that represents the process in which the connection was created + + `dwConnectionId` + [in] The ID of the new connection. + + `pConnName` + [in] A pointer to the name of the new connection. + +## Remarks + + A `CreateConnection` callback will be fired in either of the following cases: + +- When a debugger attaches to a process that contains connections. In this case, the runtime will generate and dispatch a `CreateConnection` event and a [ICorDebugManagedCallback2::ChangeConnection](icordebugmanagedcallback2-changeconnection-method.md) event for each connection in the process. + +- When a host calls [ICLRDebugManager::BeginConnection](../hosting/iclrdebugmanager-beginconnection-method.md) in the [Hosting API](../hosting/index.md). + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [ICorDebugManagedCallback2 Interface](icordebugmanagedcallback2-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback2-destroyconnection-method.md b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback2-destroyconnection-method.md index 5b63e8fada314..9f5d5d6a7f0f3 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback2-destroyconnection-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback2-destroyconnection-method.md @@ -2,56 +2,56 @@ description: "Learn more about: ICorDebugManagedCallback2::DestroyConnection Method" title: "ICorDebugManagedCallback2::DestroyConnection Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugManagedCallback2.DestroyConnection" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugManagedCallback2::DestroyConnection" -helpviewer_keywords: +helpviewer_keywords: - "DestroyConnection method [.NET Framework debugging]" - "ICorDebugManagedCallback2::DestroyConnection method [.NET Framework debugging]" ms.assetid: cf7940e9-4558-4319-925c-09f6c98c8fcd -topic_type: +topic_type: - "apiref" --- # ICorDebugManagedCallback2::DestroyConnection Method -Notifies the debugger that the specified connection has been terminated. - -## Syntax - -```cpp -HRESULT DestroyConnection ( - [in] ICorDebugProcess *pProcess, - [in] CONNID dwConnectionId -); -``` - -## Parameters - - `pProcess` - [in] A pointer to an ICorDebugProcess object that represents the process containing the connection that was destroyed. - - `dwConnectionId` - [in] The ID of the connection that was destroyed. - -## Remarks - - A `DestroyConnection` callback will be fired when a host calls [ICLRDebugManager::EndConnection](../hosting/iclrdebugmanager-endconnection-method.md) in the [Hosting API](../hosting/index.md). - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +Notifies the debugger that the specified connection has been terminated. + +## Syntax + +```cpp +HRESULT DestroyConnection ( + [in] ICorDebugProcess *pProcess, + [in] CONNID dwConnectionId +); +``` + +## Parameters + + `pProcess` + [in] A pointer to an ICorDebugProcess object that represents the process containing the connection that was destroyed. + + `dwConnectionId` + [in] The ID of the connection that was destroyed. + +## Remarks + + A `DestroyConnection` callback will be fired when a host calls [ICLRDebugManager::EndConnection](../hosting/iclrdebugmanager-endconnection-method.md) in the [Hosting API](../hosting/index.md). + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [ICorDebugManagedCallback2 Interface](icordebugmanagedcallback2-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback2-exceptionunwind-method.md b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback2-exceptionunwind-method.md index 9644e39409716..e4c516e45771f 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback2-exceptionunwind-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback2-exceptionunwind-method.md @@ -2,66 +2,66 @@ description: "Learn more about: ICorDebugManagedCallback2::ExceptionUnwind Method" title: "ICorDebugManagedCallback2::ExceptionUnwind Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugManagedCallback2.ExceptionUnwind" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugManagedCallback2::ExceptionUnwind" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugManagedCallback2::ExceptionUnwind method [.NET Framework debugging]" - "ExceptionUnwind method [.NET Framework debugging]" ms.assetid: aaf5938d-179c-4eaa-8d35-8523a4fadded -topic_type: +topic_type: - "apiref" --- # ICorDebugManagedCallback2::ExceptionUnwind Method -Provides a status notification during the exception unwinding process. - -## Syntax - -```cpp -HRESULT ExceptionUnwind ( - [in] ICorDebugAppDomain *pAppDomain, - [in] ICorDebugThread *pThread, - [in] CorDebugExceptionUnwindCallbackType dwEventType, - [in] DWORD dwFlags -); -``` - -## Parameters - - `pAppDomain` - [in] A pointer to an ICorDebugAppDomain object that represents the application domain containing the thread on which the exception was thrown. - - `pThread` - [in] A pointer to an ICorDebugThread object that represents the thread on which the exception was thrown. - - `dwEventType` - [in] A value of the CorDebugExceptionUnwindCallbackType enumeration that specifies the event that is being signaled by the callback during the unwind phase. - - `dwFlags` - [in] A value of the [CorDebugExceptionFlags](cordebugexceptionflags-enumeration.md) enumeration that specifies additional information about the exception. - -## Remarks - - `ExceptionUnwind` is called at various points during the unwind phase of the exception-handling process. `ExceptionUnwind` can be called more than once while unwinding a single exception. - - If `dwEventType` = DEBUG_EXCEPTION_INTERCEPTED, the instruction pointer will be in the leaf frame of the thread, at the sequence point before (this may be several instructions before) the instruction that led to the exception. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +Provides a status notification during the exception unwinding process. + +## Syntax + +```cpp +HRESULT ExceptionUnwind ( + [in] ICorDebugAppDomain *pAppDomain, + [in] ICorDebugThread *pThread, + [in] CorDebugExceptionUnwindCallbackType dwEventType, + [in] DWORD dwFlags +); +``` + +## Parameters + + `pAppDomain` + [in] A pointer to an ICorDebugAppDomain object that represents the application domain containing the thread on which the exception was thrown. + + `pThread` + [in] A pointer to an ICorDebugThread object that represents the thread on which the exception was thrown. + + `dwEventType` + [in] A value of the CorDebugExceptionUnwindCallbackType enumeration that specifies the event that is being signaled by the callback during the unwind phase. + + `dwFlags` + [in] A value of the [CorDebugExceptionFlags](cordebugexceptionflags-enumeration.md) enumeration that specifies additional information about the exception. + +## Remarks + + `ExceptionUnwind` is called at various points during the unwind phase of the exception-handling process. `ExceptionUnwind` can be called more than once while unwinding a single exception. + + If `dwEventType` = DEBUG_EXCEPTION_INTERCEPTED, the instruction pointer will be in the leaf frame of the thread, at the sequence point before (this may be several instructions before) the instruction that led to the exception. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [ICorDebugManagedCallback2 Interface](icordebugmanagedcallback2-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback2-functionremapcomplete-method.md b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback2-functionremapcomplete-method.md index 46fab3ca0636a..3320333fea82f 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback2-functionremapcomplete-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback2-functionremapcomplete-method.md @@ -2,60 +2,60 @@ description: "Learn more about: ICorDebugManagedCallback2::FunctionRemapComplete Method" title: "ICorDebugManagedCallback2::FunctionRemapComplete Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugManagedCallback2.FunctionRemapComplete" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugManagedCallback2::FunctionRemapComplete" -helpviewer_keywords: +helpviewer_keywords: - "FunctionRemapComplete method [.NET Framework debugging]" - "ICorDebugManagedCallback2::FunctionRemapComplete method [.NET Framework debugging]" ms.assetid: 5396c4c3-4ec3-4e3a-a38d-d65b21f0a2fc -topic_type: +topic_type: - "apiref" --- # ICorDebugManagedCallback2::FunctionRemapComplete Method -Notifies the debugger that code execution has switched to a new version of an edited function. - -## Syntax - -```cpp -HRESULT FunctionRemapComplete ( - [in] ICorDebugAppDomain *pAppDomain, - [in] ICorDebugThread *pThread, - [in] ICorDebugFunction *pFunction -); -``` - -## Parameters - - `pAppDomain` - [in] A pointer to an ICorDebugAppDomain object that represents the application domain containing the edited function. - - `pThread` - [in] A pointer to an ICorDebugThread object that represents the thread on which the remap breakpoint was encountered. - - `pFunction` - [in] A pointer to an ICorDebugFunction object that represents the version of the function currently running on the thread. - -## Remarks - - This callback gives the debugger an opportunity to recreate any steppers that previously existed. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +Notifies the debugger that code execution has switched to a new version of an edited function. + +## Syntax + +```cpp +HRESULT FunctionRemapComplete ( + [in] ICorDebugAppDomain *pAppDomain, + [in] ICorDebugThread *pThread, + [in] ICorDebugFunction *pFunction +); +``` + +## Parameters + + `pAppDomain` + [in] A pointer to an ICorDebugAppDomain object that represents the application domain containing the edited function. + + `pThread` + [in] A pointer to an ICorDebugThread object that represents the thread on which the remap breakpoint was encountered. + + `pFunction` + [in] A pointer to an ICorDebugFunction object that represents the version of the function currently running on the thread. + +## Remarks + + This callback gives the debugger an opportunity to recreate any steppers that previously existed. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [ICorDebugManagedCallback2 Interface](icordebugmanagedcallback2-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback2-interface.md b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback2-interface.md index 6765f0dc4ef0f..6bb2ad551f06a 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback2-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback2-interface.md @@ -2,56 +2,56 @@ description: "Learn more about: ICorDebugManagedCallback2 Interface" title: "ICorDebugManagedCallback2 Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugManagedCallback2" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugManagedCallback2" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugManagedCallback2 interface [.NET Framework debugging]" ms.assetid: cf7b7cfa-1c4b-4d8c-be70-4f9ed15a788b -topic_type: +topic_type: - "apiref" --- # ICorDebugManagedCallback2 Interface -Provides methods to support debugger exception handling and managed debugging assistants (MDAs). `ICorDebugManagedCallback2` is a logical extension of the [ICorDebugManagedCallback](icordebugmanagedcallback-interface.md) interface. - -## Methods - -|Method|Description| -|------------|-----------------| -|[ChangeConnection Method](icordebugmanagedcallback2-changeconnection-method.md)|Notifies the debugger that the set of tasks associated with the specified connection has changed.| -|[CreateConnection Method](icordebugmanagedcallback2-createconnection-method.md)|Notifies the debugger that a new connection has been created.| -|[DestroyConnection Method](icordebugmanagedcallback2-destroyconnection-method.md)|Notifies the debugger that the specified connection has been terminated.| -|[Exception Method](icordebugmanagedcallback2-exception-method.md)|Notifies the debugger that a search for an exception handler has started.| -|[ExceptionUnwind Method](icordebugmanagedcallback2-exceptionunwind-method.md)|Provides a status notification during the exception unwinding process.| -|[FunctionRemapComplete Method](icordebugmanagedcallback2-functionremapcomplete-method.md)|Notifies the debugger that code execution has switched to a new version of an edited function.| -|[FunctionRemapOpportunity Method](icordebugmanagedcallback2-functionremapopportunity-method.md)|Notifies the debugger that code execution has reached a sequence point in an older version of an edited function.| -|[MDANotification Method](icordebugmanagedcallback2-mdanotification-method.md)|Provides notification that code execution has encountered a managed debugging assistant (MDA) message.| - -## Remarks - - The `ICorDebugManagedCallback2` interface extends the `ICorDebugManagedCallback` interface to handle new debug events introduced in .NET Framework version 2.0. - - A debugger must implement `ICorDebugManagedCallback2` if it is debugging .NET Framework 2.0 applications. An instance of `ICorDebugManagedCallback` or `ICorDebugManagedCallback2` is passed as the callback object to [ICorDebug::SetManagedHandler](icordebug-setmanagedhandler-method.md). - +Provides methods to support debugger exception handling and managed debugging assistants (MDAs). `ICorDebugManagedCallback2` is a logical extension of the [ICorDebugManagedCallback](icordebugmanagedcallback-interface.md) interface. + +## Methods + +|Method|Description| +|------------|-----------------| +|[ChangeConnection Method](icordebugmanagedcallback2-changeconnection-method.md)|Notifies the debugger that the set of tasks associated with the specified connection has changed.| +|[CreateConnection Method](icordebugmanagedcallback2-createconnection-method.md)|Notifies the debugger that a new connection has been created.| +|[DestroyConnection Method](icordebugmanagedcallback2-destroyconnection-method.md)|Notifies the debugger that the specified connection has been terminated.| +|[Exception Method](icordebugmanagedcallback2-exception-method.md)|Notifies the debugger that a search for an exception handler has started.| +|[ExceptionUnwind Method](icordebugmanagedcallback2-exceptionunwind-method.md)|Provides a status notification during the exception unwinding process.| +|[FunctionRemapComplete Method](icordebugmanagedcallback2-functionremapcomplete-method.md)|Notifies the debugger that code execution has switched to a new version of an edited function.| +|[FunctionRemapOpportunity Method](icordebugmanagedcallback2-functionremapopportunity-method.md)|Notifies the debugger that code execution has reached a sequence point in an older version of an edited function.| +|[MDANotification Method](icordebugmanagedcallback2-mdanotification-method.md)|Provides notification that code execution has encountered a managed debugging assistant (MDA) message.| + +## Remarks + + The `ICorDebugManagedCallback2` interface extends the `ICorDebugManagedCallback` interface to handle new debug events introduced in .NET Framework version 2.0. + + A debugger must implement `ICorDebugManagedCallback2` if it is debugging .NET Framework 2.0 applications. An instance of `ICorDebugManagedCallback` or `ICorDebugManagedCallback2` is passed as the callback object to [ICorDebug::SetManagedHandler](icordebug-setmanagedhandler-method.md). + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [Diagnosing Errors with Managed Debugging Assistants](../../debug-trace-profile/diagnosing-errors-with-managed-debugging-assistants.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback2-mdanotification-method.md b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback2-mdanotification-method.md index 0e0445fbf38d3..3914b564d1144 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback2-mdanotification-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback2-mdanotification-method.md @@ -2,72 +2,72 @@ description: "Learn more about: ICorDebugManagedCallback2::MDANotification Method" title: "ICorDebugManagedCallback2::MDANotification Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugManagedCallback2.MDANotification" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugManagedCallback2::MDANotification" -helpviewer_keywords: +helpviewer_keywords: - "MDANotification method [.NET Framework debugging]" - "ICorDebugManagedCallback2::MDANotification method [.NET Framework debugging]" ms.assetid: 93f79627-bd31-4f4f-b95d-46a032a52fe4 -topic_type: +topic_type: - "apiref" --- # ICorDebugManagedCallback2::MDANotification Method -Provides notification that code execution has encountered a managed debugging assistant (MDA) in the application that is being debugged. - -## Syntax - -```cpp -HRESULT MDANotification( - [in] ICorDebugController *pController, - [in] ICorDebugThread *pThread, - [in] ICorDebugMDA *pMDA -); -``` - -## Parameters - - `pController` - [in] A pointer to an ICorDebugController interface that exposes the process or application domain in which the MDA occurred. - - A debugger should not make any assumptions about whether the controller is a process or an application domain, although it can always query the interface to make a determination. - - `pThread` - [in] A pointer to an ICorDebugThread interface that exposes the managed thread on which the debug event occurred. - - If the MDA occurred on an unmanaged thread, the value of `pThread` will be null. - - You must get the operating system (OS) thread ID from the MDA object itself. - - `pMDA` - [in] A pointer to an [ICorDebugMDA](icordebugmda-interface.md) interface that exposes the MDA information. - -## Remarks - - An MDA is a heuristic warning and does not require any explicit debugger action except for calling [ICorDebugController::Continue](icordebugcontroller-continue-method.md) to resume execution of the application that is being debugged. - - The common language runtime (CLR) can determine which MDAs are fired and which data is in any given MDA at any point. Therefore, debuggers should not build any functionality requiring specific MDA patterns. - - MDAs may be queued and fired shortly after the MDA is encountered. This could happen if the runtime needs to wait until it reaches a safe point for firing the MDA, instead of firing the MDA when it encounters it. It also means that the runtime may fire a number of MDAs in a single set of queued callbacks (similar to an "attach" event operation). - - A debugger should release the reference to an `ICorDebugMDA` instance immediately after returning from the `MDANotification` callback, to allow the CLR to recycle the memory consumed by an MDA. Releasing the instance may improve performance if many MDAs are firing. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +Provides notification that code execution has encountered a managed debugging assistant (MDA) in the application that is being debugged. + +## Syntax + +```cpp +HRESULT MDANotification( + [in] ICorDebugController *pController, + [in] ICorDebugThread *pThread, + [in] ICorDebugMDA *pMDA +); +``` + +## Parameters + + `pController` + [in] A pointer to an ICorDebugController interface that exposes the process or application domain in which the MDA occurred. + + A debugger should not make any assumptions about whether the controller is a process or an application domain, although it can always query the interface to make a determination. + + `pThread` + [in] A pointer to an ICorDebugThread interface that exposes the managed thread on which the debug event occurred. + + If the MDA occurred on an unmanaged thread, the value of `pThread` will be null. + + You must get the operating system (OS) thread ID from the MDA object itself. + + `pMDA` + [in] A pointer to an [ICorDebugMDA](icordebugmda-interface.md) interface that exposes the MDA information. + +## Remarks + + An MDA is a heuristic warning and does not require any explicit debugger action except for calling [ICorDebugController::Continue](icordebugcontroller-continue-method.md) to resume execution of the application that is being debugged. + + The common language runtime (CLR) can determine which MDAs are fired and which data is in any given MDA at any point. Therefore, debuggers should not build any functionality requiring specific MDA patterns. + + MDAs may be queued and fired shortly after the MDA is encountered. This could happen if the runtime needs to wait until it reaches a safe point for firing the MDA, instead of firing the MDA when it encounters it. It also means that the runtime may fire a number of MDAs in a single set of queued callbacks (similar to an "attach" event operation). + + A debugger should release the reference to an `ICorDebugMDA` instance immediately after returning from the `MDANotification` callback, to allow the CLR to recycle the memory consumed by an MDA. Releasing the instance may improve performance if many MDAs are firing. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [Diagnosing Errors with Managed Debugging Assistants](../../debug-trace-profile/diagnosing-errors-with-managed-debugging-assistants.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback3-customnotification-method.md b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback3-customnotification-method.md index 9f9164662ef41..fa65b004c9c7b 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback3-customnotification-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback3-customnotification-method.md @@ -2,66 +2,66 @@ description: "Learn more about: ICorDebugManagedCallback3::CustomNotification Method" title: "ICorDebugManagedCallback3::CustomNotification Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugManagedCallback3.CustomNotification Method" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugManagedCallback3::CustomNotification" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugManagedCallback3::CustomNotification method [.NET Framework debugging]" - "CustomNotification method [.NET Framework debugging]" ms.assetid: 5e5422ac-afa1-403d-a894-2d7348673e38 -topic_type: +topic_type: - "apiref" --- # ICorDebugManagedCallback3::CustomNotification Method -Indicates that a custom debugger notification has been raised. - -## Syntax - -```cpp -HRESULT CustomNotification(ICorDebugThread * pThread, - ICorDebugAppDomain * pAppDomain); -``` - -## Parameters - - `pThread` - [in] A pointer to the thread that raised the notification. - - `pAppDomain` - [in] A pointer to the application domain that contains the thread that raised the notification. - -## Return Value - - This method returns the following specific HRESULTs as well as HRESULT errors that indicate method failure. - -|HRESULT|Description| -|-------------|-----------------| -|S_OK|The method completed successfully.| - -## Exceptions - -## Remarks - - A subsequent call to the [ICorDebugThread4::GetCurrentCustomDebuggerNotification](icordebugthread4-getcurrentcustomdebuggernotification-method.md) method retrieves the thread object that was passed to the method. The thread object's type must have been previously enabled by calling the [ICorDebugProcess3::SetEnableCustomNotification](icordebugprocess3-setenablecustomnotification-method.md) method. The debugger can read type-specific parameters from the fields of the thread object, and can store responses into fields. - - The [ICorDebug](icordebug-interface.md) interface imposes no policy on the types of notifications or their contents, and the semantics of the notifications are strictly a contract between debuggers, applications, and the .NET Framework. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +Indicates that a custom debugger notification has been raised. + +## Syntax + +```cpp +HRESULT CustomNotification(ICorDebugThread * pThread, + ICorDebugAppDomain * pAppDomain); +``` + +## Parameters + + `pThread` + [in] A pointer to the thread that raised the notification. + + `pAppDomain` + [in] A pointer to the application domain that contains the thread that raised the notification. + +## Return Value + + This method returns the following specific HRESULTs as well as HRESULT errors that indicate method failure. + +|HRESULT|Description| +|-------------|-----------------| +|S_OK|The method completed successfully.| + +## Exceptions + +## Remarks + + A subsequent call to the [ICorDebugThread4::GetCurrentCustomDebuggerNotification](icordebugthread4-getcurrentcustomdebuggernotification-method.md) method retrieves the thread object that was passed to the method. The thread object's type must have been previously enabled by calling the [ICorDebugProcess3::SetEnableCustomNotification](icordebugprocess3-setenablecustomnotification-method.md) method. The debugger can read type-specific parameters from the fields of the thread object, and can store responses into fields. + + The [ICorDebug](icordebug-interface.md) interface imposes no policy on the types of notifications or their contents, and the semantics of the notifications are strictly a contract between debuggers, applications, and the .NET Framework. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [ICorDebugManagedCallback3 Interface](icordebugmanagedcallback3-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback3-interface.md b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback3-interface.md index 7de525235f364..3db0155b2756b 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback3-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmanagedcallback3-interface.md @@ -2,47 +2,47 @@ description: "Learn more about: ICorDebugManagedCallback3 Interface" title: "ICorDebugManagedCallback3 Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugManagedCallback3" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugManagedCallback3" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugManagedCallback3 interface [.NET Framework debugging]" ms.assetid: a95389d3-cf2e-47a4-9805-61426acc6b65 -topic_type: +topic_type: - "apiref" --- # ICorDebugManagedCallback3 Interface -Provides a callback method that indicates that an enabled custom debugger notification has been raised. - -## Methods - -|Method|Description| -|------------|-----------------| -|[CustomNotification Method](icordebugmanagedcallback3-customnotification-method.md)|Indicates that an enabled custom debugger notification has been raised.| - -## Remarks - - This interface is a logical extension of the [ICorDebugManagedCallback](icordebugmanagedcallback-interface.md) and [ICorDebugManagedCallback2](icordebugmanagedcallback2-interface.md) interfaces. - +Provides a callback method that indicates that an enabled custom debugger notification has been raised. + +## Methods + +|Method|Description| +|------------|-----------------| +|[CustomNotification Method](icordebugmanagedcallback3-customnotification-method.md)|Indicates that an enabled custom debugger notification has been raised.| + +## Remarks + + This interface is a logical extension of the [ICorDebugManagedCallback](icordebugmanagedcallback-interface.md) and [ICorDebugManagedCallback2](icordebugmanagedcallback2-interface.md) interfaces. + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [ICorDebugManagedCallback Interface](icordebugmanagedcallback-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmda-getdescription-method.md b/docs/framework/unmanaged-api/debugging/icordebugmda-getdescription-method.md index 240a6caf1e467..cc373b8b8dd1b 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmda-getdescription-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmda-getdescription-method.md @@ -2,61 +2,61 @@ description: "Learn more about: ICorDebugMDA::GetDescription Method" title: "ICorDebugMDA::GetDescription Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugMDA.GetDescription" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugMDA::GetDescription" -helpviewer_keywords: +helpviewer_keywords: - "GetDescription method [.NET Framework debugging]" - "ICorDebugMDA::GetDescription method [.NET Framework debugging]" ms.assetid: 01d1b481-ca67-4712-8744-d342ec0df639 -topic_type: +topic_type: - "apiref" --- # ICorDebugMDA::GetDescription Method -Gets a string containing the description of the managed debugging assistant (MDA) represented by [ICorDebugMDA](icordebugmda-interface.md). - -## Syntax - -```cpp -HRESULT GetDescription ( - [in] ULONG32 cchName, - [out] ULONG32 *pcchName, - [out, size_is(cchName), length_is(*pcchName)] - WCHAR szName[] -); -``` - -## Parameters - - `cchName` - [in] The size of the string buffer that will store the description. - - `pcchName` - [out] A pointer to the number of bytes returned in the string buffer. - - `szName` - [out] A string buffer containing the description of the MDA. - -## Remarks - - The string can be zero in length. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +Gets a string containing the description of the managed debugging assistant (MDA) represented by [ICorDebugMDA](icordebugmda-interface.md). + +## Syntax + +```cpp +HRESULT GetDescription ( + [in] ULONG32 cchName, + [out] ULONG32 *pcchName, + [out, size_is(cchName), length_is(*pcchName)] + WCHAR szName[] +); +``` + +## Parameters + + `cchName` + [in] The size of the string buffer that will store the description. + + `pcchName` + [out] A pointer to the number of bytes returned in the string buffer. + + `szName` + [out] A string buffer containing the description of the MDA. + +## Remarks + + The string can be zero in length. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [ICorDebugMDA Interface](icordebugmda-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmda-getname-method.md b/docs/framework/unmanaged-api/debugging/icordebugmda-getname-method.md index ddcbd666f19ab..55983846a68a3 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmda-getname-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmda-getname-method.md @@ -2,61 +2,61 @@ description: "Learn more about: ICorDebugMDA::GetName Method" title: "ICorDebugMDA::GetName Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugMDA.GetName" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugMDA::GetName" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugMDA::GetName method [.NET Framework debugging]" - "GetName method, ICorDebugMDA interface [.NET Framework debugging]" ms.assetid: 885bf5e8-00b7-4cd7-9d8d-e720d47918c4 -topic_type: +topic_type: - "apiref" --- # ICorDebugMDA::GetName Method -Gets a string containing the name of the managed debugging assistant (MDA) represented by [ICorDebugMDA](icordebugmda-interface.md). - -## Syntax - -```cpp -HRESULT GetName ( - [in] ULONG32 cchName, - [out] ULONG32 *pcchName, - [out, size_is(cchName), length_is(*pcchName)] - WCHAR szName[] -); -``` - -## Parameters - - `cchName` - [in] The size of the `szName` array. - - `pcchName` - [out] A pointer to the length of the name. - - `szName` - [out] An array in which to store the name. - -## Remarks - - MDA names are unique values. The `GetName` method is a convenient performance alternative to getting the XML stream and extracting the name from the stream based on the schema. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +Gets a string containing the name of the managed debugging assistant (MDA) represented by [ICorDebugMDA](icordebugmda-interface.md). + +## Syntax + +```cpp +HRESULT GetName ( + [in] ULONG32 cchName, + [out] ULONG32 *pcchName, + [out, size_is(cchName), length_is(*pcchName)] + WCHAR szName[] +); +``` + +## Parameters + + `cchName` + [in] The size of the `szName` array. + + `pcchName` + [out] A pointer to the length of the name. + + `szName` + [out] An array in which to store the name. + +## Remarks + + MDA names are unique values. The `GetName` method is a convenient performance alternative to getting the XML stream and extracting the name from the stream based on the schema. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [ICorDebugMDA Interface](icordebugmda-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmda-getosthreadid-method.md b/docs/framework/unmanaged-api/debugging/icordebugmda-getosthreadid-method.md index 731c0390505fa..3827025fe2241 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmda-getosthreadid-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmda-getosthreadid-method.md @@ -2,52 +2,52 @@ description: "Learn more about: ICorDebugMDA::GetOSThreadId Method" title: "ICorDebugMDA::GetOSThreadId Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugMDA.GetOSThreadId" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugMDA::GetOSThreadId" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugMDA::GetOSThreadId method [.NET Framework debugging]" - "GetOSThreadId method [.NET Framework debugging]" ms.assetid: 7ca7c364-ade4-4219-b434-9f6ae2359be6 -topic_type: +topic_type: - "apiref" --- # ICorDebugMDA::GetOSThreadId Method -Gets the operating system (OS) thread identifier upon which the managed debugging assistant (MDA) represented by [ICorDebugMDA](icordebugmda-interface.md) is executing. - -## Syntax - -```cpp -HRESULT GetOSThreadId ( - [out] DWORD *pOsTid -); -``` - -## Parameters - - `pOsTid` - [out] A pointer to the OS thread identifier. - -## Remarks - - The OS thread is used instead of an ICorDebugThread to allow for situations in which an MDA is fired either on a native thread or on a managed thread that has not yet entered managed code. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +Gets the operating system (OS) thread identifier upon which the managed debugging assistant (MDA) represented by [ICorDebugMDA](icordebugmda-interface.md) is executing. + +## Syntax + +```cpp +HRESULT GetOSThreadId ( + [out] DWORD *pOsTid +); +``` + +## Parameters + + `pOsTid` + [out] A pointer to the OS thread identifier. + +## Remarks + + The OS thread is used instead of an ICorDebugThread to allow for situations in which an MDA is fired either on a native thread or on a managed thread that has not yet entered managed code. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [ICorDebugMDA Interface](icordebugmda-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmda-getxml-method.md b/docs/framework/unmanaged-api/debugging/icordebugmda-getxml-method.md index 2f61487890a53..7098826375bb1 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmda-getxml-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmda-getxml-method.md @@ -2,61 +2,61 @@ description: "Learn more about: ICorDebugMDA::GetXML Method" title: "ICorDebugMDA::GetXML Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugMDA.GetXML" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugMDA::GetXML" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugMDA::GetXML method [.NET Framework debugging]" - "GetXML method [.NET Framework debugging]" ms.assetid: 29746b24-3766-4255-8813-0426c45e73e5 -topic_type: +topic_type: - "apiref" --- # ICorDebugMDA::GetXML Method -Gets the full XML stream associated with the managed debugging assistant (MDA) represented by [ICorDebugMDA](icordebugmda-interface.md). - -## Syntax - -```cpp -HRESULT GetXML ( - [in] ULONG32 cchName, - [out] ULONG32 *pcchName, - [out, size_is(cchName), length_is(*pcchName)] - WCHAR szName[] -); -``` - -## Parameters - - `cchName` - [in] The size of the `szName` array. - - `pcchName` - [out] A pointer to the length of the XML stream. - - `szName` - [out] An array in which to store the XML stream. The array may be empty. - -## Remarks - - The `GetXML` method can potentially affect performance, depending on the size of the associated XML stream. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +Gets the full XML stream associated with the managed debugging assistant (MDA) represented by [ICorDebugMDA](icordebugmda-interface.md). + +## Syntax + +```cpp +HRESULT GetXML ( + [in] ULONG32 cchName, + [out] ULONG32 *pcchName, + [out, size_is(cchName), length_is(*pcchName)] + WCHAR szName[] +); +``` + +## Parameters + + `cchName` + [in] The size of the `szName` array. + + `pcchName` + [out] A pointer to the length of the XML stream. + + `szName` + [out] An array in which to store the XML stream. The array may be empty. + +## Remarks + + The `GetXML` method can potentially affect performance, depending on the size of the associated XML stream. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [ICorDebugMDA Interface](icordebugmda-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmda-interface.md b/docs/framework/unmanaged-api/debugging/icordebugmda-interface.md index efd9d2a630c2d..4f6ff45fc90b1 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmda-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmda-interface.md @@ -2,49 +2,49 @@ description: "Learn more about: ICorDebugMDA Interface" title: "ICorDebugMDA Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugMDA" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugMDA" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugMDA interface [.NET Framework debugging]" ms.assetid: 8ecbb854-295c-4dd4-b9fc-01ebeac46e06 -topic_type: +topic_type: - "apiref" --- # ICorDebugMDA Interface -Represents a managed debugging assistant (MDA) message. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetDescription Method](icordebugmda-getdescription-method.md)|Gets a string containing a description of this MDA.| -|[GetFlags Method](icordebugmda-getflags-method.md)|Gets the flags associated with this MDA.| -|[GetName Method](icordebugmda-getname-method.md)|Gets a string containing the name of this MDA.| -|[GetOSThreadId Method](icordebugmda-getosthreadid-method.md)|Gets the operating system thread identifier upon which this MDA is executing.| -|[GetXML Method](icordebugmda-getxml-method.md)|Gets the full XML stream associated with this MDA.| - -## Remarks - +Represents a managed debugging assistant (MDA) message. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetDescription Method](icordebugmda-getdescription-method.md)|Gets a string containing a description of this MDA.| +|[GetFlags Method](icordebugmda-getflags-method.md)|Gets the flags associated with this MDA.| +|[GetName Method](icordebugmda-getname-method.md)|Gets a string containing the name of this MDA.| +|[GetOSThreadId Method](icordebugmda-getosthreadid-method.md)|Gets the operating system thread identifier upon which this MDA is executing.| +|[GetXML Method](icordebugmda-getxml-method.md)|Gets the full XML stream associated with this MDA.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmemorybuffer-getsize-method.md b/docs/framework/unmanaged-api/debugging/icordebugmemorybuffer-getsize-method.md index 70e1800a6a9c4..17ab19df6ecfd 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmemorybuffer-getsize-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmemorybuffer-getsize-method.md @@ -6,36 +6,36 @@ ms.assetid: 9ffd5482-268e-4680-9fd1-bfb0b7d66450 --- # ICorDebugMemoryBuffer::GetSize Method -Gets the size of the memory buffer in bytes. - -## Syntax - -```cpp -HRESULT GetSize( - [out] ULONG32 *pcbBufferLength -); -``` - -## Parameters - - `pcbBufferLength` - [out] A pointer to the size of the memory buffer. - -## Remarks - +Gets the size of the memory buffer in bytes. + +## Syntax + +```cpp +HRESULT GetSize( + [out] ULONG32 *pcbBufferLength +); +``` + +## Parameters + + `pcbBufferLength` + [out] A pointer to the size of the memory buffer. + +## Remarks + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugMemoryBuffer Interface](icordebugmemorybuffer-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmemorybuffer-getstartaddress-method.md b/docs/framework/unmanaged-api/debugging/icordebugmemorybuffer-getstartaddress-method.md index 964a38b7d4ec1..cf71854454896 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmemorybuffer-getstartaddress-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmemorybuffer-getstartaddress-method.md @@ -6,36 +6,36 @@ ms.assetid: f804d9ab-8c88-44f0-b278-5fcca7f87726 --- # ICorDebugMemoryBuffer::GetStartAddress Method -Gets the starting address of the memory buffer. - -## Syntax - -```cpp -HRESULT GetStartAddress( - [out] LPCVOID *address -); -``` - -## Parameters - - `address` - [out] A pointer to the starting address of the memory buffer. - -## Remarks - +Gets the starting address of the memory buffer. + +## Syntax + +```cpp +HRESULT GetStartAddress( + [out] LPCVOID *address +); +``` + +## Parameters + + `address` + [out] A pointer to the starting address of the memory buffer. + +## Remarks + > [!WARNING] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugMemoryBuffer Interface](icordebugmemorybuffer-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmemorybuffer-interface.md b/docs/framework/unmanaged-api/debugging/icordebugmemorybuffer-interface.md index 3d013b3ac05ba..831b9358c8065 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmemorybuffer-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmemorybuffer-interface.md @@ -6,30 +6,30 @@ ms.assetid: 85dc2d65-3657-4b93-9f23-9feaa95d37ff --- # ICorDebugMemoryBuffer Interface -Represents an in-memory buffer. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetSize Method](icordebugmemorybuffer-getsize-method.md)|Gets the size of the memory buffer in bytes.| -|[GetStartAddress Method](icordebugmemorybuffer-getstartaddress-method.md)|Gets the starting address of the memory buffer.| - -## Remarks - +Represents an in-memory buffer. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetSize Method](icordebugmemorybuffer-getsize-method.md)|Gets the size of the memory buffer in bytes.| +|[GetStartAddress Method](icordebugmemorybuffer-getstartaddress-method.md)|Gets the starting address of the memory buffer.| + +## Remarks + > [!NOTE] -> This interface is available with .NET Native only. If you implement this interface for ICorDebug scenarios outside of .NET Native, the common language runtime will ignore this interface. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This interface is available with .NET Native only. If you implement this interface for ICorDebug scenarios outside of .NET Native, the common language runtime will ignore this interface. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmergedassemblyrecord-getculture-method.md b/docs/framework/unmanaged-api/debugging/icordebugmergedassemblyrecord-getculture-method.md index 3c2ce664a6c1b..6e5b89de2c6f8 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmergedassemblyrecord-getculture-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmergedassemblyrecord-getculture-method.md @@ -6,46 +6,46 @@ ms.assetid: 030b2f8c-8c21-40b7-855d-3afa78975a17 --- # ICorDebugMergedAssemblyRecord::GetCulture Method -Gets the culture name string of the assembly. - -## Syntax - -```cpp -HRESULT GetCulture( +Gets the culture name string of the assembly. + +## Syntax + +```cpp +HRESULT GetCulture( [in] ULONG32 cchCulture, [out] ULONG32 *pcchCulture, - [out, size_is(cchCulture), length_is(*pcchCulture)] WCHAR szCulture[] -); -``` - -## Parameters - - `cchCulture` - [in] The number of characters in the `szCulture` buffer. - - `pcchCulture` - [out] The number of characters actually written to the `szCulture` buffer. - - `szCulture` - [out] A character array that contains the culture name. - -## Remarks - - The culture name is a unique string that identifies a culture, such as "en-US" (for the English (United States) culture), or "neutral" (for a neutral culture). - + [out, size_is(cchCulture), length_is(*pcchCulture)] WCHAR szCulture[] +); +``` + +## Parameters + + `cchCulture` + [in] The number of characters in the `szCulture` buffer. + + `pcchCulture` + [out] The number of characters actually written to the `szCulture` buffer. + + `szCulture` + [out] A character array that contains the culture name. + +## Remarks + + The culture name is a unique string that identifies a culture, such as "en-US" (for the English (United States) culture), or "neutral" (for a neutral culture). + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugMergedAssemblyRecord Interface](icordebugmergedassemblyrecord-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmergedassemblyrecord-getindex-method.md b/docs/framework/unmanaged-api/debugging/icordebugmergedassemblyrecord-getindex-method.md index 42193157c1a18..ad200935c7067 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmergedassemblyrecord-getindex-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmergedassemblyrecord-getindex-method.md @@ -6,38 +6,38 @@ ms.assetid: 98701444-b9bc-4978-9548-89ac3394147d --- # ICorDebugMergedAssemblyRecord::GetIndex Method -Gets the assembly's prefix index. - -## Syntax - -```cpp -HRESULT GetIndex( - [out] ULONG32 *pIndex -); -``` - -## Parameters - - `pIndex` - [out] A pointer to the prefix index. - -## Remarks - - The prefix index is used to prevent name collisions in the merged metadata type names. - +Gets the assembly's prefix index. + +## Syntax + +```cpp +HRESULT GetIndex( + [out] ULONG32 *pIndex +); +``` + +## Parameters + + `pIndex` + [out] A pointer to the prefix index. + +## Remarks + + The prefix index is used to prevent name collisions in the merged metadata type names. + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugMergedAssemblyRecord Interface](icordebugmergedassemblyrecord-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmergedassemblyrecord-getpublickey-method.md b/docs/framework/unmanaged-api/debugging/icordebugmergedassemblyrecord-getpublickey-method.md index 759953a247ce9..dbe239f34837c 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmergedassemblyrecord-getpublickey-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmergedassemblyrecord-getpublickey-method.md @@ -6,43 +6,43 @@ ms.assetid: 6f4e78ba-082b-489d-8b58-4c35fbcc7a5b --- # ICorDebugMergedAssemblyRecord::GetPublicKey Method -Gets the assembly's public key. - -## Syntax - -```cpp -HRESULT GetPublicKey( +Gets the assembly's public key. + +## Syntax + +```cpp +HRESULT GetPublicKey( [in] ULONG32 cbPublicKey, [out] ULONG32 *pcbPublicKey, - [out, size_is(cbPublicKey), length_is(*pcbPublicKey)] BYTE pbPublicKey[]); -``` - -## Parameters - - `cbPublicKey` - [in] The maximum number of bytes in the `pbPublicKey` array. - - `pcbPublicKey` - [out] A pointer to the actual number of bytes written to the `pbPublicKey` array. - - `pbPublicKey` - [out] A pointer to a byte array that contains the assembly's public key. - -## Remarks - + [out, size_is(cbPublicKey), length_is(*pcbPublicKey)] BYTE pbPublicKey[]); +``` + +## Parameters + + `cbPublicKey` + [in] The maximum number of bytes in the `pbPublicKey` array. + + `pcbPublicKey` + [out] A pointer to the actual number of bytes written to the `pbPublicKey` array. + + `pbPublicKey` + [out] A pointer to a byte array that contains the assembly's public key. + +## Remarks + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugMergedAssemblyRecord Interface](icordebugmergedassemblyrecord-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmergedassemblyrecord-getpublickeytoken-method.md b/docs/framework/unmanaged-api/debugging/icordebugmergedassemblyrecord-getpublickeytoken-method.md index f5fbb26f1b741..e500b74b40c1d 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmergedassemblyrecord-getpublickeytoken-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmergedassemblyrecord-getpublickeytoken-method.md @@ -6,46 +6,46 @@ ms.assetid: 72020b72-9611-4bc3-b1e7-5a16b023bfa3 --- # ICorDebugMergedAssemblyRecord::GetPublicKeyToken Method -Gets the assembly's public key token. - -## Syntax - -```cpp -HRESULT GetPublicKeyToken( +Gets the assembly's public key token. + +## Syntax + +```cpp +HRESULT GetPublicKeyToken( [in] ULONG32 cbPublicKeyToken, [out] ULONG32 *pcbPublicKeyToken, - [out, size_is(cbPublicKeyToken), length_is(*pcbPublicKeyToken)] BYTE pbPublicKeyToken[] -); -``` - -## Parameters - - `cbPublicKeyToken` - [in] The maximum number of bytes in the `pbPublicKeyToken` array. - - `pcbPublicKeyToken` - [out] A pointer to the actual number of bytes written to the `pbPublicKeyToken` array. - - `pbPublicKeyToken` - [out] A pointer to a byte array that contains the assembly's public key token. - -## Remarks - - An assembly's public key token is the last eight bytes of a SHA1 hash of its public key. - + [out, size_is(cbPublicKeyToken), length_is(*pcbPublicKeyToken)] BYTE pbPublicKeyToken[] +); +``` + +## Parameters + + `cbPublicKeyToken` + [in] The maximum number of bytes in the `pbPublicKeyToken` array. + + `pcbPublicKeyToken` + [out] A pointer to the actual number of bytes written to the `pbPublicKeyToken` array. + + `pbPublicKeyToken` + [out] A pointer to a byte array that contains the assembly's public key token. + +## Remarks + + An assembly's public key token is the last eight bytes of a SHA1 hash of its public key. + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugMergedAssemblyRecord Interface](icordebugmergedassemblyrecord-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmergedassemblyrecord-getsimplename-method.md b/docs/framework/unmanaged-api/debugging/icordebugmergedassemblyrecord-getsimplename-method.md index 08aed656ab937..4ca7b2dc8ae65 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmergedassemblyrecord-getsimplename-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmergedassemblyrecord-getsimplename-method.md @@ -6,46 +6,46 @@ ms.assetid: bc3410f6-ebca-4bca-9b45-fc38c74fa9cb --- # ICorDebugMergedAssemblyRecord::GetSimpleName Method -Gets the simple name of the assembly. - -## Syntax - -```cpp -HRESULT GetSimpleName( +Gets the simple name of the assembly. + +## Syntax + +```cpp +HRESULT GetSimpleName( [in] ULONG32 cchName, [out] ULONG32 *pcchName, - [out, size_is(cchName), length_is(*pcchName)] WCHAR szName[] -); -``` - -## Parameters - - `cchName` - [in] The number of characters in the `szName` buffer. - - `pcchName` - [out] A pointer to the number of characters actually written to the `szName` buffer. - - `szName` - A pointer to a character array. - -## Remarks - - This method retrieves the simple name of an assembly (such as "System.Collections"), without a file extension, version, culture, or public key token. It corresponds to the property in managed code. - + [out, size_is(cchName), length_is(*pcchName)] WCHAR szName[] +); +``` + +## Parameters + + `cchName` + [in] The number of characters in the `szName` buffer. + + `pcchName` + [out] A pointer to the number of characters actually written to the `szName` buffer. + + `szName` + A pointer to a character array. + +## Remarks + + This method retrieves the simple name of an assembly (such as "System.Collections"), without a file extension, version, culture, or public key token. It corresponds to the property in managed code. + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugMergedAssemblyRecord Interface](icordebugmergedassemblyrecord-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmergedassemblyrecord-getversion-method.md b/docs/framework/unmanaged-api/debugging/icordebugmergedassemblyrecord-getversion-method.md index ee5f791e7b2b0..831c26681a0c9 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmergedassemblyrecord-getversion-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmergedassemblyrecord-getversion-method.md @@ -6,50 +6,50 @@ ms.assetid: c6858b06-ae26-4312-b325-ea6025016675 --- # ICorDebugMergedAssemblyRecord::GetVersion Method -Gets the assembly's version information. - -## Syntax - -```cpp -HRESULT GetVersion( +Gets the assembly's version information. + +## Syntax + +```cpp +HRESULT GetVersion( [out] USHORT *pMajor, [out] USHORT *pMinor, [out] USHORT *pBuild, - [out] USHORT *pRevision -); -``` - -## Parameters - - `pMajor` - [out] A pointer to the major version number. - - `pMinor` - [out] A pointer to the minor version number. - - `pBuild` - [out] A pointer to the build number. - - `pRevision` - [out] A pointer to the revision number. - -## Remarks - - For information on assembly version numbers, see the class topic. - + [out] USHORT *pRevision +); +``` + +## Parameters + + `pMajor` + [out] A pointer to the major version number. + + `pMinor` + [out] A pointer to the minor version number. + + `pBuild` + [out] A pointer to the build number. + + `pRevision` + [out] A pointer to the revision number. + +## Remarks + + For information on assembly version numbers, see the class topic. + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugMergedAssemblyRecord Interface](icordebugmergedassemblyrecord-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmergedassemblyrecord-interface.md b/docs/framework/unmanaged-api/debugging/icordebugmergedassemblyrecord-interface.md index 7b05980cfa814..4f648df8c2c23 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmergedassemblyrecord-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmergedassemblyrecord-interface.md @@ -6,34 +6,34 @@ ms.assetid: fe280b11-9479-4e34-a07c-0d1ea8088422 --- # ICorDebugMergedAssemblyRecord Interface -Provides information about a merged assembly. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetCulture Method](icordebugmergedassemblyrecord-getculture-method.md)|Gets the culture name string of the assembly.| -|[GetIndex Method](icordebugmergedassemblyrecord-getindex-method.md)|Gets the assembly's prefix index.| -|[GetPublicKey Method](icordebugmergedassemblyrecord-getpublickey-method.md)|Gets the assembly's public key.| -|[GetPublicKeyToken Method](icordebugmergedassemblyrecord-getpublickeytoken-method.md)|Gets the assembly's public key token.| -|[GetSimpleName Method](icordebugmergedassemblyrecord-getsimplename-method.md)|Gets the simple name of the assembly.| -|[GetVersion Method](icordebugmergedassemblyrecord-getversion-method.md)|Gets the assembly's version information.| - -## Remarks - +Provides information about a merged assembly. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetCulture Method](icordebugmergedassemblyrecord-getculture-method.md)|Gets the culture name string of the assembly.| +|[GetIndex Method](icordebugmergedassemblyrecord-getindex-method.md)|Gets the assembly's prefix index.| +|[GetPublicKey Method](icordebugmergedassemblyrecord-getpublickey-method.md)|Gets the assembly's public key.| +|[GetPublicKeyToken Method](icordebugmergedassemblyrecord-getpublickeytoken-method.md)|Gets the assembly's public key token.| +|[GetSimpleName Method](icordebugmergedassemblyrecord-getsimplename-method.md)|Gets the simple name of the assembly.| +|[GetVersion Method](icordebugmergedassemblyrecord-getversion-method.md)|Gets the assembly's version information.| + +## Remarks + > [!NOTE] -> This interface is available with .NET Native only. If you implement this interface for ICorDebug scenarios outside of .NET Native, the common language runtime will ignore this interface. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This interface is available with .NET Native only. If you implement this interface for ICorDebug scenarios outside of .NET Native, the common language runtime will ignore this interface. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmetadatalocator-getmetadata-method.md b/docs/framework/unmanaged-api/debugging/icordebugmetadatalocator-getmetadata-method.md index b09bee8d7ac35..50156265e8e36 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmetadatalocator-getmetadata-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmetadatalocator-getmetadata-method.md @@ -2,86 +2,86 @@ description: "Learn more about: ICorDebugMetaDataLocator::GetMetaData Method" title: "ICorDebugMetaDataLocator::GetMetaData Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugMetaDataLocator.GetMetaData" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugMetaDataLocator::GetMetaData" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugMetaDataLocator::GetMetaData method [.NET Framework debugging]" - "GetMetaData method, ICorDebugMetaDataLocator interface [.NET Framework debugging]" ms.assetid: f9b0ff22-54db-45eb-9cc3-508000a3141d -topic_type: +topic_type: - "apiref" --- # ICorDebugMetaDataLocator::GetMetaData Method -Asks the debugger to return the full path to a module whose metadata is needed to complete an operation the debugger requested. - -## Syntax - -```cpp -HRESULT GetMetaData( - [in] LPCWSTR wszImagePath, - [in] DWORD dwImageTimeStamp, - [in] DWORD dwImageSize, - [in] ULONG32 cchPathBuffer, - [out] ULONG32 * pcchPathBuffer, - [out, size_is(cchPathBuffer), length_is(*pcchPathBuffer)] - WCHAR wszPathBuffer[] - ); -``` - -## Parameters - - `wszImagePath` - [in] A null-terminated string that represents the full path to the file. If the full path is not available, the name and extension of the file (*filename*.*extension*). - - `dwImageTimeStamp` - [in] The time stamp from the image's PE file headers. This parameter can potentially be used for a symbol server ([SymSrv](/windows/desktop/debug/using-symsrv)) lookup. - - `dwImageSize` - [in] The image size from PE file headers. This parameter can potentially be used for a SymSrv lookup. - - `cchPathBuffer` - [in] The character count in `wszPathBuffer`. - - `pcchPathBuffer` - [out] The count of `WCHAR`s written to `wszPathBuffer`. - - If the method returns E_NOT_SUFFICIENT_BUFFER, contains the count of `WCHAR`s needed to store the path. - - `wszPathBuffer` - [out] Pointer to a buffer into which the debugger will copy the full path of the file that contains the requested metadata. - - The `ofReadOnly` flag from the [CorOpenFlags](../metadata/coropenflags-enumeration.md) enumeration is used to request read-only access to the metadata in this file. - -## Return Value - - This method returns the following specific HRESULTs as well as HRESULT errors that indicate method failure. All other failure HRESULTs indicate that the file is not retrievable. - -|HRESULT|Description| -|-------------|-----------------| -|S_OK|The method completed successfully. `wszPathBuffer` contains the full path to the file and is null-terminated.| -|E_NOT_SUFFICIENT_BUFFER|The current size of `wszPathBuffer` is not sufficient to hold the full path. In this case, `pcchPathBuffer` contains the needed count of `WCHAR`s, including the terminating null character, and `GetMetaData` is called a second time with the requested buffer size.| - -## Remarks - - If `wszImagePath` contains a full path for a module from a dump, it specifies the path from the computer where the dump was collected. The file may not exist at this location, or an incorrect file with the same name may be stored on the path. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +Asks the debugger to return the full path to a module whose metadata is needed to complete an operation the debugger requested. + +## Syntax + +```cpp +HRESULT GetMetaData( + [in] LPCWSTR wszImagePath, + [in] DWORD dwImageTimeStamp, + [in] DWORD dwImageSize, + [in] ULONG32 cchPathBuffer, + [out] ULONG32 * pcchPathBuffer, + [out, size_is(cchPathBuffer), length_is(*pcchPathBuffer)] + WCHAR wszPathBuffer[] + ); +``` + +## Parameters + + `wszImagePath` + [in] A null-terminated string that represents the full path to the file. If the full path is not available, the name and extension of the file (*filename*.*extension*). + + `dwImageTimeStamp` + [in] The time stamp from the image's PE file headers. This parameter can potentially be used for a symbol server ([SymSrv](/windows/desktop/debug/using-symsrv)) lookup. + + `dwImageSize` + [in] The image size from PE file headers. This parameter can potentially be used for a SymSrv lookup. + + `cchPathBuffer` + [in] The character count in `wszPathBuffer`. + + `pcchPathBuffer` + [out] The count of `WCHAR`s written to `wszPathBuffer`. + + If the method returns E_NOT_SUFFICIENT_BUFFER, contains the count of `WCHAR`s needed to store the path. + + `wszPathBuffer` + [out] Pointer to a buffer into which the debugger will copy the full path of the file that contains the requested metadata. + + The `ofReadOnly` flag from the [CorOpenFlags](../metadata/coropenflags-enumeration.md) enumeration is used to request read-only access to the metadata in this file. + +## Return Value + + This method returns the following specific HRESULTs as well as HRESULT errors that indicate method failure. All other failure HRESULTs indicate that the file is not retrievable. + +|HRESULT|Description| +|-------------|-----------------| +|S_OK|The method completed successfully. `wszPathBuffer` contains the full path to the file and is null-terminated.| +|E_NOT_SUFFICIENT_BUFFER|The current size of `wszPathBuffer` is not sufficient to hold the full path. In this case, `pcchPathBuffer` contains the needed count of `WCHAR`s, including the terminating null character, and `GetMetaData` is called a second time with the requested buffer size.| + +## Remarks + + If `wszImagePath` contains a full path for a module from a dump, it specifies the path from the computer where the dump was collected. The file may not exist at this location, or an incorrect file with the same name may be stored on the path. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [ICorDebugThread4 Interface](icordebugthread4-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmetadatalocator-interface.md b/docs/framework/unmanaged-api/debugging/icordebugmetadatalocator-interface.md index 9def03a3185ec..21aa07716bd5c 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmetadatalocator-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmetadatalocator-interface.md @@ -2,45 +2,45 @@ description: "Learn more about: ICorDebugMetaDataLocator Interface" title: "ICorDebugMetaDataLocator Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugMetaDataLocator" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugMetaDataLocator" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugMetaDataLocator interface [.NET Framework debugging]" ms.assetid: 287f5ecd-863f-4090-a615-077859f0257b -topic_type: +topic_type: - "apiref" --- # ICorDebugMetaDataLocator Interface -Provides metadata information to the debugger. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetMetaData Method](icordebugmetadatalocator-getmetadata-method.md)|Asks the debugger to return the full path to a module whose metadata is needed to complete an operation the debugger requested.| - -## Remarks - +Provides metadata information to the debugger. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetMetaData Method](icordebugmetadatalocator-getmetadata-method.md)|Asks the debugger to return the full path to a module whose metadata is needed to complete an operation the debugger requested.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmodule-enableclassloadcallbacks-method.md b/docs/framework/unmanaged-api/debugging/icordebugmodule-enableclassloadcallbacks-method.md index 5f8393d5f5a18..3842b5e8dec39 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmodule-enableclassloadcallbacks-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmodule-enableclassloadcallbacks-method.md @@ -2,52 +2,52 @@ description: "Learn more about: ICorDebugModule::EnableClassLoadCallbacks Method" title: "ICorDebugModule::EnableClassLoadCallbacks Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugModule.EnableClassLoadCallbacks" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugModule::EnableClassLoadCallbacks" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugModule::EnableClassLoadCallbacks method [.NET Framework debugging]" - "EnableClassLoadCallbacks method [.NET Framework debugging]" ms.assetid: 78dad5e4-8e2e-400f-bec3-92ff0205cd82 -topic_type: +topic_type: - "apiref" --- # ICorDebugModule::EnableClassLoadCallbacks Method -Controls whether the [ICorDebugManagedCallback::LoadClass](icordebugmanagedcallback-loadclass-method.md) and [ICorDebugManagedCallback::UnloadClass](icordebugmanagedcallback-unloadclass-method.md) callbacks are called for this module. - -## Syntax - -```cpp -HRESULT EnableClassLoadCallbacks( - [in] BOOL bClassLoadCallbacks -); -``` - -## Parameters - - `bClassLoadCallbacks` - [in] Set this value to `true` to enable the common language runtime (CLR) to call the `ICorDebugManagedCallback::LoadClass` and `ICorDebugManagedCallback::UnloadClass` methods when their associated events occur. - - The default value is `false` for non-dynamic modules. The value is always `true` for dynamic modules and cannot be changed. - -## Remarks - - The `ICorDebugManagedCallback::LoadClass` and `ICorDebugManagedCallback::UnloadClass` callbacks are always enabled for dynamic modules and cannot be disabled. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +Controls whether the [ICorDebugManagedCallback::LoadClass](icordebugmanagedcallback-loadclass-method.md) and [ICorDebugManagedCallback::UnloadClass](icordebugmanagedcallback-unloadclass-method.md) callbacks are called for this module. + +## Syntax + +```cpp +HRESULT EnableClassLoadCallbacks( + [in] BOOL bClassLoadCallbacks +); +``` + +## Parameters + + `bClassLoadCallbacks` + [in] Set this value to `true` to enable the common language runtime (CLR) to call the `ICorDebugManagedCallback::LoadClass` and `ICorDebugManagedCallback::UnloadClass` methods when their associated events occur. + + The default value is `false` for non-dynamic modules. The value is always `true` for dynamic modules and cannot be changed. + +## Remarks + + The `ICorDebugManagedCallback::LoadClass` and `ICorDebugManagedCallback::UnloadClass` callbacks are always enabled for dynamic modules and cannot be disabled. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also diff --git a/docs/framework/unmanaged-api/debugging/icordebugmodule-getbaseaddress-method.md b/docs/framework/unmanaged-api/debugging/icordebugmodule-getbaseaddress-method.md index f0d3ce53066a3..5e1d790bbf192 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmodule-getbaseaddress-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmodule-getbaseaddress-method.md @@ -2,50 +2,50 @@ description: "Learn more about: ICorDebugModule::GetBaseAddress Method" title: "ICorDebugModule::GetBaseAddress Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugModule.GetBaseAddress" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugModule::GetBaseAddress" -helpviewer_keywords: +helpviewer_keywords: - "GetBaseAddress method [.NET Framework debugging]" - "ICorDebugModule::GetBaseAddress method [.NET Framework debugging]" ms.assetid: 26a82815-1982-4eb7-92d1-5c3d318d5be4 -topic_type: +topic_type: - "apiref" --- # ICorDebugModule::GetBaseAddress Method -Gets the base address of the module. - -## Syntax - -```cpp -HRESULT GetBaseAddress( - [out] CORDB_ADDRESS *pAddress -); -``` - -## Parameters - - `pAddress` - [out] A `CORDB_ADDRESS` that specifies the base address of the module. - -## Remarks - - If the module is a native image (that is, if the module was produced by the native image generator, NGen.exe), its base address will be zero. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Gets the base address of the module. + +## Syntax + +```cpp +HRESULT GetBaseAddress( + [out] CORDB_ADDRESS *pAddress +); +``` + +## Parameters + + `pAddress` + [out] A `CORDB_ADDRESS` that specifies the base address of the module. + +## Remarks + + If the module is a native image (that is, if the module was produced by the native image generator, NGen.exe), its base address will be zero. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also diff --git a/docs/framework/unmanaged-api/debugging/icordebugmodule-getmetadatainterface-method.md b/docs/framework/unmanaged-api/debugging/icordebugmodule-getmetadatainterface-method.md index 6eb47eddd43e7..e148630859c01 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmodule-getmetadatainterface-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmodule-getmetadatainterface-method.md @@ -2,56 +2,56 @@ description: "Learn more about: ICorDebugModule::GetMetaDataInterface Method" title: "ICorDebugModule::GetMetaDataInterface Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugModule.GetMetaDataInterface" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugModule::GetMetaDataInterface" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugModule::GetMetaDatainterface method [.NET Framework debugging]" - "GetMetaDatainterface method [.NET Framework debugging]" ms.assetid: 30d906f2-cf35-4fa9-9d4c-0c31b58c9f3a -topic_type: +topic_type: - "apiref" --- # ICorDebugModule::GetMetaDataInterface Method -Gets a metadata interface object that can be used to examine the metadata for the module. - -## Syntax - -```cpp -HRESULT GetMetaDataInterface ( - [in] REFIID riid, - [out] IUnknown **ppObj -); -``` - -## Parameters - - `riid` - [in] The reference ID that specifies the metadata interface. - - `ppObj` - [out] A pointer to the address of an `T:IUnknown` object that is one of the [metadata interfaces](../metadata/metadata-interfaces.md). - -## Remarks - - The debugger can use the `GetMetaDataInterface` method to make a copy of the original metadata for a module, which it must do in order to edit that module. The debugger calls `GetMetaDataInterface` to get an [IMetaDataEmit](../metadata/imetadataemit-interface.md) interface object for the module, then calls [IMetaDataEmit::SaveToMemory](../metadata/imetadataemit-savetomemory-method.md) to save a copy of the module's metadata to memory. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Gets a metadata interface object that can be used to examine the metadata for the module. + +## Syntax + +```cpp +HRESULT GetMetaDataInterface ( + [in] REFIID riid, + [out] IUnknown **ppObj +); +``` + +## Parameters + + `riid` + [in] The reference ID that specifies the metadata interface. + + `ppObj` + [out] A pointer to the address of an `T:IUnknown` object that is one of the [metadata interfaces](../metadata/metadata-interfaces.md). + +## Remarks + + The debugger can use the `GetMetaDataInterface` method to make a copy of the original metadata for a module, which it must do in order to edit that module. The debugger calls `GetMetaDataInterface` to get an [IMetaDataEmit](../metadata/imetadataemit-interface.md) interface object for the module, then calls [IMetaDataEmit::SaveToMemory](../metadata/imetadataemit-savetomemory-method.md) to save a copy of the module's metadata to memory. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Metadata](../metadata/index.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmodule-getname-method.md b/docs/framework/unmanaged-api/debugging/icordebugmodule-getname-method.md index 29241779d7052..8f14b3a688315 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmodule-getname-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmodule-getname-method.md @@ -2,58 +2,58 @@ description: "Learn more about: ICorDebugModule::GetName Method" title: "ICorDebugModule::GetName Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugModule.GetName" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugModule::GetName" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugModule::GetName method [.NET Framework debugging]" - "GetName method, ICorDebugModule interface [.NET Framework debugging]" ms.assetid: db499637-7ba9-421e-b8b1-35856995e80b -topic_type: +topic_type: - "apiref" --- # ICorDebugModule::GetName Method -Gets the file name of the module. - -## Syntax - +Gets the file name of the module. + +## Syntax + ```cpp -HRESULT GetName( - [in] ULONG32 cchName, - [out] ULONG32 *pcchName, - [out, size_is(cchName), length_is(*pcchName)] WCHAR szName[] -); -``` - -## Parameters - - `cchname` - [in] The size of the `szName` array. - - `pcchName` - [in] A pointer to the length of the returned name. - - `szName` - [out] An array that stores the returned name. - -## Remarks - - The `GetName` method returns an S_OK HRESULT if the module's file name matches the name on disk. `GetName` returns an S_FALSE HRESULT if the name is fabricated, such as for a dynamic or in-memory module. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +HRESULT GetName( + [in] ULONG32 cchName, + [out] ULONG32 *pcchName, + [out, size_is(cchName), length_is(*pcchName)] WCHAR szName[] +); +``` + +## Parameters + + `cchname` + [in] The size of the `szName` array. + + `pcchName` + [in] A pointer to the length of the returned name. + + `szName` + [out] An array that stores the returned name. + +## Remarks + + The `GetName` method returns an S_OK HRESULT if the module's file name matches the name on disk. `GetName` returns an S_FALSE HRESULT if the name is fabricated, such as for a dynamic or in-memory module. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also diff --git a/docs/framework/unmanaged-api/debugging/icordebugmodule-gettoken-method.md b/docs/framework/unmanaged-api/debugging/icordebugmodule-gettoken-method.md index 6688fd7e78ade..6688ff5750762 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmodule-gettoken-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmodule-gettoken-method.md @@ -2,52 +2,52 @@ description: "Learn more about: ICorDebugModule::GetToken Method" title: "ICorDebugModule::GetToken Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugModule.GetToken" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugModule::GetToken" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugModule::GetToken method [.NET Framework debugging]" - "GetToken method, ICorDebugModule interface [.NET Framework debugging]" ms.assetid: f759f87a-18ae-4c1a-8300-29b803432d0a -topic_type: +topic_type: - "apiref" --- # ICorDebugModule::GetToken Method -Gets the token for the table entry for this module. - -## Syntax - -```cpp -HRESULT GetToken( - [out] mdModule *pToken -); -``` - -## Parameters - - `pToken` - [out] A pointer to the `mdModule` token that references the module's metadata. - -## Remarks - - The token can be passed to the [IMetaDataImport](../metadata/imetadataimport-interface.md), [IMetaDataImport2](../metadata/imetadataimport2-interface.md), and [IMetaDataAssemblyImport](../metadata/imetadataassemblyimport-interface.md) metadata import interfaces. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Gets the token for the table entry for this module. + +## Syntax + +```cpp +HRESULT GetToken( + [out] mdModule *pToken +); +``` + +## Parameters + + `pToken` + [out] A pointer to the `mdModule` token that references the module's metadata. + +## Remarks + + The token can be passed to the [IMetaDataImport](../metadata/imetadataimport-interface.md), [IMetaDataImport2](../metadata/imetadataimport2-interface.md), and [IMetaDataAssemblyImport](../metadata/imetadataassemblyimport-interface.md) metadata import interfaces. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Metadata](../metadata/index.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmodule-interface.md b/docs/framework/unmanaged-api/debugging/icordebugmodule-interface.md index cf1add4769cf6..df072cd05d726 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmodule-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmodule-interface.md @@ -2,61 +2,61 @@ description: "Learn more about: ICorDebugModule Interface" title: "ICorDebugModule Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugModule" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugModule" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugModule interface [.NET Framework debugging]" ms.assetid: 32e4d6fa-e5a3-413e-9166-d5e2871d3114 -topic_type: +topic_type: - "apiref" --- # ICorDebugModule Interface -Represents a common language runtime (CLR) module, which is either an executable file or a dynamic-link library (DLL). - -## Methods - -|Method|Description| -|------------|-----------------| -|[CreateBreakpoint Method](icordebugmodule-createbreakpoint-method.md)|Not implemented.| -|[EnableClassLoadCallbacks Method](icordebugmodule-enableclassloadcallbacks-method.md)|Determines whether the [ICorDebugManagedCallback::LoadClass](icordebugmanagedcallback-loadclass-method.md) and [ICorDebugManagedCallback::UnloadClass](icordebugmanagedcallback-unloadclass-method.md) callbacks are called for this module.| -|[EnableJITDebugging Method](icordebugmodule-enablejitdebugging-method.md)|Determines whether the just-in-time (JIT) compiler preserves debugging information for methods within this module.| -|[GetAssembly Method](icordebugmodule-getassembly-method.md)|Gets the containing assembly for this module.| -|[GetBaseAddress Method](icordebugmodule-getbaseaddress-method.md)|Gets the base address of the module.| -|[GetClassFromToken Method](icordebugmodule-getclassfromtoken-method.md)|Gets the ICorDebugClass from the metadata.| -|[GetEditAndContinueSnapshot Method](icordebugmodule-geteditandcontinuesnapshot-method.md)|Deprecated.| -|[GetFunctionFromRVA Method](icordebugmodule-getfunctionfromrva-method.md)|Not implemented.| -|[GetFunctionFromToken Method](icordebugmodule-getfunctionfromtoken-method.md)|Gets the function that is specified by the metadata token.| -|[GetGlobalVariableValue Method](icordebugmodule-getglobalvariablevalue-method.md)|Gets a value object for the specified global variable.| -|[GetMetaDataInterface Method](icordebugmodule-getmetadatainterface-method.md)|Gets a metadata interface pointer that can be used to examine the metadata for the module.| -|[GetName Method](icordebugmodule-getname-method.md)|Gets the file name of the module.| -|[GetProcess Method](icordebugmodule-getprocess-method.md)|Gets the containing process for this module.| -|[GetSize Method](icordebugmodule-getsize-method.md)|Gets the size of the module in bytes.| -|[GetToken Method](icordebugmodule-gettoken-method.md)|Gets the token for the table entry for this module.| -|[IsDynamic Method](icordebugmodule-isdynamic-method.md)|Indicates whether the module is dynamic.| -|[IsInMemory Method](icordebugmodule-isinmemory-method.md)|Indicates whether this module exists only in memory.| - -## Remarks - +Represents a common language runtime (CLR) module, which is either an executable file or a dynamic-link library (DLL). + +## Methods + +|Method|Description| +|------------|-----------------| +|[CreateBreakpoint Method](icordebugmodule-createbreakpoint-method.md)|Not implemented.| +|[EnableClassLoadCallbacks Method](icordebugmodule-enableclassloadcallbacks-method.md)|Determines whether the [ICorDebugManagedCallback::LoadClass](icordebugmanagedcallback-loadclass-method.md) and [ICorDebugManagedCallback::UnloadClass](icordebugmanagedcallback-unloadclass-method.md) callbacks are called for this module.| +|[EnableJITDebugging Method](icordebugmodule-enablejitdebugging-method.md)|Determines whether the just-in-time (JIT) compiler preserves debugging information for methods within this module.| +|[GetAssembly Method](icordebugmodule-getassembly-method.md)|Gets the containing assembly for this module.| +|[GetBaseAddress Method](icordebugmodule-getbaseaddress-method.md)|Gets the base address of the module.| +|[GetClassFromToken Method](icordebugmodule-getclassfromtoken-method.md)|Gets the ICorDebugClass from the metadata.| +|[GetEditAndContinueSnapshot Method](icordebugmodule-geteditandcontinuesnapshot-method.md)|Deprecated.| +|[GetFunctionFromRVA Method](icordebugmodule-getfunctionfromrva-method.md)|Not implemented.| +|[GetFunctionFromToken Method](icordebugmodule-getfunctionfromtoken-method.md)|Gets the function that is specified by the metadata token.| +|[GetGlobalVariableValue Method](icordebugmodule-getglobalvariablevalue-method.md)|Gets a value object for the specified global variable.| +|[GetMetaDataInterface Method](icordebugmodule-getmetadatainterface-method.md)|Gets a metadata interface pointer that can be used to examine the metadata for the module.| +|[GetName Method](icordebugmodule-getname-method.md)|Gets the file name of the module.| +|[GetProcess Method](icordebugmodule-getprocess-method.md)|Gets the containing process for this module.| +|[GetSize Method](icordebugmodule-getsize-method.md)|Gets the size of the module in bytes.| +|[GetToken Method](icordebugmodule-gettoken-method.md)|Gets the token for the table entry for this module.| +|[IsDynamic Method](icordebugmodule-isdynamic-method.md)|Indicates whether the module is dynamic.| +|[IsInMemory Method](icordebugmodule-isinmemory-method.md)|Indicates whether this module exists only in memory.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [ICorDebug Interface](icordebug-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmodule-isdynamic-method.md b/docs/framework/unmanaged-api/debugging/icordebugmodule-isdynamic-method.md index 6dc8a08fca6eb..b5acdb597dfc9 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmodule-isdynamic-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmodule-isdynamic-method.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugModule::IsDynamic Method" title: "ICorDebugModule::IsDynamic Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugModule.IsDynamic" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugModule::IsDynamic" -helpviewer_keywords: +helpviewer_keywords: - "IsDynamic method [.NET Framework debugging]" - "ICorDebugModule::IsDynamic method [.NET Framework debugging]" ms.assetid: 5eefe716-5025-4a4c-970c-c823cdc7bb87 -topic_type: +topic_type: - "apiref" --- # ICorDebugModule::IsDynamic Method -Gets a value that indicates whether this module is dynamic. - -## Syntax - -```cpp -HRESULT IsDynamic( - [out] BOOL *pDynamic -); -``` - -## Parameters - - `pDynamic` - [out] `true` if this module is dynamic; otherwise, `false`. - -## Remarks - - A dynamic module can add new classes and delete existing classes even after the module has been loaded. The [ICorDebugManagedCallback::LoadClass](icordebugmanagedcallback-loadclass-method.md) and [ICorDebugManagedCallback::UnloadClass](icordebugmanagedcallback-unloadclass-method.md) callbacks inform the debugger when a class has been added or deleted. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets a value that indicates whether this module is dynamic. + +## Syntax + +```cpp +HRESULT IsDynamic( + [out] BOOL *pDynamic +); +``` + +## Parameters + + `pDynamic` + [out] `true` if this module is dynamic; otherwise, `false`. + +## Remarks + + A dynamic module can add new classes and delete existing classes even after the module has been loaded. The [ICorDebugManagedCallback::LoadClass](icordebugmanagedcallback-loadclass-method.md) and [ICorDebugManagedCallback::UnloadClass](icordebugmanagedcallback-unloadclass-method.md) callbacks inform the debugger when a class has been added or deleted. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugmodule-isinmemory-method.md b/docs/framework/unmanaged-api/debugging/icordebugmodule-isinmemory-method.md index 540df56fc854c..e95dc1559bba9 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmodule-isinmemory-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmodule-isinmemory-method.md @@ -2,50 +2,50 @@ description: "Learn more about: ICorDebugModule::IsInMemory Method" title: "ICorDebugModule::IsInMemory Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugModule.IsInMemory" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugModule::IsInMemory" -helpviewer_keywords: +helpviewer_keywords: - "IsInMemory method [.NET Framework debugging]" - "ICorDebugModule::IsInMemory method [.NET Framework debugging]" ms.assetid: 89940711-98e7-4aa6-bffc-5e39e91e1b7d -topic_type: +topic_type: - "apiref" --- # ICorDebugModule::IsInMemory Method -Gets a value that indicates whether this module exists only in memory. - -## Syntax - -```cpp -HRESULT IsInMemory( - [out] BOOL *pInMemory -); -``` - -## Parameters - - `pInMemory` - [out] `true` if this module exists only in memory; otherwise, `false`. - -## Remarks - - The common language runtime (CLR) supports the loading of modules from raw streams of bytes. Such modules are called *in-memory modules* and do not exist on disk. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Gets a value that indicates whether this module exists only in memory. + +## Syntax + +```cpp +HRESULT IsInMemory( + [out] BOOL *pInMemory +); +``` + +## Parameters + + `pInMemory` + [out] `true` if this module exists only in memory; otherwise, `false`. + +## Remarks + + The common language runtime (CLR) supports the loading of modules from raw streams of bytes. Such modules are called *in-memory modules* and do not exist on disk. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also diff --git a/docs/framework/unmanaged-api/debugging/icordebugmodule2-setjitcompilerflags-method.md b/docs/framework/unmanaged-api/debugging/icordebugmodule2-setjitcompilerflags-method.md index 41bb926453325..a28ede8ccd453 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmodule2-setjitcompilerflags-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmodule2-setjitcompilerflags-method.md @@ -2,52 +2,52 @@ description: "Learn more about: ICorDebugModule2::SetJITCompilerFlags Method" title: "ICorDebugModule2::SetJITCompilerFlags Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugModule2.SetJITCompilerFlags" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugModule2::SetJITCompilerFlags" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugModule2::SetJITCompilerFlags method [.NET Framework debugging]" - "SetJITCompilerFlags method [.NET Framework debugging]" ms.assetid: ea574c84-c622-4589-9a14-b55771af5e06 -topic_type: +topic_type: - "apiref" --- # ICorDebugModule2::SetJITCompilerFlags Method -Sets the flags that control the just-in-time (JIT) compilation of this ICorDebugModule2. - -## Syntax - -```cpp -HRESULT SetJITCompilerFlags ( - [in] DWORD dwFlags -); -``` - -## Parameters - - `dwFlags` - [in] A bitwise combination of the [CorDebugJITCompilerFlags](cordebugjitcompilerflags-enumeration.md) enumeration values. - -## Remarks - - If the `dwFlags` value is invalid, the `SetJITCompilerFlags` method will fail. - - The `SetJITCompilerFlags` method can be called only from within the [ICorDebugManagedCallback::LoadModule](icordebugmanagedcallback-loadmodule-method.md) callback for this module. Attempts to call it after the `ICorDebugManagedCallback::LoadModule` callback has been delivered will fail. - - Edit and Continue is not supported on 64-bit or Win9x platforms. Therefore, if you call the `SetJITCompilerFlags` method on either of these two platforms with the CORDEBUG_JIT_ENABLE_ENC flag set in `dwFlags`, the `SetJITCompilerFlags` method and all methods specific to Edit and Continue, such as [ICorDebugModule2::ApplyChanges](icordebugmodule2-applychanges-method.md), will fail. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Sets the flags that control the just-in-time (JIT) compilation of this ICorDebugModule2. + +## Syntax + +```cpp +HRESULT SetJITCompilerFlags ( + [in] DWORD dwFlags +); +``` + +## Parameters + + `dwFlags` + [in] A bitwise combination of the [CorDebugJITCompilerFlags](cordebugjitcompilerflags-enumeration.md) enumeration values. + +## Remarks + + If the `dwFlags` value is invalid, the `SetJITCompilerFlags` method will fail. + + The `SetJITCompilerFlags` method can be called only from within the [ICorDebugManagedCallback::LoadModule](icordebugmanagedcallback-loadmodule-method.md) callback for this module. Attempts to call it after the `ICorDebugManagedCallback::LoadModule` callback has been delivered will fail. + + Edit and Continue is not supported on 64-bit or Win9x platforms. Therefore, if you call the `SetJITCompilerFlags` method on either of these two platforms with the CORDEBUG_JIT_ENABLE_ENC flag set in `dwFlags`, the `SetJITCompilerFlags` method and all methods specific to Edit and Continue, such as [ICorDebugModule2::ApplyChanges](icordebugmodule2-applychanges-method.md), will fail. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugmodule2-setjmcstatus-method.md b/docs/framework/unmanaged-api/debugging/icordebugmodule2-setjmcstatus-method.md index 9c8258dc5959c..f0c84f328186a 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmodule2-setjmcstatus-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmodule2-setjmcstatus-method.md @@ -2,60 +2,60 @@ description: "Learn more about: ICorDebugModule2::SetJMCStatus Method" title: "ICorDebugModule2::SetJMCStatus Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugModule2.SetJMCStatus" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugModule2::SetJMCStatus" -helpviewer_keywords: +helpviewer_keywords: - "SetJMCStatus method, ICorDebugModule2 interface [.NET Framework debugging]" - "ICorDebugModule2::SetJMCStatus method [.NET Framework debugging]" ms.assetid: 8c6d2089-4dbb-4715-b9e9-2a4491c8c9ce -topic_type: +topic_type: - "apiref" --- # ICorDebugModule2::SetJMCStatus Method -Sets the Just My Code (JMC) status of all methods of all the classes in this ICorDebugModule2 to the specified value, except those in the `pTokens` array, which it sets to the opposite value. - -## Syntax - -```cpp -HRESULT SetJMCStatus ( - [in] BOOL bIsJustMyCode, - [in] ULONG32 cTokens, - [in, size_is(cTokens)] mdToken pTokens[] -); -``` - -## Parameters - - `bIsJustMycode` - [in] Set to `true` if the code is to be debugged; otherwise, set to `false`. - - `cTokens` - [in] The size of the `pTokens` array. - - `pTokens` - [in] An array of `mdToken` values, each of which refers to a method that will have its JMC status set to !`bIsJustMycode`. - -## Remarks - - The JMC status of each method that is specified in the `pTokens` array is set to the opposite of the `bIsJustMycode` value. The status of all other methods in this module is set to the `bIsJustMycode` value. - - The `SetJMCStatus` method erases all previous JMC settings in this module. - - The `SetJMCStatus` method returns an S_OK HRESULT if all functions were set successfully. It returns a CORDBG_E_FUNCTION_NOT_DEBUGGABLE HRESULT if some functions that are marked `true` are not debuggable. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Sets the Just My Code (JMC) status of all methods of all the classes in this ICorDebugModule2 to the specified value, except those in the `pTokens` array, which it sets to the opposite value. + +## Syntax + +```cpp +HRESULT SetJMCStatus ( + [in] BOOL bIsJustMyCode, + [in] ULONG32 cTokens, + [in, size_is(cTokens)] mdToken pTokens[] +); +``` + +## Parameters + + `bIsJustMycode` + [in] Set to `true` if the code is to be debugged; otherwise, set to `false`. + + `cTokens` + [in] The size of the `pTokens` array. + + `pTokens` + [in] An array of `mdToken` values, each of which refers to a method that will have its JMC status set to !`bIsJustMycode`. + +## Remarks + + The JMC status of each method that is specified in the `pTokens` array is set to the opposite of the `bIsJustMycode` value. The status of all other methods in this module is set to the `bIsJustMycode` value. + + The `SetJMCStatus` method erases all previous JMC settings in this module. + + The `SetJMCStatus` method returns an S_OK HRESULT if all functions were set successfully. It returns a CORDBG_E_FUNCTION_NOT_DEBUGGABLE HRESULT if some functions that are marked `true` are not debuggable. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugmodule3-createreaderforinmemorysymbols-method.md b/docs/framework/unmanaged-api/debugging/icordebugmodule3-createreaderforinmemorysymbols-method.md index 97a1b6f69465a..5935a1a95167e 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmodule3-createreaderforinmemorysymbols-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmodule3-createreaderforinmemorysymbols-method.md @@ -2,73 +2,73 @@ description: "Learn more about: ICorDebugModule3::CreateReaderForInMemorySymbols Method" title: "ICorDebugModule3::CreateReaderForInMemorySymbols Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugModule3.CreateReaderForInMemorySymbols" -api_location: +api_location: - "CorDebug.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugModule3::CreateReaderForInMemorySymbols" -helpviewer_keywords: +helpviewer_keywords: - "CreateReaderForInMemorySymbols method, ICorDebugModule3 interface [.NET Framework debugging]" - "ICorDebugModule3::CreateReaderForInMemorySymbols method [.NET Framework debugging]" ms.assetid: af317171-d66d-4114-89eb-063554c74940 -topic_type: +topic_type: - "apiref" --- # ICorDebugModule3::CreateReaderForInMemorySymbols Method -Creates a debug symbol reader for a dynamic module. - -## Syntax - -```cpp -HRESULT CreateReaderForInMemorySymbols ( - [in] REFIID riid, - [out][iid_is(riid)] void ** ppObj -``` - -## Parameters - - riid - [in] The IID of the COM interface to return. Typically, this is an [ISymUnmanagedReader Interface](../diagnostics/isymunmanagedreader-interface.md). - - ppObj - [out] Pointer to a pointer to the returned interface. - -## Return Value - - S_OK - Successfully created the reader. - - CORDBG_E_MODULE_LOADED_FROM_DISK - The module is not an in-memory or dynamic module. - - CORDBG_E_SYMBOLS_NOT_AVAILABLE - Symbols have not been supplied by the application or are not yet available. - - E_FAIL (or other E_ return codes) - Unable to create the reader. - -## Remarks - - This method can also be used to create a symbol reader object for in-memory (non-dynamic) modules, but only after the symbols are first available (indicated by the [UpdateModuleSymbols Method](icordebugmanagedcallback-updatemodulesymbols-method.md) callback). - - This method returns a new reader instance every time it is called (like [CComPtrBase::CoCreateInstance](/cpp/atl/reference/ccomptrbase-class#cocreateinstance)). Therefore, the debugger should cache the result and request a new instance only when the underlying data may have changed (that is, when a [LoadClass Method](icordebugmanagedcallback-loadclass-method.md) callback is received). - - Dynamic modules do not have any symbols available until the first type has been loaded (as indicated by the [LoadClass Method](icordebugmanagedcallback-loadclass-method.md) callback). - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** 4.5, 4, 3.5 SP1 - +Creates a debug symbol reader for a dynamic module. + +## Syntax + +```cpp +HRESULT CreateReaderForInMemorySymbols ( + [in] REFIID riid, + [out][iid_is(riid)] void ** ppObj +``` + +## Parameters + + riid + [in] The IID of the COM interface to return. Typically, this is an [ISymUnmanagedReader Interface](../diagnostics/isymunmanagedreader-interface.md). + + ppObj + [out] Pointer to a pointer to the returned interface. + +## Return Value + + S_OK + Successfully created the reader. + + CORDBG_E_MODULE_LOADED_FROM_DISK + The module is not an in-memory or dynamic module. + + CORDBG_E_SYMBOLS_NOT_AVAILABLE + Symbols have not been supplied by the application or are not yet available. + + E_FAIL (or other E_ return codes) + Unable to create the reader. + +## Remarks + + This method can also be used to create a symbol reader object for in-memory (non-dynamic) modules, but only after the symbols are first available (indicated by the [UpdateModuleSymbols Method](icordebugmanagedcallback-updatemodulesymbols-method.md) callback). + + This method returns a new reader instance every time it is called (like [CComPtrBase::CoCreateInstance](/cpp/atl/reference/ccomptrbase-class#cocreateinstance)). Therefore, the debugger should cache the result and request a new instance only when the underlying data may have changed (that is, when a [LoadClass Method](icordebugmanagedcallback-loadclass-method.md) callback is received). + + Dynamic modules do not have any symbols available until the first type has been loaded (as indicated by the [LoadClass Method](icordebugmanagedcallback-loadclass-method.md) callback). + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** 4.5, 4, 3.5 SP1 + ## See also - [ICorDebugRemoteTarget Interface](icordebugremotetarget-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmodule3-interface.md b/docs/framework/unmanaged-api/debugging/icordebugmodule3-interface.md index cef1178f2f6a2..ca39a149a358f 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmodule3-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmodule3-interface.md @@ -2,60 +2,60 @@ description: "Learn more about: ICorDebugModule3 Interface" title: "ICorDebugModule3 Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugModule3" -api_location: +api_location: - "CorDebug.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugModule3" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugModule3 interface [.NET Framework debugging]" ms.assetid: 0b69f945-263a-4e11-8512-89d27f6ea296 -topic_type: +topic_type: - "apiref" --- # ICorDebugModule3 Interface -Creates a symbol reader for a dynamic module. - -## Syntax - -```cpp -interface ICorDebugModule3 : IUnknown -{ - HRESULT CreateReaderForInMemorySymbols - ( - [in] REFIID riid, - [out][iid_is(riid)] void ** ppObj - ); -}; -``` - -## Methods - -|Method|Description| -|------------|-----------------| -|[ICorDebugModule3::CreateReaderForInMemorySymbols Method](icordebugmodule3-createreaderforinmemorysymbols-method.md)|Creates a symbol reader (typically [ISymUnmanagedReader Interface](../diagnostics/isymunmanagedreader-interface.md)) for a dynamic module.| - -## Remarks - - This interface logically extends the "ICorDebugModule" and "ICorDebugModule2" interfaces. - +Creates a symbol reader for a dynamic module. + +## Syntax + +```cpp +interface ICorDebugModule3 : IUnknown +{ + HRESULT CreateReaderForInMemorySymbols + ( + [in] REFIID riid, + [out][iid_is(riid)] void ** ppObj + ); +}; +``` + +## Methods + +|Method|Description| +|------------|-----------------| +|[ICorDebugModule3::CreateReaderForInMemorySymbols Method](icordebugmodule3-createreaderforinmemorysymbols-method.md)|Creates a symbol reader (typically [ISymUnmanagedReader Interface](../diagnostics/isymunmanagedreader-interface.md)) for a dynamic module.| + +## Remarks + + This interface logically extends the "ICorDebugModule" and "ICorDebugModule2" interfaces. + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** 4.5, 4, 3.5 SP1 - + ## See also - [ICorDebugRemoteTarget Interface](icordebugremotetarget-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmodule4-ismappedlayout-method.md b/docs/framework/unmanaged-api/debugging/icordebugmodule4-ismappedlayout-method.md index 71343bd8e3ce0..3a1618bd0d3d5 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmodule4-ismappedlayout-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmodule4-ismappedlayout-method.md @@ -2,61 +2,61 @@ description: "Learn more about: ICorDebugModule4::IsMappedLayout Method" title: "ICorDebugModule4::IsMappedLayout Method" ms.date: "06/06/2022" -api_name: +api_name: - "ICorDebugModule4.IsMappedLayout" -api_location: +api_location: - "CorDebug.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugModule4::IsMappedLayout" -helpviewer_keywords: +helpviewer_keywords: - "IsMappedLayout method, ICorDebugModule4 interface [.NET Framework debugging]" - "ICorDebugModule4::IsMappedLayout method [.NET Framework debugging]" ms.assetid: -topic_type: +topic_type: - "apiref" --- # ICorDebugModule4::IsMappedLayout Method Determines whether a module is loaded into memory in mapped/hydrated format. - -## Syntax - -```cpp + +## Syntax + +```cpp HRESULT IsMappedLayout( [out] BOOL *pIsMapped - ); -``` - -## Parameters - + ); +``` + +## Parameters + `pIsMapped`\ [out] Pointer to a BOOL to store mapping information. TRUE represents mapped format while FALSE represents flat format. - -## Return Value + +## Return Value `S_OK`\ - Successfully created the reader. - + Successfully created the reader. + `S_FALSE`\ The layout couldn't be determined. - -## Remarks + +## Remarks The `pIsMapped` value should only be interpreted as valid when this function returns `S_OK`. All other return values (including `S_FALSE`) indicate that the layout couldn't be determined and `pIsMapped` should be ignored. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** 4.5, 4, 3.5 SP1 - + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** 4.5, 4, 3.5 SP1 + ## See also - [ICorDebugRemoteTarget Interface](icordebugremotetarget-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmodulebreakpoint-interface.md b/docs/framework/unmanaged-api/debugging/icordebugmodulebreakpoint-interface.md index 3eca36ef4ad82..b375680312e9b 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmodulebreakpoint-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmodulebreakpoint-interface.md @@ -2,45 +2,45 @@ description: "Learn more about: ICorDebugModuleBreakpoint Interface" title: "ICorDebugModuleBreakpoint Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugModuleBreakpoint" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugModuleBreakpoint" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugModuleBreakpoint interface [.NET Framework debugging]" ms.assetid: 34667162-f314-475f-ae1b-ce9cb0fcbb83 -topic_type: +topic_type: - "apiref" --- # ICorDebugModuleBreakpoint Interface -Provides access to specific modules. This interface is a subclass of the ICorDebugBreakpoint interface. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetModule Method](icordebugmodulebreakpoint-getmodule-method.md)|Gets an interface pointer to an ICorDebugModule that references the module where this breakpoint is set.| - -## Remarks - +Provides access to specific modules. This interface is a subclass of the ICorDebugBreakpoint interface. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetModule Method](icordebugmodulebreakpoint-getmodule-method.md)|Gets an interface pointer to an ICorDebugModule that references the module where this breakpoint is set.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmoduledebugevent-getmodule-method.md b/docs/framework/unmanaged-api/debugging/icordebugmoduledebugevent-getmodule-method.md index 93d44e3e93b35..0e8d7a42e2067 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmoduledebugevent-getmodule-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmoduledebugevent-getmodule-method.md @@ -6,38 +6,38 @@ ms.assetid: b1141c35-4253-4e34-b3e4-ed406a9dea4f --- # ICorDebugModuleDebugEvent::GetModule Method -Gets the merged module that was just loaded or unloaded. - -## Syntax - -```cpp -HRESULT GetModule( - [out]ICorDebugModule **ppModule -); -``` - -## Parameters - - `ppModule` - [out] A pointer to the address of an ICorDebugModule object that represents the merged module that was just loaded or unloaded. - -## Remarks - - You can call the [GetEventKind](icordebugdebugevent-geteventkind-method.md) method to determine whether the module was loaded or unloaded. - +Gets the merged module that was just loaded or unloaded. + +## Syntax + +```cpp +HRESULT GetModule( + [out]ICorDebugModule **ppModule +); +``` + +## Parameters + + `ppModule` + [out] A pointer to the address of an ICorDebugModule object that represents the merged module that was just loaded or unloaded. + +## Remarks + + You can call the [GetEventKind](icordebugdebugevent-geteventkind-method.md) method to determine whether the module was loaded or unloaded. + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugModuleDebugEvent Interface](icordebugmoduledebugevent-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmoduledebugevent-interface.md b/docs/framework/unmanaged-api/debugging/icordebugmoduledebugevent-interface.md index f508efbeac48b..6175d8d8f87ca 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmoduledebugevent-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmoduledebugevent-interface.md @@ -6,31 +6,31 @@ ms.assetid: 41950c52-1ac8-4212-b814-c77e20879f91 --- # ICorDebugModuleDebugEvent Interface -Extends the [ICorDebugDebugEvent](icordebugdebugevent-interface.md) interface to support module-level events. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetModule Method](icordebugmoduledebugevent-getmodule-method.md)|Gets the merged module that was just loaded or unloaded.| - -## Remarks - - The [MODULE_LOADED](cordebugdebugeventkind-enumeration.md) and [MODULE_UNLOADED](cordebugdebugeventkind-enumeration.md) event types implement this interface. - +Extends the [ICorDebugDebugEvent](icordebugdebugevent-interface.md) interface to support module-level events. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetModule Method](icordebugmoduledebugevent-getmodule-method.md)|Gets the merged module that was just loaded or unloaded.| + +## Remarks + + The [MODULE_LOADED](cordebugdebugeventkind-enumeration.md) and [MODULE_UNLOADED](cordebugdebugeventkind-enumeration.md) event types implement this interface. + > [!NOTE] -> The interface is available with .NET Native only. Attempting to call `QueryInterface` to retrieve an interface pointer returns `E_NOINTERFACE` for ICorDebug scenarios outside of .NET Native. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> The interface is available with .NET Native only. Attempting to call `QueryInterface` to retrieve an interface pointer returns `E_NOINTERFACE` for ICorDebug scenarios outside of .NET Native. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmoduleenum-interface.md b/docs/framework/unmanaged-api/debugging/icordebugmoduleenum-interface.md index d6074e623dee3..664c37967d8ce 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmoduleenum-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmoduleenum-interface.md @@ -2,45 +2,45 @@ description: "Learn more about: ICorDebugModuleEnum Interface" title: "ICorDebugModuleEnum Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugModuleEnum" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugModuleEnum" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugModuleEnum interface [.NET Framework debugging]" ms.assetid: 2fb93cd6-6d47-4fdc-a9a0-047726fd03a1 -topic_type: +topic_type: - "apiref" --- # ICorDebugModuleEnum Interface -Implements ICorDebugEnum methods, and enumerates ICorDebugModule arrays. - -## Methods - -|Method|Description| -|------------|-----------------| -|[Next Method](icordebugmoduleenum-next-method.md)|Gets the specified number of `ICorDebugModule` instances from the enumeration, starting at the current position.| - -## Remarks - +Implements ICorDebugEnum methods, and enumerates ICorDebugModule arrays. + +## Methods + +|Method|Description| +|------------|-----------------| +|[Next Method](icordebugmoduleenum-next-method.md)|Gets the specified number of `ICorDebugModule` instances from the enumeration, starting at the current position.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmutabledatatarget-continuestatuschanged-method.md b/docs/framework/unmanaged-api/debugging/icordebugmutabledatatarget-continuestatuschanged-method.md index 20eee109f84b1..7eb30ff41e3aa 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmutabledatatarget-continuestatuschanged-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmutabledatatarget-continuestatuschanged-method.md @@ -6,38 +6,38 @@ ms.assetid: 5a66d3f4-dd16-4d62-9dcc-0eab7041d894 --- # ICorDebugMutableDataTarget::ContinueStatusChanged Method -Changes the continuation status for the outstanding debug event on the specified thread. - -## Syntax - -```cpp -HRESULT ContinueStatusChanged( - [in] DWORD dwThreadId, - [in] CORDB_CONTINUE_STATUS continueStatus); -``` - -## Parameters - - `dwThreadId` - The operating system-defined thread identifier. - - `continueStatus` - A [COREDB_CONTINUE_STATUS](../common-data-types-unmanaged-api-reference.md) value that represents the new requested continuation status. - -## Remarks - - The debugger calls the `ContinueStatusChanged` method when it calls an ICorDebug method that requires the current debug event to be handled in a way that is potentially different from the way in which it normally would be handled. For example, if there is an outstanding exception, and the debugger requests an operation that would cancel the exception (such as [ICorDebugILFrame::SetIP](icordebugilframe-setip-method.md) or `FuncEval`), this API is used to request that the exception be cancelled. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v46plus](../../../../includes/net-current-v46plus-md.md)] - +Changes the continuation status for the outstanding debug event on the specified thread. + +## Syntax + +```cpp +HRESULT ContinueStatusChanged( + [in] DWORD dwThreadId, + [in] CORDB_CONTINUE_STATUS continueStatus); +``` + +## Parameters + + `dwThreadId` + The operating system-defined thread identifier. + + `continueStatus` + A [COREDB_CONTINUE_STATUS](../common-data-types-unmanaged-api-reference.md) value that represents the new requested continuation status. + +## Remarks + + The debugger calls the `ContinueStatusChanged` method when it calls an ICorDebug method that requires the current debug event to be handled in a way that is potentially different from the way in which it normally would be handled. For example, if there is an outstanding exception, and the debugger requests an operation that would cancel the exception (such as [ICorDebugILFrame::SetIP](icordebugilframe-setip-method.md) or `FuncEval`), this API is used to request that the exception be cancelled. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v46plus](../../../../includes/net-current-v46plus-md.md)] + ## See also - [ICorDebugMutableDataTarget Interface](icordebugmutabledatatarget-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmutabledatatarget-interface.md b/docs/framework/unmanaged-api/debugging/icordebugmutabledatatarget-interface.md index d7ff47024ecc6..b4b8cdc14bebc 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmutabledatatarget-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmutabledatatarget-interface.md @@ -6,34 +6,34 @@ ms.assetid: 14aad5b3-84ab-4bbc-94e3-1eb92e258d10 --- # ICorDebugMutableDataTarget Interface -Extends the [ICorDebugDataTarget](icordebugdatatarget-interface.md) interface to support mutable data targets. - -## Methods - -|Method|Description| -|------------|-----------------| -|[ContinueStatusChanged Method](icordebugmutabledatatarget-continuestatuschanged-method.md)|Changes the continuation status for the outstanding debug event on the specified thread.| -|[SetThreadContext Method](icordebugmutabledatatarget-setthreadcontext-method.md)|Sets the context (register values) for a thread.| -|[WriteVirtual Method](icordebugmutabledatatarget-writevirtual-method.md)|Writes memory into the target process address space.| - -## Remarks - - This extension to the [ICorDebugDataTarget](icordebugdatatarget-interface.md) interface can be implemented by debugging tools that wish to modify the target process (for example, to perform live invasive debugging). - - All of these methods are optional in the sense that no core inspection-based debugging functionality is lost by not implementing this interface or by the failure of calls to these methods. Any failure `HRESULT` from these methods will propagate out as the `HRESULT` from the ICorDebug method call. - - Note that a single ICorDebug method call may result in multiple mutations, and that there is no mechanism for ensuring related mutations are applied transactionally (all-or-none). This means that if a mutation fails after others (for the same ICorDebug call) have succeeded, the target process may be left in an inconsistent state and debugging may become unreliable. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v46plus](../../../../includes/net-current-v46plus-md.md)] - +Extends the [ICorDebugDataTarget](icordebugdatatarget-interface.md) interface to support mutable data targets. + +## Methods + +|Method|Description| +|------------|-----------------| +|[ContinueStatusChanged Method](icordebugmutabledatatarget-continuestatuschanged-method.md)|Changes the continuation status for the outstanding debug event on the specified thread.| +|[SetThreadContext Method](icordebugmutabledatatarget-setthreadcontext-method.md)|Sets the context (register values) for a thread.| +|[WriteVirtual Method](icordebugmutabledatatarget-writevirtual-method.md)|Writes memory into the target process address space.| + +## Remarks + + This extension to the [ICorDebugDataTarget](icordebugdatatarget-interface.md) interface can be implemented by debugging tools that wish to modify the target process (for example, to perform live invasive debugging). + + All of these methods are optional in the sense that no core inspection-based debugging functionality is lost by not implementing this interface or by the failure of calls to these methods. Any failure `HRESULT` from these methods will propagate out as the `HRESULT` from the ICorDebug method call. + + Note that a single ICorDebug method call may result in multiple mutations, and that there is no mechanism for ensuring related mutations are applied transactionally (all-or-none). This means that if a mutation fails after others (for the same ICorDebug call) have succeeded, the target process may be left in an inconsistent state and debugging may become unreliable. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v46plus](../../../../includes/net-current-v46plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmutabledatatarget-setthreadcontext-method.md b/docs/framework/unmanaged-api/debugging/icordebugmutabledatatarget-setthreadcontext-method.md index 5c6a736870e18..53d5099cf599f 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmutabledatatarget-setthreadcontext-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmutabledatatarget-setthreadcontext-method.md @@ -6,41 +6,41 @@ ms.assetid: 8c0d01d5-67e5-4522-9ccf-c8f3a78cb4fd --- # ICorDebugMutableDataTarget::SetThreadContext Method -Sets the context (register values) for a thread. - -## Syntax - -```cpp -HRESULT SetThreadContext( - [in] DWORD dwThreadID, - [in] ULONG32 contextSize, [in, size_is(contextSize)] const BYTE * pContext); -``` - -## Parameters - - `dwThreadID` - [in] The operating system-defined thread identifier. - - `contextSize` - [in] The size of the `pContext` buffer to be written. - - `pContext` - [in] A pointer to the bytes to be written. - -## Remarks - - The `SetThreadContext` method updates the current context for the thread specified by the operating system-defined `dwThreadID` argument. The format of the context record is determined by the platform indicated by the [ICorDebugDataTarget::GetPlatform](icordebugdatatarget-getplatform-method.md) method. On Windows, this is a [CONTEXT](/windows/win32/api/winnt/ns-winnt-arm64_nt_context) structure. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v46plus](../../../../includes/net-current-v46plus-md.md)] - +Sets the context (register values) for a thread. + +## Syntax + +```cpp +HRESULT SetThreadContext( + [in] DWORD dwThreadID, + [in] ULONG32 contextSize, [in, size_is(contextSize)] const BYTE * pContext); +``` + +## Parameters + + `dwThreadID` + [in] The operating system-defined thread identifier. + + `contextSize` + [in] The size of the `pContext` buffer to be written. + + `pContext` + [in] A pointer to the bytes to be written. + +## Remarks + + The `SetThreadContext` method updates the current context for the thread specified by the operating system-defined `dwThreadID` argument. The format of the context record is determined by the platform indicated by the [ICorDebugDataTarget::GetPlatform](icordebugdatatarget-getplatform-method.md) method. On Windows, this is a [CONTEXT](/windows/win32/api/winnt/ns-winnt-arm64_nt_context) structure. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v46plus](../../../../includes/net-current-v46plus-md.md)] + ## See also - [ICorDebugMutableDataTarget Interface](icordebugmutabledatatarget-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugmutabledatatarget-writevirtual-method.md b/docs/framework/unmanaged-api/debugging/icordebugmutabledatatarget-writevirtual-method.md index 7694143a552b6..182ea7ed61918 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugmutabledatatarget-writevirtual-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugmutabledatatarget-writevirtual-method.md @@ -6,46 +6,46 @@ ms.assetid: 80833648-58a7-491a-8dc8-9a48e9bb3adc --- # ICorDebugMutableDataTarget::WriteVirtual Method -Writes memory into the target process address space. - -## Syntax - -```cpp -HRESULT WriteVirtual( - [in] CORDB_ADDRESS address, - [in, size_is(bytesRequested)] const BYTE * pBuffer, - [in] ULONG32 bytesRequested); -``` - -## Parameters - - `address` - [in] The address at which to write the contents of `pBuffer`. - - `pBuffer` - [in] A pointer to a byte array that contains the bytes to be written. - - `address` - [in] The number of bytes in `pBuffer`. - -## Return Value - - `S_OK` on success, or any other `HRESULT` on failure. - -## Remarks - - If any bytes cannot be written, the method call fails without changing any bytes in the target address space. (Otherwise, the target would be in an inconsistent state that makes further debugging unreliable.) - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v46plus](../../../../includes/net-current-v46plus-md.md)] - +Writes memory into the target process address space. + +## Syntax + +```cpp +HRESULT WriteVirtual( + [in] CORDB_ADDRESS address, + [in, size_is(bytesRequested)] const BYTE * pBuffer, + [in] ULONG32 bytesRequested); +``` + +## Parameters + + `address` + [in] The address at which to write the contents of `pBuffer`. + + `pBuffer` + [in] A pointer to a byte array that contains the bytes to be written. + + `address` + [in] The number of bytes in `pBuffer`. + +## Return Value + + `S_OK` on success, or any other `HRESULT` on failure. + +## Remarks + + If any bytes cannot be written, the method call fails without changing any bytes in the target address space. (Otherwise, the target would be in an inconsistent state that makes further debugging unreliable.) + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v46plus](../../../../includes/net-current-v46plus-md.md)] + ## See also - [ICorDebugMutableDataTarget Interface](icordebugmutabledatatarget-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugnativeframe-cansetip-method.md b/docs/framework/unmanaged-api/debugging/icordebugnativeframe-cansetip-method.md index eed64df46d96a..1a5e17bfd7bcd 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugnativeframe-cansetip-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugnativeframe-cansetip-method.md @@ -2,50 +2,50 @@ description: "Learn more about: ICorDebugNativeFrame::CanSetIP Method" title: "ICorDebugNativeFrame::CanSetIP Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugNativeFrame.CanSetIP" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugNativeFrame::CanSetIP" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugNativeFrame::CanSetIP method [.NET Framework debugging]" - "CanSetIP method, ICorDebugNativeFrame interface [.NET Framework debugging]" ms.assetid: 13258ac6-f4e4-4f66-8fc3-f1244417a3c3 -topic_type: +topic_type: - "apiref" --- # ICorDebugNativeFrame::CanSetIP Method -Gets an HRESULT that indicates whether it is safe to set the instruction pointer (IP) to the specified offset location in native code. - -## Syntax - -```cpp -HRESULT CanSetIP ( - [in] ULONG32 nOffset -); -``` - -## Parameters - - `nOffset` - [in] The desired setting for the instruction pointer. - -## Remarks - - Use the `CanSetIP` method prior to calling the [ICorDebugNativeFrame::SetIP](icordebugnativeframe-setip-method.md) method. If `CanSetIP` returns any HRESULT other than S_OK, you can still invoke `ICorDebugNativeFrame::SetIP`, but there is no guarantee that the debugger will continue the safe and correct execution of the code being debugged. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +Gets an HRESULT that indicates whether it is safe to set the instruction pointer (IP) to the specified offset location in native code. + +## Syntax + +```cpp +HRESULT CanSetIP ( + [in] ULONG32 nOffset +); +``` + +## Parameters + + `nOffset` + [in] The desired setting for the instruction pointer. + +## Remarks + + Use the `CanSetIP` method prior to calling the [ICorDebugNativeFrame::SetIP](icordebugnativeframe-setip-method.md) method. If `CanSetIP` returns any HRESULT other than S_OK, you can still invoke `ICorDebugNativeFrame::SetIP`, but there is no guarantee that the debugger will continue the safe and correct execution of the code being debugged. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also diff --git a/docs/framework/unmanaged-api/debugging/icordebugnativeframe-getip-method.md b/docs/framework/unmanaged-api/debugging/icordebugnativeframe-getip-method.md index 97cf7132c0c68..61d1d17475abc 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugnativeframe-getip-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugnativeframe-getip-method.md @@ -2,50 +2,50 @@ description: "Learn more about: ICorDebugNativeFrame::GetIP Method" title: "ICorDebugNativeFrame::GetIP Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugNativeFrame.GetIP" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugNativeFrame::GetIP" -helpviewer_keywords: +helpviewer_keywords: - "GetIP method, ICorDebugNativeFrame interface [.NET Framework debugging]" - "ICorDebugNativeFrame::GetIP method [.NET Framework debugging]" ms.assetid: 99f693f3-d3b9-4fd8-9d09-b8efd03f7b67 -topic_type: +topic_type: - "apiref" --- # ICorDebugNativeFrame::GetIP Method -Gets the native code offset location to which the instruction pointer is currently set. - -## Syntax - -```cpp -HRESULT GetIP ( - [out] ULONG32 *pnOffset -); -``` - -## Parameters - - `pnOffset` - [out] A pointer to the offset location in the native code. - -## Remarks - - If the stack frame that is represented by this "ICorDebugNativeFrame" is active, the offset is the address of the next instruction to be executed. If this stack frame is not active, the offset is the address of the next instruction to be executed when the stack frame is reactivated. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Gets the native code offset location to which the instruction pointer is currently set. + +## Syntax + +```cpp +HRESULT GetIP ( + [out] ULONG32 *pnOffset +); +``` + +## Parameters + + `pnOffset` + [out] A pointer to the offset location in the native code. + +## Remarks + + If the stack frame that is represented by this "ICorDebugNativeFrame" is active, the offset is the address of the next instruction to be executed. If this stack frame is not active, the offset is the address of the next instruction to be executed when the stack frame is reactivated. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also diff --git a/docs/framework/unmanaged-api/debugging/icordebugnativeframe-getlocaldoubleregistervalue-method.md b/docs/framework/unmanaged-api/debugging/icordebugnativeframe-getlocaldoubleregistervalue-method.md index 73ec2e46c161f..0336fce3e9f94 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugnativeframe-getlocaldoubleregistervalue-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugnativeframe-getlocaldoubleregistervalue-method.md @@ -2,66 +2,66 @@ description: "Learn more about: ICorDebugNativeFrame::GetLocalDoubleRegisterValue Method" title: "ICorDebugNativeFrame::GetLocalDoubleRegisterValue Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugNativeFrame.GetLocalDoubleRegisterValue" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugNativeFrame::GetLocalDoubleRegisterValue" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugNativeFrame::GetLocalDoubleRegisterValue method [.NET Framework debugging]" - "GetLocalDoubleRegisterValue method [.NET Framework debugging]" ms.assetid: 1f838215-ac8a-434f-8ce6-03021d3098d9 -topic_type: +topic_type: - "apiref" --- # ICorDebugNativeFrame::GetLocalDoubleRegisterValue Method -Gets the value of an argument or local variable that is stored in the two specified registers for this native frame. - -## Syntax - -```cpp -HRESULT GetLocalDoubleRegisterValue ( - [in] CorDebugRegister highWordReg, - [in] CorDebugRegister lowWordReg, - [in] ULONG cbSigBlob, - [in] PCCOR_SIGNATURE pvSigBlob, - [out] ICorDebugValue **ppValue -); -``` - -## Parameters - - `highWordReg` - [in] A value of the "CorDebugRegister" enumeration that specifies the register containing the high word of the value. - - `lowWordReg` - [in] A value of the `CorDebugRegister` enumeration that specifies the register containing the low word of the value. - - `cbSigBlob` - [in] An integer that specifies the size of the binary metadata signature which is referenced by the `pvSigBlob` parameter. - - `pvSigBlob` - [in] A `PCCOR_SIGNATURE` value that points to the binary metadata signature of the value's type. - - `ppValue` - [out] A pointer to the address of an "ICorDebugValue" object representing the retrieved value that is stored in the specified registers. - -## Remarks - - The `GetLocalDoubleRegisterValue` method can be used either in a native frame or a just-in-time (JIT)-compiled frame. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Gets the value of an argument or local variable that is stored in the two specified registers for this native frame. + +## Syntax + +```cpp +HRESULT GetLocalDoubleRegisterValue ( + [in] CorDebugRegister highWordReg, + [in] CorDebugRegister lowWordReg, + [in] ULONG cbSigBlob, + [in] PCCOR_SIGNATURE pvSigBlob, + [out] ICorDebugValue **ppValue +); +``` + +## Parameters + + `highWordReg` + [in] A value of the "CorDebugRegister" enumeration that specifies the register containing the high word of the value. + + `lowWordReg` + [in] A value of the `CorDebugRegister` enumeration that specifies the register containing the low word of the value. + + `cbSigBlob` + [in] An integer that specifies the size of the binary metadata signature which is referenced by the `pvSigBlob` parameter. + + `pvSigBlob` + [in] A `PCCOR_SIGNATURE` value that points to the binary metadata signature of the value's type. + + `ppValue` + [out] A pointer to the address of an "ICorDebugValue" object representing the retrieved value that is stored in the specified registers. + +## Remarks + + The `GetLocalDoubleRegisterValue` method can be used either in a native frame or a just-in-time (JIT)-compiled frame. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also diff --git a/docs/framework/unmanaged-api/debugging/icordebugnativeframe-getlocalregistervalue-method.md b/docs/framework/unmanaged-api/debugging/icordebugnativeframe-getlocalregistervalue-method.md index 0954112743456..e7ab012562def 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugnativeframe-getlocalregistervalue-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugnativeframe-getlocalregistervalue-method.md @@ -2,62 +2,62 @@ description: "Learn more about: ICorDebugNativeFrame::GetLocalRegisterValue Method" title: "ICorDebugNativeFrame::GetLocalRegisterValue Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugNativeFrame.GetLocalRegisterValue" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugNativeFrame::GetLocalRegisterValue" -helpviewer_keywords: +helpviewer_keywords: - "GetLocalRegisterValue method [.NET Framework debugging]" - "ICorDebugNativeFrame::GetLocalRegisterValue method [.NET Framework debugging]" ms.assetid: 5ccb74f3-f891-430c-b70a-e370624edde2 -topic_type: +topic_type: - "apiref" --- # ICorDebugNativeFrame::GetLocalRegisterValue Method -Gets the value of an argument or local variable that is stored in the specified register for this native frame. - -## Syntax - -```cpp -HRESULT GetLocalRegisterValue ( - [in] CorDebugRegister reg, - [in] ULONG cbSigBlob, - [in] PCCOR_SIGNATURE pvSigBlob, - [out] ICorDebugValue **ppValue -); -``` - -## Parameters - - `reg` - [in] A value of the "CorDebugRegister" enumeration that specifies the register containing the value. - - `cbSigBlob` - [in] An integer that specifies the size of the binary metadata signature which is referenced by the `pvSigBlob` parameter. - - `pvSigBlob` - [in] A `PCCOR_SIGNATURE` value that points to the binary metadata signature of the value's type. - - `ppValue` - [out] A pointer to the address of an "ICorDebugValue" object representing the retrieved value that is stored in the specified register. - -## Remarks - - The `GetLocalRegisterValue` method can be used either in a native frame or a just-in-time (JIT)-compiled frame. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Gets the value of an argument or local variable that is stored in the specified register for this native frame. + +## Syntax + +```cpp +HRESULT GetLocalRegisterValue ( + [in] CorDebugRegister reg, + [in] ULONG cbSigBlob, + [in] PCCOR_SIGNATURE pvSigBlob, + [out] ICorDebugValue **ppValue +); +``` + +## Parameters + + `reg` + [in] A value of the "CorDebugRegister" enumeration that specifies the register containing the value. + + `cbSigBlob` + [in] An integer that specifies the size of the binary metadata signature which is referenced by the `pvSigBlob` parameter. + + `pvSigBlob` + [in] A `PCCOR_SIGNATURE` value that points to the binary metadata signature of the value's type. + + `ppValue` + [out] A pointer to the address of an "ICorDebugValue" object representing the retrieved value that is stored in the specified register. + +## Remarks + + The `GetLocalRegisterValue` method can be used either in a native frame or a just-in-time (JIT)-compiled frame. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also diff --git a/docs/framework/unmanaged-api/debugging/icordebugnativeframe-interface.md b/docs/framework/unmanaged-api/debugging/icordebugnativeframe-interface.md index 819a417d35aeb..8cf5f8c88eb73 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugnativeframe-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugnativeframe-interface.md @@ -2,53 +2,53 @@ description: "Learn more about: ICorDebugNativeFrame Interface" title: "ICorDebugNativeFrame Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugNativeFrame" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugNativeFrame" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugNativeFrame interface [.NET Framework debugging]" ms.assetid: 04819c58-7246-4b32-befb-680cf1dbc436 -topic_type: +topic_type: - "apiref" --- # ICorDebugNativeFrame Interface -A specialized implementation of ICorDebugFrame used for native frames. - -## Methods - -|Method|Description| -|------------|-----------------| -|[CanSetIP Method](icordebugnativeframe-cansetip-method.md)|Gets a value that indicates whether it is safe to set the instruction pointer to the specified offset location in native code.| -|[GetIP Method](icordebugnativeframe-getip-method.md)|Gets the stack frame's offset into native code.| -|[GetLocalDoubleRegisterValue Method](icordebugnativeframe-getlocaldoubleregistervalue-method.md)|Gets a pointer to an ICorDebugValue that represents the value of an argument or local variable stored in two memory registers of a native frame.| -|[GetLocalMemoryRegisterValue Method](icordebugnativeframe-getlocalmemoryregistervalue-method.md)|Gets a pointer to an `ICorDebugValue` that represents the value of a local variable, of which the low bits are stored in the specified register and the high bits are stored at the specified memory address.| -|[GetLocalMemoryValue Method](icordebugnativeframe-getlocalmemoryvalue-method.md)|Gets a pointer to an `ICorDebugValue` that represents the value of a local variable stored at the specified memory address.| -|[GetLocalRegisterMemoryValue Method](icordebugnativeframe-getlocalregistermemoryvalue-method.md)|Gets a pointer to an `ICorDebugValue` that represents the value of a local variable, of which the high bits are stored in the specified register and the low bits are stored at the specified memory address| -|[GetLocalRegisterValue Method](icordebugnativeframe-getlocalregistervalue-method.md)|Gets a pointer to an `ICorDebugValue` that represents the value of an argument or a local variable stored in the specified native register.| -|[GetRegisterSet Method](icordebugnativeframe-getregisterset-method.md)|Gets a pointer to an [ICorDebugRegisterSet](icordebugregisterset-interface.md) that represents the register set for this `ICorDebugNativeFrame`.| -|[SetIP Method](icordebugnativeframe-setip-method.md)|Sets the instruction pointer to the specified offset location in native code.| - -## Remarks - +A specialized implementation of ICorDebugFrame used for native frames. + +## Methods + +|Method|Description| +|------------|-----------------| +|[CanSetIP Method](icordebugnativeframe-cansetip-method.md)|Gets a value that indicates whether it is safe to set the instruction pointer to the specified offset location in native code.| +|[GetIP Method](icordebugnativeframe-getip-method.md)|Gets the stack frame's offset into native code.| +|[GetLocalDoubleRegisterValue Method](icordebugnativeframe-getlocaldoubleregistervalue-method.md)|Gets a pointer to an ICorDebugValue that represents the value of an argument or local variable stored in two memory registers of a native frame.| +|[GetLocalMemoryRegisterValue Method](icordebugnativeframe-getlocalmemoryregistervalue-method.md)|Gets a pointer to an `ICorDebugValue` that represents the value of a local variable, of which the low bits are stored in the specified register and the high bits are stored at the specified memory address.| +|[GetLocalMemoryValue Method](icordebugnativeframe-getlocalmemoryvalue-method.md)|Gets a pointer to an `ICorDebugValue` that represents the value of a local variable stored at the specified memory address.| +|[GetLocalRegisterMemoryValue Method](icordebugnativeframe-getlocalregistermemoryvalue-method.md)|Gets a pointer to an `ICorDebugValue` that represents the value of a local variable, of which the high bits are stored in the specified register and the low bits are stored at the specified memory address| +|[GetLocalRegisterValue Method](icordebugnativeframe-getlocalregistervalue-method.md)|Gets a pointer to an `ICorDebugValue` that represents the value of an argument or a local variable stored in the specified native register.| +|[GetRegisterSet Method](icordebugnativeframe-getregisterset-method.md)|Gets a pointer to an [ICorDebugRegisterSet](icordebugregisterset-interface.md) that represents the register set for this `ICorDebugNativeFrame`.| +|[SetIP Method](icordebugnativeframe-setip-method.md)|Sets the instruction pointer to the specified offset location in native code.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugnativeframe-setip-method.md b/docs/framework/unmanaged-api/debugging/icordebugnativeframe-setip-method.md index b2485c3367e3a..316903ad60d90 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugnativeframe-setip-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugnativeframe-setip-method.md @@ -2,54 +2,54 @@ description: "Learn more about: ICorDebugNativeFrame::SetIP Method" title: "ICorDebugNativeFrame::SetIP Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugNativeFrame.SetIP" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugNativeFrame::SetIP" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugNativeFrame::SetIP method [.NET Framework debugging]" - "SetIP method, ICorDebugNativeFrame interface [.NET Framework debugging]" ms.assetid: 57784a51-c76d-48f8-9392-584d0e1946d9 -topic_type: +topic_type: - "apiref" --- # ICorDebugNativeFrame::SetIP Method -Sets the instruction pointer to the specified offset location in native code. - -## Syntax - -```cpp -HRESULT SetIP ( - [in] ULONG32 nOffset -); -``` - -## Parameters - - `nOffset` - [in] The offset location in the native code. - -## Remarks - - Calls to `SetIP` immediately invalidate all frames and chains for the current thread. If the debugger needs frame information after a call to `SetIP`, it must perform a new stack trace. - - [ICorDebug](icordebug-interface.md) will attempt to keep the stack frame in a valid state. However, even if the frame is in a valid state, as far as the runtime is concerned, there still may be problems, such as uninitialized local variables, and so on. The caller is responsible for insuring coherency of the running program. - - On 64-bit platforms, the instruction pointer cannot be moved out of a `catch` or `finally` block. If `SetIP` is called to make such a move on a 64-bit platform, it will return an HRESULT indicating failure. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +Sets the instruction pointer to the specified offset location in native code. + +## Syntax + +```cpp +HRESULT SetIP ( + [in] ULONG32 nOffset +); +``` + +## Parameters + + `nOffset` + [in] The offset location in the native code. + +## Remarks + + Calls to `SetIP` immediately invalidate all frames and chains for the current thread. If the debugger needs frame information after a call to `SetIP`, it must perform a new stack trace. + + [ICorDebug](icordebug-interface.md) will attempt to keep the stack frame in a valid state. However, even if the frame is in a valid state, as far as the runtime is concerned, there still may be problems, such as uninitialized local variables, and so on. The caller is responsible for insuring coherency of the running program. + + On 64-bit platforms, the instruction pointer cannot be moved out of a `catch` or `finally` block. If `SetIP` is called to make such a move on a 64-bit platform, it will return an HRESULT indicating failure. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also diff --git a/docs/framework/unmanaged-api/debugging/icordebugnativeframe2-getstackparametersize-method.md b/docs/framework/unmanaged-api/debugging/icordebugnativeframe2-getstackparametersize-method.md index 37f8ad6fb7f94..74203a11bf620 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugnativeframe2-getstackparametersize-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugnativeframe2-getstackparametersize-method.md @@ -2,63 +2,63 @@ description: "Learn more about: ICorDebugNativeFrame2::GetStackParameterSize Method" title: "ICorDebugNativeFrame2::GetStackParameterSize Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugNativeFrame2.GetStackParameterSize Method" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugNativeFrame2::GetStackParameterSize" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugNativeFrame2::GetStackParameterSize method [.NET Framework debugging]" - "GetStackParameterSize method [.NET Framework debugging]" ms.assetid: f6a449c8-a941-43ba-9a90-c98b29ae3c36 -topic_type: +topic_type: - "apiref" --- # ICorDebugNativeFrame2::GetStackParameterSize Method -Returns the cumulative size of the parameters on the stack on x86 operating systems. - -## Syntax - -```cpp -HRESULT GetStackParameterSize([out] ULONG32 * pSize) -``` - -## Parameters - - `pSize` - [out] A pointer to the cumulative size of the parameters on the stack. - -## Return Value - - This method returns the following specific HRESULTs as well as HRESULT errors that indicate method failure. - -|HRESULT|Description| -|-------------|-----------------| -|S_OK|The stack size was successfully returned.| -|S_FALSE|`GetStackParameterSize` was called on a non-x86 platform.| -|E_FAIL|`The size of the parameters could not be returned`.| -|E_INVALIDARG|`pSize` Is `null`.| - -## Exceptions - -## Remarks - - The [ICorDebugStackWalk](icordebugstackwalk-interface.md) methods do not adjust the stack pointer for parameters that are pushed on the stack. Instead, you can use the value returned by `GetStackParameterSize` to adjust the stack pointer to seed a native unwinder, which does adjust for the parameters. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +Returns the cumulative size of the parameters on the stack on x86 operating systems. + +## Syntax + +```cpp +HRESULT GetStackParameterSize([out] ULONG32 * pSize) +``` + +## Parameters + + `pSize` + [out] A pointer to the cumulative size of the parameters on the stack. + +## Return Value + + This method returns the following specific HRESULTs as well as HRESULT errors that indicate method failure. + +|HRESULT|Description| +|-------------|-----------------| +|S_OK|The stack size was successfully returned.| +|S_FALSE|`GetStackParameterSize` was called on a non-x86 platform.| +|E_FAIL|`The size of the parameters could not be returned`.| +|E_INVALIDARG|`pSize` Is `null`.| + +## Exceptions + +## Remarks + + The [ICorDebugStackWalk](icordebugstackwalk-interface.md) methods do not adjust the stack pointer for parameters that are pushed on the stack. Instead, you can use the value returned by `GetStackParameterSize` to adjust the stack pointer to seed a native unwinder, which does adjust for the parameters. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [ICorDebugNativeFrame2 Interface](icordebugnativeframe2-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugnativeframe2-interface.md b/docs/framework/unmanaged-api/debugging/icordebugnativeframe2-interface.md index c4b8856bf1299..1e1eb44b15bea 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugnativeframe2-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugnativeframe2-interface.md @@ -2,49 +2,49 @@ description: "Learn more about: ICorDebugNativeFrame2 Interface" title: "ICorDebugNativeFrame2 Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugNativeFrame2" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugNativeFrame2" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugNativeFrame2 interface [.NET Framework debugging]" ms.assetid: 52a80838-af36-4399-bc97-d8a4c6d76df2 -topic_type: +topic_type: - "apiref" --- # ICorDebugNativeFrame2 Interface -Provides methods that test for child and parent frame relationships. - -## Methods - -|Method|Description| -|------------|-----------------| -|[IsChild Method](icordebugnativeframe2-ischild-method.md)|Determines whether the current frame is a child frame.| -|[IsMatchingParentFrame Method](icordebugnativeframe2-ismatchingparentframe-method.md)|Determines whether the specified frame is the parent of the current frame.| -|[GetStackParameterSize Method](icordebugnativeframe2-getstackparametersize-method.md)|Returns the cumulative size of the parameters on the stack on x86 operating systems.| - -## Remarks - - This interface logically extends the "ICorDebugNativeFrame" interface. - +Provides methods that test for child and parent frame relationships. + +## Methods + +|Method|Description| +|------------|-----------------| +|[IsChild Method](icordebugnativeframe2-ischild-method.md)|Determines whether the current frame is a child frame.| +|[IsMatchingParentFrame Method](icordebugnativeframe2-ismatchingparentframe-method.md)|Determines whether the specified frame is the parent of the current frame.| +|[GetStackParameterSize Method](icordebugnativeframe2-getstackparametersize-method.md)|Returns the cumulative size of the parameters on the stack on x86 operating systems.| + +## Remarks + + This interface logically extends the "ICorDebugNativeFrame" interface. + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugnativeframe2-ischild-method.md b/docs/framework/unmanaged-api/debugging/icordebugnativeframe2-ischild-method.md index b76dc7bceb3f6..f86fe92eef02b 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugnativeframe2-ischild-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugnativeframe2-ischild-method.md @@ -2,62 +2,62 @@ description: "Learn more about: ICorDebugNativeFrame2::IsChild Method" title: "ICorDebugNativeFrame2::IsChild Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugNativeFrame2.IsChild Method" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugNativeFrame2::IsChild" -helpviewer_keywords: +helpviewer_keywords: - "IsChild method [.NET Framework debugging]" - "ICorDebugNativeFrame2::IsChild method [.NET Framework debugging]" ms.assetid: 9e2aae09-49cb-4fbd-81e5-e29cd864a88b -topic_type: +topic_type: - "apiref" --- # ICorDebugNativeFrame2::IsChild Method -Determines whether the current frame is a child frame. - -## Syntax - -```cpp -HRESULT IsChild([out] BOOL * pIsChild); -``` - -## Parameters - - `pIsChild` - [out] A Boolean value that specifies whether the current frame is a child frame. - -## Return Value - - This method returns the following specific HRESULTs as well as HRESULT errors that indicate method failure. - -|HRESULT|Description| -|-------------|-----------------| -|S_OK|The child status was successfully returned.| -|E_FAIL|The child status could not be returned.| -|E_INVALIDARG|`pIsChild` is null.| - -## Exceptions - -## Remarks - - The `IsChild` method returns `true` if the frame object on which you call the method is a child of another frame. If this is the case, use the [IsMatchingParentFrame](icordebugnativeframe2-ismatchingparentframe-method.md) method to check whether a frame is its parent. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +Determines whether the current frame is a child frame. + +## Syntax + +```cpp +HRESULT IsChild([out] BOOL * pIsChild); +``` + +## Parameters + + `pIsChild` + [out] A Boolean value that specifies whether the current frame is a child frame. + +## Return Value + + This method returns the following specific HRESULTs as well as HRESULT errors that indicate method failure. + +|HRESULT|Description| +|-------------|-----------------| +|S_OK|The child status was successfully returned.| +|E_FAIL|The child status could not be returned.| +|E_INVALIDARG|`pIsChild` is null.| + +## Exceptions + +## Remarks + + The `IsChild` method returns `true` if the frame object on which you call the method is a child of another frame. If this is the case, use the [IsMatchingParentFrame](icordebugnativeframe2-ismatchingparentframe-method.md) method to check whether a frame is its parent. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [ICorDebugNativeFrame2 Interface](icordebugnativeframe2-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugnativeframe2-ismatchingparentframe-method.md b/docs/framework/unmanaged-api/debugging/icordebugnativeframe2-ismatchingparentframe-method.md index e5063da78a480..e38634542c8cd 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugnativeframe2-ismatchingparentframe-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugnativeframe2-ismatchingparentframe-method.md @@ -2,67 +2,67 @@ description: "Learn more about: ICorDebugNativeFrame2::IsMatchingParentFrame Method" title: "ICorDebugNativeFrame2::IsMatchingParentFrame Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugNativeFrame2.IsMatchingParentFrame Method" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugNativeFrame2::IsMatchingParentFrame" -helpviewer_keywords: +helpviewer_keywords: - "IsMatchingParentFrame method [.NET Framework debugging]" - "ICorDebugNativeFrame2::IsMatchingParentFrame method [.NET Framework debugging]" ms.assetid: d2ca20db-df22-4528-a0dd-a09ea62c8998 -topic_type: +topic_type: - "apiref" --- # ICorDebugNativeFrame2::IsMatchingParentFrame Method -Determines whether the specified frame is the parent of the current frame. - -## Syntax - -```cpp -HRESULT IsMatchingParentFrame([in] ICorDebugNativeFrame2 - *pPotentialParentFrame, - [out] BOOL *pIsParent); -``` - -## Parameters - - `pPotentialParentFrame` - [in] A pointer to the frame object that you want to evaluate for parent status. - - `pIsParent` - [out] `true` if `pPotentialParentFrame` is the current frame’s parent; otherwise, `false`. - -## Return Value - - This method returns the following specific HRESULTs as well as HRESULT errors that indicate method failure. - -|HRESULT|Description| -|-------------|-----------------| -|S_OK|The parent status was successfully returned.| -|E_FAIL|The parent status could not be returned.| -|E_INVALIDARG|`pPotentialParentFrame` or `pIsParent` is null.| - -## Exceptions - -## Remarks - - `IsMatchingParentFrame` returns `true` if the frame object you pass to the method is the parent of the frame object on which the method was called. If you call the method on a frame that is not a child of the specified frame, it returns an error. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +Determines whether the specified frame is the parent of the current frame. + +## Syntax + +```cpp +HRESULT IsMatchingParentFrame([in] ICorDebugNativeFrame2 + *pPotentialParentFrame, + [out] BOOL *pIsParent); +``` + +## Parameters + + `pPotentialParentFrame` + [in] A pointer to the frame object that you want to evaluate for parent status. + + `pIsParent` + [out] `true` if `pPotentialParentFrame` is the current frame’s parent; otherwise, `false`. + +## Return Value + + This method returns the following specific HRESULTs as well as HRESULT errors that indicate method failure. + +|HRESULT|Description| +|-------------|-----------------| +|S_OK|The parent status was successfully returned.| +|E_FAIL|The parent status could not be returned.| +|E_INVALIDARG|`pPotentialParentFrame` or `pIsParent` is null.| + +## Exceptions + +## Remarks + + `IsMatchingParentFrame` returns `true` if the frame object you pass to the method is the parent of the frame object on which the method was called. If you call the method on a frame that is not a child of the specified frame, it returns an error. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [ICorDebugNativeFrame2 Interface](icordebugnativeframe2-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugobjectenum-interface.md b/docs/framework/unmanaged-api/debugging/icordebugobjectenum-interface.md index 49f58cc4dbad0..a2c1028627e86 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugobjectenum-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugobjectenum-interface.md @@ -2,45 +2,45 @@ description: "Learn more about: ICorDebugObjectEnum Interface" title: "ICorDebugObjectEnum Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugObjectEnum" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugObjectEnum" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugObjectEnum interface [.NET Framework debugging]" ms.assetid: 9ffb4498-7719-49d3-8890-df2c22248a0c -topic_type: +topic_type: - "apiref" --- # ICorDebugObjectEnum Interface -Implements ICorDebugEnum methods, and enumerates arrays of objects by their relative virtual addresses (RVAs). - -## Methods - -|Method|Description| -|------------|-----------------| -|[Next Method](icordebugobjectenum-next-method.md)|Gets the RVAs of the specified number of objects from the enumeration, starting at the current position.| - -## Remarks - +Implements ICorDebugEnum methods, and enumerates arrays of objects by their relative virtual addresses (RVAs). + +## Methods + +|Method|Description| +|------------|-----------------| +|[Next Method](icordebugobjectenum-next-method.md)|Gets the RVAs of the specified number of objects from the enumeration, starting at the current position.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugobjectvalue-getclass-method.md b/docs/framework/unmanaged-api/debugging/icordebugobjectvalue-getclass-method.md index d1b2a1dfc3dee..75adc75f8a2a5 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugobjectvalue-getclass-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugobjectvalue-getclass-method.md @@ -2,50 +2,50 @@ description: "Learn more about: ICorDebugObjectValue::GetClass Method" title: "ICorDebugObjectValue::GetClass Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugObjectValue.GetClass" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugObjectValue::GetClass" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugObjectValue::GetClass method [.NET Framework debugging]" - "GetClass method, ICorDebugObjectValue interface [.NET Framework debugging]" ms.assetid: 5be25292-8357-445f-a09b-f997c0de761c -topic_type: +topic_type: - "apiref" --- # ICorDebugObjectValue::GetClass Method -Gets the class of this object value. - -## Syntax - -```cpp -HRESULT GetClass ( - [out] ICorDebugClass **ppClass -); -``` - -## Parameters - - `ppClass` - [out] A pointer to the address of an "ICorDebugClass" object that represents the class of the object value represented by this "ICorDebugObjectValue" object. - -## Remarks - - The `GetClass` and [ICorDebugValue::GetType](icordebugvalue-gettype-method.md) methods each return information about the type of a value; they are both superseded by the generics-aware [ICorDebugValue2::GetExactType](icordebugvalue2-getexacttype-method.md). - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Gets the class of this object value. + +## Syntax + +```cpp +HRESULT GetClass ( + [out] ICorDebugClass **ppClass +); +``` + +## Parameters + + `ppClass` + [out] A pointer to the address of an "ICorDebugClass" object that represents the class of the object value represented by this "ICorDebugObjectValue" object. + +## Remarks + + The `GetClass` and [ICorDebugValue::GetType](icordebugvalue-gettype-method.md) methods each return information about the type of a value; they are both superseded by the generics-aware [ICorDebugValue2::GetExactType](icordebugvalue2-getexacttype-method.md). + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also diff --git a/docs/framework/unmanaged-api/debugging/icordebugobjectvalue-getfieldvalue-method.md b/docs/framework/unmanaged-api/debugging/icordebugobjectvalue-getfieldvalue-method.md index 49b5a86be443d..97eba716ec6a1 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugobjectvalue-getfieldvalue-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugobjectvalue-getfieldvalue-method.md @@ -2,60 +2,60 @@ description: "Learn more about: ICorDebugObjectValue::GetFieldValue Method" title: "ICorDebugObjectValue::GetFieldValue Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugObjectValue.GetFieldValue" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugObjectValue::GetFieldValue" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugObjectValue::GetFieldValue method [.NET Framework debugging]" - "GetFieldValue method [.NET Framework debugging]" ms.assetid: c96770b0-3e09-47bb-bd29-20353b043459 -topic_type: +topic_type: - "apiref" --- # ICorDebugObjectValue::GetFieldValue Method -Gets the value of the specified field of the specified class for this object value. - -## Syntax - -```cpp -HRESULT GetFieldValue ( - [in] ICorDebugClass *pClass, - [in] mdFieldDef fieldDef, - [out] ICorDebugValue **ppValue -); -``` - -## Parameters - - `pClass` - [in] A pointer to an "ICorDebugClass" object that represents the class for which to get the field value. - - `fieldDef` - [in] An `mdFieldDef` token that references the metadata describing the field. - - `ppValue` - [out] A pointer to an "ICorDebugValue" object that represents the value of the specified field. - -## Remarks - - The class, specified in the `pClass` parameter, must be in the hierarchy of the object value's class, and the field must be a field of that class. - - The `GetFieldValue` method will still succeed for generic objects and generic classes. For example, if MyDictionary\ inherits from Dictionary\, and the object value is of type MyDictionary\, passing the `ICorDebugClass` object for Dictionary\ will successfully get a field of Dictionary\. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Gets the value of the specified field of the specified class for this object value. + +## Syntax + +```cpp +HRESULT GetFieldValue ( + [in] ICorDebugClass *pClass, + [in] mdFieldDef fieldDef, + [out] ICorDebugValue **ppValue +); +``` + +## Parameters + + `pClass` + [in] A pointer to an "ICorDebugClass" object that represents the class for which to get the field value. + + `fieldDef` + [in] An `mdFieldDef` token that references the metadata describing the field. + + `ppValue` + [out] A pointer to an "ICorDebugValue" object that represents the value of the specified field. + +## Remarks + + The class, specified in the `pClass` parameter, must be in the hierarchy of the object value's class, and the field must be a field of that class. + + The `GetFieldValue` method will still succeed for generic objects and generic classes. For example, if MyDictionary\ inherits from Dictionary\, and the object value is of type MyDictionary\, passing the `ICorDebugClass` object for Dictionary\ will successfully get a field of Dictionary\. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also diff --git a/docs/framework/unmanaged-api/debugging/icordebugobjectvalue-interface.md b/docs/framework/unmanaged-api/debugging/icordebugobjectvalue-interface.md index 33c7f1ce2cfc0..91ed55b735568 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugobjectvalue-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugobjectvalue-interface.md @@ -2,53 +2,53 @@ description: "Learn more about: ICorDebugObjectValue Interface" title: "ICorDebugObjectValue Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugObjectValue" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugObjectValue" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugObjectValue interface [.NET Framework debugging]" ms.assetid: 937de6a0-6fbf-4ddc-80ea-a6217b73e62b -topic_type: +topic_type: - "apiref" --- # ICorDebugObjectValue Interface -A subclass of "ICorDebugValue" that represents a value that contains an object. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetClass Method](icordebugobjectvalue-getclass-method.md)|Gets an interface pointer to the common language runtime (CLR) of the object that this `ICorDebugObjectValue` references.| -|[GetContext Method](icordebugobjectvalue-getcontext-method.md)|Not implemented.| -|[GetFieldValue Method](icordebugobjectvalue-getfieldvalue-method.md)|Gets an interface pointer to an [ICorDebugValue](icordebugvalue-interface.md) that represents the value of the specified field of the specified class.| -|[GetManagedCopy Method](icordebugobjectvalue-getmanagedcopy-method.md)|Obsolete. Do not call this method.| -|[GetVirtualMethod Method](icordebugobjectvalue-getvirtualmethod-method.md)|Not implemented.| -|[IsValueClass Method](icordebugobjectvalue-isvalueclass-method.md)|Gets a value that indicates whether the object referenced by this `ICorDebugObjectValue` is a value type.| -|[SetFromManagedCopy Method](icordebugobjectvalue-setfrommanagedcopy-method.md)|Obsolete. Do not call this method.| - -## Remarks - - An `ICorDebugObjectValue` remains valid until the process being debugged is continued. - +A subclass of "ICorDebugValue" that represents a value that contains an object. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetClass Method](icordebugobjectvalue-getclass-method.md)|Gets an interface pointer to the common language runtime (CLR) of the object that this `ICorDebugObjectValue` references.| +|[GetContext Method](icordebugobjectvalue-getcontext-method.md)|Not implemented.| +|[GetFieldValue Method](icordebugobjectvalue-getfieldvalue-method.md)|Gets an interface pointer to an [ICorDebugValue](icordebugvalue-interface.md) that represents the value of the specified field of the specified class.| +|[GetManagedCopy Method](icordebugobjectvalue-getmanagedcopy-method.md)|Obsolete. Do not call this method.| +|[GetVirtualMethod Method](icordebugobjectvalue-getvirtualmethod-method.md)|Not implemented.| +|[IsValueClass Method](icordebugobjectvalue-isvalueclass-method.md)|Gets a value that indicates whether the object referenced by this `ICorDebugObjectValue` is a value type.| +|[SetFromManagedCopy Method](icordebugobjectvalue-setfrommanagedcopy-method.md)|Obsolete. Do not call this method.| + +## Remarks + + An `ICorDebugObjectValue` remains valid until the process being debugged is continued. + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugobjectvalue2-getvirtualmethodandtype-method.md b/docs/framework/unmanaged-api/debugging/icordebugobjectvalue2-getvirtualmethodandtype-method.md index 7a4b1a4941836..e2f7e0371f4e4 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugobjectvalue2-getvirtualmethodandtype-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugobjectvalue2-getvirtualmethodandtype-method.md @@ -2,37 +2,37 @@ description: "Learn more about: ICorDebugObjectValue2::GetVirtualMethodAndType Method" title: "ICorDebugObjectValue2::GetVirtualMethodAndType Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugObjectValue2.GetVirtualMethodAndType" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugObjectValue2::GetVirtualMethodAndType" -helpviewer_keywords: +helpviewer_keywords: - "GetVirtualMethodAndType method [.NET Framework debugging]" - "ICorDebugObjectValue2::GetVirtualMethodAndType method" ms.assetid: 621b4543-a8f7-4117-98e4-930992cd688a -topic_type: +topic_type: - "apiref" --- # ICorDebugObjectValue2::GetVirtualMethodAndType Method -This method is not yet implemented. - -## Syntax - -```cpp -HRESULT GetVirtualMethodAndType ( - [in] mdMemberRef memberRef, - [out] ICorDebugFunction **ppFunction, - [out] ICorDebugType **ppType -); -``` - -## Remarks +This method is not yet implemented. + +## Syntax + +```cpp +HRESULT GetVirtualMethodAndType ( + [in] mdMemberRef memberRef, + [out] ICorDebugFunction **ppFunction, + [out] ICorDebugType **ppType +); +``` + +## Remarks + + Gets interface pointers to the "ICorDebugFunction" and "ICorDebugType" instances that represent the most derived method and type for the specified member reference. - Gets interface pointers to the "ICorDebugFunction" and "ICorDebugType" instances that represent the most derived method and type for the specified member reference. - ## See also diff --git a/docs/framework/unmanaged-api/debugging/icordebugobjectvalue2-interface.md b/docs/framework/unmanaged-api/debugging/icordebugobjectvalue2-interface.md index 49ee458feaf80..bedba9a24178e 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugobjectvalue2-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugobjectvalue2-interface.md @@ -2,45 +2,45 @@ description: "Learn more about: ICorDebugObjectValue2 Interface" title: "ICorDebugObjectValue2 Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugObjectValue2" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugObjectValue2" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugObjectValue2 interface [.NET Framework debugging]" ms.assetid: f93cc2ec-0a12-4499-9bf6-405dc58c9a81 -topic_type: +topic_type: - "apiref" --- # ICorDebugObjectValue2 Interface -Extends the "ICorDebugObjectValue" interface to support inheritance and overrides. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetVirtualMethodAndType Method](icordebugobjectvalue2-getvirtualmethodandtype-method.md)|`GetVirtualMethodAndType` is not yet implemented.| - -## Remarks - +Extends the "ICorDebugObjectValue" interface to support inheritance and overrides. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetVirtualMethodAndType Method](icordebugobjectvalue2-getvirtualmethodandtype-method.md)|`GetVirtualMethodAndType` is not yet implemented.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess-clearcurrentexception-method.md b/docs/framework/unmanaged-api/debugging/icordebugprocess-clearcurrentexception-method.md index db7036c992e41..196d85efe3017 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess-clearcurrentexception-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess-clearcurrentexception-method.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugProcess::ClearCurrentException Method" title: "ICorDebugProcess::ClearCurrentException Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugProcess.ClearCurrentException" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugProcess::ClearCurrentException" -helpviewer_keywords: +helpviewer_keywords: - "ClearCurrentException method, ICorDebugProcess interface [.NET Framework debugging]" - "ICorDebugProcess::ClearCurrentException method [.NET Framework debugging]" ms.assetid: 9e02ee1a-e495-4578-bfb5-b946274bede7 -topic_type: +topic_type: - "apiref" --- # ICorDebugProcess::ClearCurrentException Method -Clears the current unmanaged exception on the given thread. - -## Syntax - -```cpp -HRESULT ClearCurrentException([in] DWORD threadID); -``` - -## Parameters - - `threadID` - [in] The ID of the thread on which the current unmanaged exception will be cleared. - -## Remarks - - Call this method before calling [ICorDebugController::Continue](icordebugcontroller-continue-method.md) when a thread has reported an unmanaged exception that should be ignored by the debuggee. This will clear both the outstanding in-band (IB) and out-of-band (OOB) events on the given thread. All OOB breakpoints and single-step exceptions are automatically cleared. - - Use [ICorDebugThread2::InterceptCurrentException](icordebugthread2-interceptcurrentexception-method.md) to intercept the current managed exception on a thread. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Clears the current unmanaged exception on the given thread. + +## Syntax + +```cpp +HRESULT ClearCurrentException([in] DWORD threadID); +``` + +## Parameters + + `threadID` + [in] The ID of the thread on which the current unmanaged exception will be cleared. + +## Remarks + + Call this method before calling [ICorDebugController::Continue](icordebugcontroller-continue-method.md) when a thread has reported an unmanaged exception that should be ignored by the debuggee. This will clear both the outstanding in-band (IB) and out-of-band (OOB) events on the given thread. All OOB breakpoints and single-step exceptions are automatically cleared. + + Use [ICorDebugThread2::InterceptCurrentException](icordebugthread2-interceptcurrentexception-method.md) to intercept the current managed exception on a thread. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess-enablelogmessages-method.md b/docs/framework/unmanaged-api/debugging/icordebugprocess-enablelogmessages-method.md index b6b71fdd710f1..db9a8164725a7 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess-enablelogmessages-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess-enablelogmessages-method.md @@ -2,46 +2,46 @@ description: "Learn more about: ICorDebugProcess::EnableLogMessages Method" title: "ICorDebugProcess::EnableLogMessages Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugProcess.EnableLogMessages" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugProcess::EnableLogMessages" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugProcess::EnableLogMessages method [.NET Framework debugging]" - "EnableLogMessages method [.NET Framework debugging]" ms.assetid: 14a4e5a3-3eaf-4f53-9dd1-762726963a23 -topic_type: +topic_type: - "apiref" --- # ICorDebugProcess::EnableLogMessages Method -Enables and disables the transmission of log messages to the debugger. - -## Syntax - -```cpp -HRESULT EnableLogMessages([in]BOOL fOnOff); -``` - -## Parameters - - `fOnOff` - [in] `true` enables the transmission of log messages; `false` disables the transmission. - -## Remarks - - This method is valid only after the [ICorDebugManagedCallback::CreateProcess](icordebugmanagedcallback-createprocess-method.md) callback occurs. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Enables and disables the transmission of log messages to the debugger. + +## Syntax + +```cpp +HRESULT EnableLogMessages([in]BOOL fOnOff); +``` + +## Parameters + + `fOnOff` + [in] `true` enables the transmission of log messages; `false` disables the transmission. + +## Remarks + + This method is valid only after the [ICorDebugManagedCallback::CreateProcess](icordebugmanagedcallback-createprocess-method.md) callback occurs. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess-enumerateappdomains-method.md b/docs/framework/unmanaged-api/debugging/icordebugprocess-enumerateappdomains-method.md index b58d2d2446de1..ec2a63365ab81 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess-enumerateappdomains-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess-enumerateappdomains-method.md @@ -2,47 +2,47 @@ description: "Learn more about: ICorDebugProcess::EnumerateAppDomains Method" title: "ICorDebugProcess::EnumerateAppDomains Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugProcess.EnumerateAppDomains" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugProcess::EnumerateAppDomains" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugProcess::EnumerateAppDomains method [.NET Framework debugging]" - "EnumerateAppDomains method [.NET Framework debugging]" ms.assetid: d508981f-e2b2-445b-a649-69951c22702d -topic_type: +topic_type: - "apiref" --- # ICorDebugProcess::EnumerateAppDomains Method -Enumerates all the application domains in this process. - -## Syntax - +Enumerates all the application domains in this process. + +## Syntax + ``` cpp -HRESULT EnumerateAppDomains( - [out] ICorDebugAppDomainEnum **ppAppDomains); -``` - -## Parameters - - `ppAppDomains` - [out] A pointer to the address of an [ICorDebugAppDomainEnum](icordebugappdomainenum-interface.md) that is an enumerator for the application domains in this process. - -## Remarks - - This method can be used before the [ICorDebugManagedCallback::CreateProcess](icordebugmanagedcallback-createprocess-method.md) callback. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +HRESULT EnumerateAppDomains( + [out] ICorDebugAppDomainEnum **ppAppDomains); +``` + +## Parameters + + `ppAppDomains` + [out] A pointer to the address of an [ICorDebugAppDomainEnum](icordebugappdomainenum-interface.md) that is an enumerator for the application domains in this process. + +## Remarks + + This method can be used before the [ICorDebugManagedCallback::CreateProcess](icordebugmanagedcallback-createprocess-method.md) callback. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess-gethandle-method.md b/docs/framework/unmanaged-api/debugging/icordebugprocess-gethandle-method.md index 97d1a51893a4a..9ccfa54c48153 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess-gethandle-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess-gethandle-method.md @@ -2,46 +2,46 @@ description: "Learn more about: ICorDebugProcess::GetHandle Method" title: "ICorDebugProcess::GetHandle Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugProcess.GetHandle" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugProcess::GetHandle" -helpviewer_keywords: +helpviewer_keywords: - "GetHandle method, ICorDebugProcess interface [.NET Framework debugging]" - "ICorDebugProcess::GetHandle method [.NET Framework debugging]" ms.assetid: e7d3ecf5-09d2-4d94-abb6-ff3483deebb6 -topic_type: +topic_type: - "apiref" --- # ICorDebugProcess::GetHandle Method -Gets a handle to the process. - -## Syntax - -```cpp -HRESULT GetHandle([out] HPROCESS *phProcessHandle); -``` - -## Parameters - - `phProcessHandle` - [out] A pointer to an `HPROCESS` that is the handle to the process. - -## Remarks - - The retrieved handle is owned by the debugging interface. The debugger should duplicate the handle before using it. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets a handle to the process. + +## Syntax + +```cpp +HRESULT GetHandle([out] HPROCESS *phProcessHandle); +``` + +## Parameters + + `phProcessHandle` + [out] A pointer to an `HPROCESS` that is the handle to the process. + +## Remarks + + The retrieved handle is owned by the debugging interface. The debugger should duplicate the handle before using it. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess-gethelperthreadid-method.md b/docs/framework/unmanaged-api/debugging/icordebugprocess-gethelperthreadid-method.md index 66417034b50aa..7a028e57d306c 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess-gethelperthreadid-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess-gethelperthreadid-method.md @@ -2,52 +2,52 @@ description: "Learn more about: ICorDebugProcess::GetHelperThreadID Method" title: "ICorDebugProcess::GetHelperThreadID Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugProcess.GetHelperThreadID" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugProcess::GetHelperThreadID" -helpviewer_keywords: +helpviewer_keywords: - "GetHelperThreadID method [.NET Framework debugging]" - "ICorDebugProcess::GetHelperThreadID method [.NET Framework debugging]" ms.assetid: 84e1e605-37c1-49a5-8e12-35db85654622 -topic_type: +topic_type: - "apiref" --- # ICorDebugProcess::GetHelperThreadID Method -Gets the operating system (OS) thread ID of the debugger's internal helper thread. - -## Syntax - -```cpp -HRESULT GetHelperThreadID ( - [out] DWORD *pThreadID -); -``` - -## Parameters - - `pThreadID` - [out] A pointer to the OS thread ID of the debugger's internal helper thread. - -## Remarks - - During managed and unmanaged debugging, it is the debugger's responsibility to ensure that the thread with the specified ID remains running if it hits a breakpoint placed by the debugger. A debugger may also wish to hide this thread from the user. If no helper thread exists in the process yet, the `GetHelperThreadID` method returns zero in *`pThreadID`. - - You cannot cache the thread ID of the helper thread, because it may change over time. You must re-query the thread ID at every stopping event. - - The thread ID of the debugger's helper thread will be correct on every unmanaged [ICorDebugManagedCallback::CreateThread](icordebugmanagedcallback-createthread-method.md) event, thus allowing a debugger to determine the thread ID of its helper thread and hide it from the user. A thread that is identified as a helper thread during an unmanaged `ICorDebugManagedCallback::CreateThread` event will never run managed user code. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl. CorDebug.h - - **Library:** CorGuids.lib - +Gets the operating system (OS) thread ID of the debugger's internal helper thread. + +## Syntax + +```cpp +HRESULT GetHelperThreadID ( + [out] DWORD *pThreadID +); +``` + +## Parameters + + `pThreadID` + [out] A pointer to the OS thread ID of the debugger's internal helper thread. + +## Remarks + + During managed and unmanaged debugging, it is the debugger's responsibility to ensure that the thread with the specified ID remains running if it hits a breakpoint placed by the debugger. A debugger may also wish to hide this thread from the user. If no helper thread exists in the process yet, the `GetHelperThreadID` method returns zero in *`pThreadID`. + + You cannot cache the thread ID of the helper thread, because it may change over time. You must re-query the thread ID at every stopping event. + + The thread ID of the debugger's helper thread will be correct on every unmanaged [ICorDebugManagedCallback::CreateThread](icordebugmanagedcallback-createthread-method.md) event, thus allowing a debugger to determine the thread ID of its helper thread and hide it from the user. A thread that is identified as a helper thread during an unmanaged `ICorDebugManagedCallback::CreateThread` event will never run managed user code. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl. CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess-getthreadcontext-method.md b/docs/framework/unmanaged-api/debugging/icordebugprocess-getthreadcontext-method.md index b3d8852d04856..905006dd24853 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess-getthreadcontext-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess-getthreadcontext-method.md @@ -2,60 +2,60 @@ description: "Learn more about: ICorDebugProcess::GetThreadContext Method" title: "ICorDebugProcess::GetThreadContext Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugProcess.GetThreadContext" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugProcess::GetThreadContext" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugProcess::GetThreadContext method [.NET Framework debugging]" - "GetThreadContext method, ICorDebugProcess interface [.NET Framework debugging]" ms.assetid: 5b132ef1-8d4b-4525-89b3-54123596c194 -topic_type: +topic_type: - "apiref" --- # ICorDebugProcess::GetThreadContext Method -Gets the context for the given thread in this process. - -## Syntax - -```cpp -HRESULT GetThreadContext( - [in] DWORD threadID, - [in] ULONG32 contextSize, - [in, out, length_is(contextSize), size_is(contextSize)] - BYTE context[]); -``` - -## Parameters - - `threadID` - [in] The ID of the thread for which to retrieve the context. - - `contextSize` - [in] The size of the `context` array. - - `context` - [in, out] An array of bytes that describe the thread's context. - - The context specifies the architecture of the processor on which the thread is executing. - -## Remarks - - The debugger should call this method rather than the Win32 `GetThreadContext` method, because the thread may actually be in a "hijacked" state, in which its context has been temporarily changed. This method should be used only when a thread is in native code. Use [ICorDebugRegisterSet](icordebugregisterset-interface.md) for threads in managed code. - - The data returned is a context structure for the current platform. Just as with the Win32 `GetThreadContext` method, the caller should initialize the `context` parameter before calling this method. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets the context for the given thread in this process. + +## Syntax + +```cpp +HRESULT GetThreadContext( + [in] DWORD threadID, + [in] ULONG32 contextSize, + [in, out, length_is(contextSize), size_is(contextSize)] + BYTE context[]); +``` + +## Parameters + + `threadID` + [in] The ID of the thread for which to retrieve the context. + + `contextSize` + [in] The size of the `context` array. + + `context` + [in, out] An array of bytes that describe the thread's context. + + The context specifies the architecture of the processor on which the thread is executing. + +## Remarks + + The debugger should call this method rather than the Win32 `GetThreadContext` method, because the thread may actually be in a "hijacked" state, in which its context has been temporarily changed. This method should be used only when a thread is in native code. Use [ICorDebugRegisterSet](icordebugregisterset-interface.md) for threads in managed code. + + The data returned is a context structure for the current platform. Just as with the Win32 `GetThreadContext` method, the caller should initialize the `context` parameter before calling this method. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess-interface.md b/docs/framework/unmanaged-api/debugging/icordebugprocess-interface.md index 38b509e211f0b..e8adbf754aabd 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess-interface.md @@ -2,61 +2,61 @@ description: "Learn more about: ICorDebugProcess Interface" title: "ICorDebugProcess Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugProcess" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugProcess" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugProcess interface [.NET Framework debugging]" ms.assetid: be86f4b5-418a-4c5c-a67c-97148c65ed8c -topic_type: +topic_type: - "apiref" --- # ICorDebugProcess Interface -Represents a process that is executing managed code. This interface is a subclass of ICorDebugController. - -## Methods - -|Method|Description| -|------------|-----------------| -|[ClearCurrentException Method](icordebugprocess-clearcurrentexception-method.md)|Clears the current unmanaged exception on the given thread.| -|[EnableLogMessages Method](icordebugprocess-enablelogmessages-method.md)|Enables and disables the sending of log messages to the debugger.| -|[EnumerateAppDomains Method](icordebugprocess-enumerateappdomains-method.md)|Enumerates all of the application domains in the process.| -|[EnumerateObjects Method](icordebugprocess-enumerateobjects-method.md)|Not implemented.| -|[GetHandle Method](icordebugprocess-gethandle-method.md)|Gets a handle to the process.| -|[GetHelperThreadID Method](icordebugprocess-gethelperthreadid-method.md)|Gets the operating system (OS) thread ID for the debugger's internal helper thread.| -|[GetID Method](icordebugprocess-getid-method.md)|Gets the operating system (OS) ID of the process.| -|[GetObject Method](icordebugprocess-getobject-method.md)|Not implemented.| -|[GetThread Method](icordebugprocess-getthread-method.md)|Gets the ICorDebugThread instance that has the specified OS thread ID.| -|[GetThreadContext Method](icordebugprocess-getthreadcontext-method.md)|Gets the context for the given thread.| -|[IsOSSuspended Method](icordebugprocess-isossuspended-method.md)|Determines whether the thread has been suspended as a result of the debugger stopping the process.| -|[IsTransitionStub Method](icordebugprocess-istransitionstub-method.md)|Determines whether an address is inside a stub that will cause a transition to managed code.| -|[ModifyLogSwitch Method](icordebugprocess-modifylogswitch-method.md)|Sets the severity level of the specified log switch.| -|[ReadMemory Method](icordebugprocess-readmemory-method.md)|Reads memory from the process.| -|[SetThreadContext Method](icordebugprocess-setthreadcontext-method.md)|Sets the context for the given thread.| -|[ThreadForFiberCookie Method](icordebugprocess-threadforfibercookie-method.md)|Deprecated.| -|[WriteMemory Method](icordebugprocess-writememory-method.md)|Writes data to an area of memory in the process.| - -## Remarks - +Represents a process that is executing managed code. This interface is a subclass of ICorDebugController. + +## Methods + +|Method|Description| +|------------|-----------------| +|[ClearCurrentException Method](icordebugprocess-clearcurrentexception-method.md)|Clears the current unmanaged exception on the given thread.| +|[EnableLogMessages Method](icordebugprocess-enablelogmessages-method.md)|Enables and disables the sending of log messages to the debugger.| +|[EnumerateAppDomains Method](icordebugprocess-enumerateappdomains-method.md)|Enumerates all of the application domains in the process.| +|[EnumerateObjects Method](icordebugprocess-enumerateobjects-method.md)|Not implemented.| +|[GetHandle Method](icordebugprocess-gethandle-method.md)|Gets a handle to the process.| +|[GetHelperThreadID Method](icordebugprocess-gethelperthreadid-method.md)|Gets the operating system (OS) thread ID for the debugger's internal helper thread.| +|[GetID Method](icordebugprocess-getid-method.md)|Gets the operating system (OS) ID of the process.| +|[GetObject Method](icordebugprocess-getobject-method.md)|Not implemented.| +|[GetThread Method](icordebugprocess-getthread-method.md)|Gets the ICorDebugThread instance that has the specified OS thread ID.| +|[GetThreadContext Method](icordebugprocess-getthreadcontext-method.md)|Gets the context for the given thread.| +|[IsOSSuspended Method](icordebugprocess-isossuspended-method.md)|Determines whether the thread has been suspended as a result of the debugger stopping the process.| +|[IsTransitionStub Method](icordebugprocess-istransitionstub-method.md)|Determines whether an address is inside a stub that will cause a transition to managed code.| +|[ModifyLogSwitch Method](icordebugprocess-modifylogswitch-method.md)|Sets the severity level of the specified log switch.| +|[ReadMemory Method](icordebugprocess-readmemory-method.md)|Reads memory from the process.| +|[SetThreadContext Method](icordebugprocess-setthreadcontext-method.md)|Sets the context for the given thread.| +|[ThreadForFiberCookie Method](icordebugprocess-threadforfibercookie-method.md)|Deprecated.| +|[WriteMemory Method](icordebugprocess-writememory-method.md)|Writes data to an area of memory in the process.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [ICorDebug Interface](icordebug-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess-isossuspended-method.md b/docs/framework/unmanaged-api/debugging/icordebugprocess-isossuspended-method.md index ea3887b425fb8..7deb5c8e4d60c 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess-isossuspended-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess-isossuspended-method.md @@ -2,53 +2,53 @@ description: "Learn more about: ICorDebugProcess::IsOSSuspended Method" title: "ICorDebugProcess::IsOSSuspended Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugProcess.IsOSSuspended" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugProcess::IsOSSuspended" -helpviewer_keywords: +helpviewer_keywords: - "IsOSSuspended method [.NET Framework debugging]" - "ICorDebugProcess::IsOSSuspended method [.NET Framework debugging]" ms.assetid: 83406cb2-5797-4402-872d-89c9516aefec -topic_type: +topic_type: - "apiref" --- # ICorDebugProcess::IsOSSuspended Method -Gets a value that indicates whether the specified thread has been suspended as a result of the debugger stopping this process. - -## Syntax - -```cpp -HRESULT IsOSSuspended( - [in] DWORD threadID, - [out] BOOL *pbSuspended); -``` - -## Parameters - - `threadID` - [in] The ID of thread in question. - - `pbSuspended` - [out] A pointer to a Boolean value that is `true` if the specified thread has been suspended; otherwise *`pbSuspended` is `false`. - -## Remarks - - When the specified thread has been suspended as a result of the debugger stopping this process, the specified thread's Win32 suspend count is incremented by one. The debugger user interface (UI) may want to take this information into account if it displays the operating system (OS) suspend count of the thread to the user. - - The `IsOSSuspended` method makes sense only in the context of unmanaged debugging. During managed debugging, threads are cooperatively suspended rather than OS-suspended. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets a value that indicates whether the specified thread has been suspended as a result of the debugger stopping this process. + +## Syntax + +```cpp +HRESULT IsOSSuspended( + [in] DWORD threadID, + [out] BOOL *pbSuspended); +``` + +## Parameters + + `threadID` + [in] The ID of thread in question. + + `pbSuspended` + [out] A pointer to a Boolean value that is `true` if the specified thread has been suspended; otherwise *`pbSuspended` is `false`. + +## Remarks + + When the specified thread has been suspended as a result of the debugger stopping this process, the specified thread's Win32 suspend count is incremented by one. The debugger user interface (UI) may want to take this information into account if it displays the operating system (OS) suspend count of the thread to the user. + + The `IsOSSuspended` method makes sense only in the context of unmanaged debugging. During managed debugging, threads are cooperatively suspended rather than OS-suspended. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess-istransitionstub-method.md b/docs/framework/unmanaged-api/debugging/icordebugprocess-istransitionstub-method.md index 92e26dd009a69..a578577406b16 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess-istransitionstub-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess-istransitionstub-method.md @@ -2,53 +2,53 @@ description: "Learn more about: ICorDebugProcess::IsTransitionStub Method" title: "ICorDebugProcess::IsTransitionStub Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugProcess.IsTransitionStub" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugProcess::IsTransitionStub" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugProcess::IsTransitionStub method [.NET Framework debugging]" - "IsTransitionStub method [.NET Framework debugging]" ms.assetid: f7653317-7e48-4163-be03-f50f1a4b0f70 -topic_type: +topic_type: - "apiref" --- # ICorDebugProcess::IsTransitionStub Method -Gets a value that indicates whether an address is inside a stub that will cause a transition to managed code. - -## Syntax - -```cpp -HRESULT IsTransitionStub( - [in] CORDB_ADDRESS address, - [out] BOOL *pbTransitionStub); -``` - -## Parameters - - `address` - [in] A `CORDB_ADDRESS` value that specifies the address in question. - - `pbTransitionStub` - [out] A pointer to a Boolean value that is `true` if the specified address is inside a stub that will cause a transition to managed code; otherwise *`pbTransitionStub` is `false`. - -## Remarks - - The `IsTransitionStub` method can be used by unmanaged stepping code to decide when to return stepping control to the managed stepper. - - You can also identity transition stubs by looking at information in the portable executable (PE) file. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets a value that indicates whether an address is inside a stub that will cause a transition to managed code. + +## Syntax + +```cpp +HRESULT IsTransitionStub( + [in] CORDB_ADDRESS address, + [out] BOOL *pbTransitionStub); +``` + +## Parameters + + `address` + [in] A `CORDB_ADDRESS` value that specifies the address in question. + + `pbTransitionStub` + [out] A pointer to a Boolean value that is `true` if the specified address is inside a stub that will cause a transition to managed code; otherwise *`pbTransitionStub` is `false`. + +## Remarks + + The `IsTransitionStub` method can be used by unmanaged stepping code to decide when to return stepping control to the managed stepper. + + You can also identity transition stubs by looking at information in the portable executable (PE) file. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess-modifylogswitch-method.md b/docs/framework/unmanaged-api/debugging/icordebugprocess-modifylogswitch-method.md index 245529e59bf75..b5699463d8c59 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess-modifylogswitch-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess-modifylogswitch-method.md @@ -2,51 +2,51 @@ description: "Learn more about: ICorDebugProcess::ModifyLogSwitch Method" title: "ICorDebugProcess::ModifyLogSwitch Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugProcess.ModifyLogSwitch" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugProcess::ModifyLogSwitch" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugProcess::ModifyLogSwitch method [.NET Framework debugging]" - "ModifyLogSwitch method [.NET Framework debugging]" ms.assetid: 5fd30875-555e-4e96-877b-5dd266cde7c4 -topic_type: +topic_type: - "apiref" --- # ICorDebugProcess::ModifyLogSwitch Method -Sets the severity level of the specified log switch. - -## Syntax - -```cpp -HRESULT ModifyLogSwitch( - [in] WCHAR *pLogSwitchName, - [in] LONG lLevel); -``` - -## Parameters - - `pLogSwitchName` - [in] A pointer to a string that specifies the name of the log switch. - - `lLevel` - [in] The severity level to be set for the specified log switch. - -## Remarks - - This method is valid only after the [ICorDebugManagedCallback::CreateProcess](icordebugmanagedcallback-createprocess-method.md) callback has occurred. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Sets the severity level of the specified log switch. + +## Syntax + +```cpp +HRESULT ModifyLogSwitch( + [in] WCHAR *pLogSwitchName, + [in] LONG lLevel); +``` + +## Parameters + + `pLogSwitchName` + [in] A pointer to a string that specifies the name of the log switch. + + `lLevel` + [in] The severity level to be set for the specified log switch. + +## Remarks + + This method is valid only after the [ICorDebugManagedCallback::CreateProcess](icordebugmanagedcallback-createprocess-method.md) callback has occurred. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess-setthreadcontext-method.md b/docs/framework/unmanaged-api/debugging/icordebugprocess-setthreadcontext-method.md index cd26c5ae2dc76..51a2f45c5d75f 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess-setthreadcontext-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess-setthreadcontext-method.md @@ -2,62 +2,62 @@ description: "Learn more about: ICorDebugProcess::SetThreadContext Method" title: "ICorDebugProcess::SetThreadContext Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugProcess.SetThreadContext" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugProcess::SetThreadContext" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugProcess::SetThreadContext method [.NET Framework debugging]" - "SetThreadContext method, ICorDebugProcess interface [.NET Framework debugging]" ms.assetid: a7b50175-2bf1-40be-8f65-64aec7aa1247 -topic_type: +topic_type: - "apiref" --- # ICorDebugProcess::SetThreadContext Method -Sets the context for the given thread in this process. - -## Syntax - -```cpp -HRESULT SetThreadContext( - [in] DWORD threadID, - [in] ULONG32 contextSize, - [in, length_is(contextSize), size_is(contextSize)] - BYTE context[]); -``` - -## Parameters - - `threadID` - [in] The ID of the thread for which to set the context. - - `contextSize` - [in] The size of the `context` array. - - `context` - [in] An array of bytes that describe the thread's context. - - The context specifies the architecture of the processor on which the thread is executing. - -## Remarks - - The debugger should call this method rather than the Win32 `SetThreadContext` function, because the thread may actually be in a "hijacked" state, in which its context has been temporarily changed. This method should be used only when a thread is in native code. Use [ICorDebugRegisterSet](icordebugregisterset-interface.md) for threads in managed code. You should never need to modify the context of a thread during an out-of-band (OOB) debug event. - - The data passed must be a context structure for the current platform. - - This method can corrupt the runtime if used improperly. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Sets the context for the given thread in this process. + +## Syntax + +```cpp +HRESULT SetThreadContext( + [in] DWORD threadID, + [in] ULONG32 contextSize, + [in, length_is(contextSize), size_is(contextSize)] + BYTE context[]); +``` + +## Parameters + + `threadID` + [in] The ID of the thread for which to set the context. + + `contextSize` + [in] The size of the `context` array. + + `context` + [in] An array of bytes that describe the thread's context. + + The context specifies the architecture of the processor on which the thread is executing. + +## Remarks + + The debugger should call this method rather than the Win32 `SetThreadContext` function, because the thread may actually be in a "hijacked" state, in which its context has been temporarily changed. This method should be used only when a thread is in native code. Use [ICorDebugRegisterSet](icordebugregisterset-interface.md) for threads in managed code. You should never need to modify the context of a thread during an out-of-band (OOB) debug event. + + The data passed must be a context structure for the current platform. + + This method can corrupt the runtime if used improperly. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess-writememory-method.md b/docs/framework/unmanaged-api/debugging/icordebugprocess-writememory-method.md index 2d75120b7d4bd..0418a8a646c20 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess-writememory-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess-writememory-method.md @@ -2,61 +2,61 @@ description: "Learn more about: ICorDebugProcess::WriteMemory Method" title: "ICorDebugProcess::WriteMemory Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugProcess.WriteMemory" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugProcess::WriteMemory" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugProcess::WriteMemory method [.NET Framework debugging]" - "WriteMemory method [.NET Framework debugging]" ms.assetid: d5c07d86-045d-4391-893b-0bcd2959f90e -topic_type: +topic_type: - "apiref" --- # ICorDebugProcess::WriteMemory Method -Writes data to an area of memory in this process. - -## Syntax - -```cpp -HRESULT WriteMemory( - [in] CORDB_ADDRESS address, - [in] DWORD size, - [in, size_is(size)] BYTE buffer[], - [out] SIZE_T *written); -``` - -## Parameters - - `address` - [in] A `CORDB_ADDRESS` value that is the base address of the memory area to which data is written. Before data transfer occurs, the system verifies that the memory area of the specified size, beginning at the base address, is accessible for writing. If it is not accessible, the method fails. - - `size` - [in] The number of bytes to be written to the memory area. - - `buffer` - [in] A buffer that contains data to be written. - - `written` - [out] A pointer to a variable that receives the number of bytes written to the memory area in this process. If `written` is NULL, this parameter is ignored. - -## Remarks - - Data is automatically written behind any breakpoints. In .NET Framework version 2.0, native debuggers should not use this method to inject breakpoints into the instruction stream. Use [ICorDebugProcess2::SetUnmanagedBreakpoint](icordebugprocess2-setunmanagedbreakpoint-method.md) instead. - - The `WriteMemory` method should be used only outside of managed code. This method can corrupt the runtime if used improperly. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Writes data to an area of memory in this process. + +## Syntax + +```cpp +HRESULT WriteMemory( + [in] CORDB_ADDRESS address, + [in] DWORD size, + [in, size_is(size)] BYTE buffer[], + [out] SIZE_T *written); +``` + +## Parameters + + `address` + [in] A `CORDB_ADDRESS` value that is the base address of the memory area to which data is written. Before data transfer occurs, the system verifies that the memory area of the specified size, beginning at the base address, is accessible for writing. If it is not accessible, the method fails. + + `size` + [in] The number of bytes to be written to the memory area. + + `buffer` + [in] A buffer that contains data to be written. + + `written` + [out] A pointer to a variable that receives the number of bytes written to the memory area in this process. If `written` is NULL, this parameter is ignored. + +## Remarks + + Data is automatically written behind any breakpoints. In .NET Framework version 2.0, native debuggers should not use this method to inject breakpoints into the instruction stream. Use [ICorDebugProcess2::SetUnmanagedBreakpoint](icordebugprocess2-setunmanagedbreakpoint-method.md) instead. + + The `WriteMemory` method should be used only outside of managed code. This method can corrupt the runtime if used improperly. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess2-clearunmanagedbreakpoint-method.md b/docs/framework/unmanaged-api/debugging/icordebugprocess2-clearunmanagedbreakpoint-method.md index 469254b83c19b..bfb20e13b8ea4 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess2-clearunmanagedbreakpoint-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess2-clearunmanagedbreakpoint-method.md @@ -2,52 +2,52 @@ description: "Learn more about: ICorDebugProcess2::ClearUnmanagedBreakpoint Method" title: "ICorDebugProcess2::ClearUnmanagedBreakpoint Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugProcess2.ClearUnmanagedBreakpoint" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugProcess2::ClearUnmanagedBreakpoint" -helpviewer_keywords: +helpviewer_keywords: - "ClearUnmanagedBreakpoint method [.NET Framework debugging]" - "ICorDebugProcess2::ClearUnmanagedBreakpoint method [.NET Framework debugging]" ms.assetid: 12ed0fff-7f0e-4d7a-bb70-b3376371f36c -topic_type: +topic_type: - "apiref" --- # ICorDebugProcess2::ClearUnmanagedBreakpoint Method -Removes a previously set breakpoint at the given address. - -## Syntax - -```cpp -HRESULT ClearUnmanagedBreakpoint ( - [in] CORDB_ADDRESS address -); -``` - -## Parameters - - `address` - [in] A `CORDB_ADDRESS` value that specifies the address at which the breakpoint was set. - -## Remarks - - The specified breakpoint would have been previously set by an earlier call to [ICorDebugProcess2::SetUnmanagedBreakpoint](icordebugprocess2-setunmanagedbreakpoint-method.md). - - The `ClearUnmanagedBreakpoint` method can be called while the process being debugged is running. - - The `ClearUnmanagedBreakpoint` method returns a failure code if the debugger is attached in managed-only mode or if no breakpoint exists at the specified address. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Removes a previously set breakpoint at the given address. + +## Syntax + +```cpp +HRESULT ClearUnmanagedBreakpoint ( + [in] CORDB_ADDRESS address +); +``` + +## Parameters + + `address` + [in] A `CORDB_ADDRESS` value that specifies the address at which the breakpoint was set. + +## Remarks + + The specified breakpoint would have been previously set by an earlier call to [ICorDebugProcess2::SetUnmanagedBreakpoint](icordebugprocess2-setunmanagedbreakpoint-method.md). + + The `ClearUnmanagedBreakpoint` method can be called while the process being debugged is running. + + The `ClearUnmanagedBreakpoint` method returns a failure code if the debugger is attached in managed-only mode or if no breakpoint exists at the specified address. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess2-getdesiredngencompilerflags-method.md b/docs/framework/unmanaged-api/debugging/icordebugprocess2-getdesiredngencompilerflags-method.md index 2f7da9cb85258..33f2ae294cb05 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess2-getdesiredngencompilerflags-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess2-getdesiredngencompilerflags-method.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugProcess2::GetDesiredNGENCompilerFlags Method" title: "ICorDebugProcess2::GetDesiredNGENCompilerFlags Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugProcess2.GetDesiredNGENCompilerFlags" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugProcess2::GetDesiredNGENCompilerFlags" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugProcess2::GetDesiredNGENCompilerFlags method [.NET Framework debugging]" - "GetDesiredNGENCompilerFlags method [.NET Framework debugging]" ms.assetid: fc834580-3a90-4315-95d2-349b6bb7d059 -topic_type: +topic_type: - "apiref" --- # ICorDebugProcess2::GetDesiredNGENCompilerFlags Method -Gets the current compiler flag settings that the common language runtime (CLR) uses to select the correct precompiled (that is, native) image to be loaded into this process. - -## Syntax - -```cpp -HRESULT GetDesiredNGENCompilerFlags ( - [out] DWORD *pdwFlags -); -``` - -## Parameters - - `pdwFlags` - [out] A pointer to a bitwise combination of the [CorDebugJITCompilerFlags](cordebugjitcompilerflags-enumeration.md) enumeration values that are used to select the correct precompiled image to be loaded. - -## Remarks - - Use the [ICorDebugProcess2::SetDesiredNGENCompilerFlags](icordebugprocess2-setdesiredngencompilerflags-method.md) method to set the flags that the CLR will use to select the correct pre-compiled image to load. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets the current compiler flag settings that the common language runtime (CLR) uses to select the correct precompiled (that is, native) image to be loaded into this process. + +## Syntax + +```cpp +HRESULT GetDesiredNGENCompilerFlags ( + [out] DWORD *pdwFlags +); +``` + +## Parameters + + `pdwFlags` + [out] A pointer to a bitwise combination of the [CorDebugJITCompilerFlags](cordebugjitcompilerflags-enumeration.md) enumeration values that are used to select the correct precompiled image to be loaded. + +## Remarks + + Use the [ICorDebugProcess2::SetDesiredNGENCompilerFlags](icordebugprocess2-setdesiredngencompilerflags-method.md) method to set the flags that the CLR will use to select the correct pre-compiled image to load. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess2-getreferencevaluefromgchandle-method.md b/docs/framework/unmanaged-api/debugging/icordebugprocess2-getreferencevaluefromgchandle-method.md index fa5ce92a0ede7..00613d15dbaf0 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess2-getreferencevaluefromgchandle-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess2-getreferencevaluefromgchandle-method.md @@ -2,57 +2,57 @@ description: "Learn more about: ICorDebugProcess2::GetReferenceValueFromGCHandle Method" title: "ICorDebugProcess2::GetReferenceValueFromGCHandle Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugProcess2.GetReferenceValueFromGCHandle" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugProcess2::GetReferenceValueFromGCHandle" -helpviewer_keywords: +helpviewer_keywords: - "GetReferenceValueFromGCHandle method [.NET Framework debugging]" - "ICorDebugProcess2::GetReferenceValueFromGCHandle method [.NET Framework debugging]" ms.assetid: 8bdd7f4c-19f2-4ede-875e-603773e8c128 -topic_type: +topic_type: - "apiref" --- # ICorDebugProcess2::GetReferenceValueFromGCHandle Method -Gets a reference pointer to the specified managed object that has a garbage collection handle. - -## Syntax - -```cpp -HRESULT GetReferenceValueFromGCHandle ( - [in] UINT_PTR handle, - [out] ICorDebugReferenceValue **pOutValue -); -``` - -## Parameters - - `handle` - [in] A pointer to a managed object that has a garbage collection handle. This value is a object and can be retrieved from the for the managed object. - - `pOutValue` - [out] A pointer to the address of an ICorDebugReferenceValue object that represents a reference to the specified managed object. - -## Remarks - - Do not confuse the returned reference value with a garbage collection reference value. - - The returned reference behaves like a normal reference. It is disabled when code execution continues after a breakpoint. The lifetime of the target object is not affected by the lifetime of the reference value. - +Gets a reference pointer to the specified managed object that has a garbage collection handle. + +## Syntax + +```cpp +HRESULT GetReferenceValueFromGCHandle ( + [in] UINT_PTR handle, + [out] ICorDebugReferenceValue **pOutValue +); +``` + +## Parameters + + `handle` + [in] A pointer to a managed object that has a garbage collection handle. This value is a object and can be retrieved from the for the managed object. + + `pOutValue` + [out] A pointer to the address of an ICorDebugReferenceValue object that represents a reference to the specified managed object. + +## Remarks + + Do not confuse the returned reference value with a garbage collection reference value. + + The returned reference behaves like a normal reference. It is disabled when code execution continues after a breakpoint. The lifetime of the target object is not affected by the lifetime of the reference value. + > [!NOTE] -> The `GetReferenceValueFromGCHandle` method does not validate the handle. Therefore, the `GetReferenceValueFromGCHandle` method can potentially corrupt both the debugger and the code being debugged if an invalid handle is passed. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +> The `GetReferenceValueFromGCHandle` method does not validate the handle. Therefore, the `GetReferenceValueFromGCHandle` method can potentially corrupt both the debugger and the code being debugged if an invalid handle is passed. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess2-getthreadfortaskid-method.md b/docs/framework/unmanaged-api/debugging/icordebugprocess2-getthreadfortaskid-method.md index 68dbfc3baa722..93f69797d28a4 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess2-getthreadfortaskid-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess2-getthreadfortaskid-method.md @@ -2,52 +2,52 @@ description: "Learn more about: ICorDebugProcess2::GetThreadForTaskID Method" title: "ICorDebugProcess2::GetThreadForTaskID Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugProcess2.GetThreadForTaskID" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugProcess2::GetThreadForTaskID" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugProcess2::GetThreadForTaskId method [.NET Framework debugging]" - "GetThreadForTaskID method [.NET Framework debugging]" ms.assetid: 32d54a5b-8ad3-405b-a1b9-0936a3b49d1e -topic_type: +topic_type: - "apiref" --- # ICorDebugProcess2::GetThreadForTaskID Method -Gets the thread on which the task with the specified identifier is executing. - -## Syntax - -```cpp -HRESULT GetThreadForTaskID ( - [in] TASKID taskid, - [out] ICorDebugThread2 **ppThread -); -``` - -## Parameters - - `taskid` - [in] The identifier of the task. - - `ppThread` - [out] A pointer to the address of an ICorDebugThread2 object that represents the thread to be retrieved. - -## Remarks - - The host can set the task identifier by using the [ICLRTask::SetTaskIdentifier](../hosting/iclrtask-settaskidentifier-method.md) method. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets the thread on which the task with the specified identifier is executing. + +## Syntax + +```cpp +HRESULT GetThreadForTaskID ( + [in] TASKID taskid, + [out] ICorDebugThread2 **ppThread +); +``` + +## Parameters + + `taskid` + [in] The identifier of the task. + + `ppThread` + [out] A pointer to the address of an ICorDebugThread2 object that represents the thread to be retrieved. + +## Remarks + + The host can set the task identifier by using the [ICLRTask::SetTaskIdentifier](../hosting/iclrtask-settaskidentifier-method.md) method. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess2-interface1.md b/docs/framework/unmanaged-api/debugging/icordebugprocess2-interface1.md index 9835367c669bb..0cd9e5c4e130f 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess2-interface1.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess2-interface1.md @@ -2,51 +2,51 @@ description: "Learn more about: ICorDebugProcess2 Interface" title: "ICorDebugProcess2 Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugProcess2" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugProcess2" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugProcess2 interface [.NET Framework debugging]" ms.assetid: 73332138-5fea-441f-b893-61af87d45a42 -topic_type: +topic_type: - "apiref" --- # ICorDebugProcess2 Interface -A logical extension of the ICorDebugProcess interface, which represents a process running managed code. - -## Methods - -|Method|Description| -|------------|-----------------| -|[ClearUnmanagedBreakpoint Method](icordebugprocess2-clearunmanagedbreakpoint-method.md)|Removes a breakpoint at the specified offset that was set by an earlier call to `ICorDebugProcess2::SetUnmanagedBreakpoint`.| -|[GetDesiredNGENCompilerFlags Method](icordebugprocess2-getdesiredngencompilerflags-method.md)|Gets the flags that must be set for the common language runtime (CLR) to load the image into the process referenced by this `ICorDebugProcess2`.| -|[GetReferenceValueFromGCHandle Method](icordebugprocess2-getreferencevaluefromgchandle-method.md)|Gets a reference pointer to the specified managed object that has a garbage collection handle.| -|[GetThreadForTaskID Method](icordebugprocess2-getthreadfortaskid-method.md)|Gets the thread upon which the task with the specified identifier is executing.| -|[GetVersion Method](icordebugprocess2-getversion-method.md)|Gets the version of the CLR upon which the process being debugged is running.| -|[SetDesiredNGENCompilerFlags Method](icordebugprocess2-setdesiredngencompilerflags-method.md)|Sets the flags that are required for the just-in-time (JIT) compiler to load an image into the process being debugged.| -|[SetUnmanagedBreakpoint Method](icordebugprocess2-setunmanagedbreakpoint-method.md)|Sets an unmanaged breakpoint at the specified native image offset.| - -## Remarks - +A logical extension of the ICorDebugProcess interface, which represents a process running managed code. + +## Methods + +|Method|Description| +|------------|-----------------| +|[ClearUnmanagedBreakpoint Method](icordebugprocess2-clearunmanagedbreakpoint-method.md)|Removes a breakpoint at the specified offset that was set by an earlier call to `ICorDebugProcess2::SetUnmanagedBreakpoint`.| +|[GetDesiredNGENCompilerFlags Method](icordebugprocess2-getdesiredngencompilerflags-method.md)|Gets the flags that must be set for the common language runtime (CLR) to load the image into the process referenced by this `ICorDebugProcess2`.| +|[GetReferenceValueFromGCHandle Method](icordebugprocess2-getreferencevaluefromgchandle-method.md)|Gets a reference pointer to the specified managed object that has a garbage collection handle.| +|[GetThreadForTaskID Method](icordebugprocess2-getthreadfortaskid-method.md)|Gets the thread upon which the task with the specified identifier is executing.| +|[GetVersion Method](icordebugprocess2-getversion-method.md)|Gets the version of the CLR upon which the process being debugged is running.| +|[SetDesiredNGENCompilerFlags Method](icordebugprocess2-setdesiredngencompilerflags-method.md)|Sets the flags that are required for the just-in-time (JIT) compiler to load an image into the process being debugged.| +|[SetUnmanagedBreakpoint Method](icordebugprocess2-setunmanagedbreakpoint-method.md)|Sets an unmanaged breakpoint at the specified native image offset.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess2-setunmanagedbreakpoint-method.md b/docs/framework/unmanaged-api/debugging/icordebugprocess2-setunmanagedbreakpoint-method.md index 30eb9231cf76b..ac091b421f17a 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess2-setunmanagedbreakpoint-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess2-setunmanagedbreakpoint-method.md @@ -2,61 +2,61 @@ description: "Learn more about: ICorDebugProcess2::SetUnmanagedBreakpoint Method" title: "ICorDebugProcess2::SetUnmanagedBreakpoint Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugProcess2.SetUnmanagedBreakpoint" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugProcess2::SetUnmanagedBreakpoint" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugProcess2::SetUnmanagedBreakpoint method [.NET Framework debugging]" - "SetUnmanagedBreakpoint method [.NET Framework debugging]" ms.assetid: 93829d15-d942-4e2d-b7a4-dfc9d7fb96be -topic_type: +topic_type: - "apiref" --- # ICorDebugProcess2::SetUnmanagedBreakpoint Method -Sets an unmanaged breakpoint at the specified native image offset. - -## Syntax - -```cpp -HRESULT SetUnmanagedBreakpoint ( - [in] CORDB_ADDRESS address, - [in] ULONG32 bufsize, +Sets an unmanaged breakpoint at the specified native image offset. + +## Syntax + +```cpp +HRESULT SetUnmanagedBreakpoint ( + [in] CORDB_ADDRESS address, + [in] ULONG32 bufsize, [out, size_is(bufsize), length_is(*bufLen)] - BYTE buffer[], - [out] ULONG32 *bufLen -); -``` - -## Parameters - - `address` - [in] A `CORDB_ADDRESS` object that specifies the native image offset. - - `bufsize` - [in] The size, in bytes, of the `buffer` array. - - `buffer` - [out] An array that contains the opcode that is replaced by the breakpoint. - - `bufLen` - [out] A pointer to the number of bytes returned in the `buffer` array. - -## Remarks - - If the native image offset is within the common language runtime (CLR), the breakpoint will be ignored. This allows the CLR to avoid dispatching an out-of-band breakpoint, when the breakpoint is set by the debugger. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - + BYTE buffer[], + [out] ULONG32 *bufLen +); +``` + +## Parameters + + `address` + [in] A `CORDB_ADDRESS` object that specifies the native image offset. + + `bufsize` + [in] The size, in bytes, of the `buffer` array. + + `buffer` + [out] An array that contains the opcode that is replaced by the breakpoint. + + `bufLen` + [out] A pointer to the number of bytes returned in the `buffer` array. + +## Remarks + + If the native image offset is within the common language runtime (CLR), the breakpoint will be ignored. This allows the CLR to avoid dispatching an out-of-band breakpoint, when the breakpoint is set by the debugger. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess3-interface.md b/docs/framework/unmanaged-api/debugging/icordebugprocess3-interface.md index 48bf374ec9477..58a76dcbd5402 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess3-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess3-interface.md @@ -2,47 +2,47 @@ description: "Learn more about: ICorDebugProcess3 Interface" title: "ICorDebugProcess3 Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugProcess3" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugProcess3" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugProcess3 interface [.NET Framework debugging]" ms.assetid: ced9c82e-d7b0-4806-a151-98b6611d3097 -topic_type: +topic_type: - "apiref" --- # ICorDebugProcess3 Interface -Controls custom debugger notifications. - -## Methods - -|Method|Description| -|------------|-----------------| -|[SetEnableCustomNotification Method](icordebugprocess3-setenablecustomnotification-method.md)|Enables and disables custom debugger notifications of the specified type.| - -## Remarks - - This interface logically extends the ICorDebugProcess and ICorDebugProcess2 interfaces. - +Controls custom debugger notifications. + +## Methods + +|Method|Description| +|------------|-----------------| +|[SetEnableCustomNotification Method](icordebugprocess3-setenablecustomnotification-method.md)|Enables and disables custom debugger notifications of the specified type.| + +## Remarks + + This interface logically extends the ICorDebugProcess and ICorDebugProcess2 interfaces. + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess3-setenablecustomnotification-method.md b/docs/framework/unmanaged-api/debugging/icordebugprocess3-setenablecustomnotification-method.md index 43f3c3814ef8c..3d44bdb38a24a 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess3-setenablecustomnotification-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess3-setenablecustomnotification-method.md @@ -2,56 +2,56 @@ description: "Learn more about: ICorDebugProcess3::SetEnableCustomNotification Method" title: "ICorDebugProcess3::SetEnableCustomNotification Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugProcess3.SetEnableCustomNotification Method" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugProcess3::SetEnableCustomNotification" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugProcess3::SetEnableCustomNotification method [.NET Framework debugging]" - "SetEnableCustomNotification method [.NET Framework debugging]" ms.assetid: afd88ee9-2589-4461-a75a-9b6fe55a2525 -topic_type: +topic_type: - "apiref" --- # ICorDebugProcess3::SetEnableCustomNotification Method -Enables and disables custom debugger notifications of the specified type. - -## Syntax - -```cpp -HRESULT SetEnableCustomNotification(ICorDebugClass * pClass, - BOOL fEnable); -``` - -## Parameters - - `pClass` - [in] The type that specifies custom debugger notifications. - - `fEnable` - [in] `true` to enable custom debugger notifications; `false` to disable notifications. The default value is `false`. - -## Remarks - - When `fEnable` is set to `true`, calls to the method trigger an [ICorDebugManagedCallback3::CustomNotification](icordebugmanagedcallback3-customnotification-method.md) callback. Notifications are disabled by default; therefore, the debugger must specify any notification types it knows about and wants to handle. Because the [ICorDebugClass](icordebug-interface.md) class is scoped by application domain, the debugger must call `SetEnableCustomNotification` for every application domain in the process if it wants to receive the notification across the entire process. - - Starting with the .NET Framework 4, the only supported notification is a cross-thread dependency notification. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +Enables and disables custom debugger notifications of the specified type. + +## Syntax + +```cpp +HRESULT SetEnableCustomNotification(ICorDebugClass * pClass, + BOOL fEnable); +``` + +## Parameters + + `pClass` + [in] The type that specifies custom debugger notifications. + + `fEnable` + [in] `true` to enable custom debugger notifications; `false` to disable notifications. The default value is `false`. + +## Remarks + + When `fEnable` is set to `true`, calls to the method trigger an [ICorDebugManagedCallback3::CustomNotification](icordebugmanagedcallback3-customnotification-method.md) callback. Notifications are disabled by default; therefore, the debugger must specify any notification types it knows about and wants to handle. Because the [ICorDebugClass](icordebug-interface.md) class is scoped by application domain, the debugger must call `SetEnableCustomNotification` for every application domain in the process if it wants to receive the notification across the entire process. + + Starting with the .NET Framework 4, the only supported notification is a cross-thread dependency notification. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [ICorDebugProcess3 Interface](icordebugprocess3-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess5-enablengenpolicy-method.md b/docs/framework/unmanaged-api/debugging/icordebugprocess5-enablengenpolicy-method.md index 472896c5350df..7ba7197567705 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess5-enablengenpolicy-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess5-enablengenpolicy-method.md @@ -2,54 +2,54 @@ description: "Learn more about: ICorDebugProcess5::EnableNGENPolicy Method" title: "ICorDebugProcess5::EnableNGENPolicy Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugProcess5::EnableNGenPolicy" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugProcess5::EnableNGENPolicy" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugProcess5::EnableNGENPolicy method [.NET Framework debugging]" - "EnableNGENPolicy method, ICorDebugProcess5 interface [.NET Framework debugging]" ms.assetid: 3b8e15ca-3c72-4685-a937-da4c739cb9e9 -topic_type: +topic_type: - "apiref" --- # ICorDebugProcess5::EnableNGENPolicy Method -Sets a value that determines how an application loads native images while running under a managed debugger. - -## Syntax - -```cpp -HRESULT EnableNGENPolicy( - [in] CorDebugNGENPolicy ePolicy -); -``` - -## Parameters - - `ePolicy` - [in] A [CorDebugNGenPolicy](cordebugngenpolicy-enumeration.md) constant that determines how an application loads native images while running under a managed debugger. - -## Remarks - - If the policy is set successfully, the method returns `S_OK`. If `ePolicy` is outside the range of the enumerated values defined by [CorDebugNGenPolicy](cordebugngenpolicy-enumeration.md), the method returns `E_INVALIDARG` and the method call has no effect. If the policy of the Native Image Generator (Ngen.exe) cannot be updated, the method returns `E_FAIL`. - - The `ICorDebugProcess5::EnableNGenPolicy` method can be called at any time during the lifetime of the process. The policy is in effect for any modules that are loaded after the policy is set. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - +Sets a value that determines how an application loads native images while running under a managed debugger. + +## Syntax + +```cpp +HRESULT EnableNGENPolicy( + [in] CorDebugNGENPolicy ePolicy +); +``` + +## Parameters + + `ePolicy` + [in] A [CorDebugNGenPolicy](cordebugngenpolicy-enumeration.md) constant that determines how an application loads native images while running under a managed debugger. + +## Remarks + + If the policy is set successfully, the method returns `S_OK`. If `ePolicy` is outside the range of the enumerated values defined by [CorDebugNGenPolicy](cordebugngenpolicy-enumeration.md), the method returns `E_INVALIDARG` and the method call has no effect. If the policy of the Native Image Generator (Ngen.exe) cannot be updated, the method returns `E_FAIL`. + + The `ICorDebugProcess5::EnableNGenPolicy` method can be called at any time during the lifetime of the process. The policy is in effect for any modules that are loaded after the policy is set. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [ICorDebugProcess5 Interface](icordebugprocess5-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess5-enumerategcreferences-method.md b/docs/framework/unmanaged-api/debugging/icordebugprocess5-enumerategcreferences-method.md index 09a4139dce222..13645698d8133 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess5-enumerategcreferences-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess5-enumerategcreferences-method.md @@ -2,56 +2,56 @@ description: "Learn more about: ICorDebugProcess5::EnumerateGCReferences Method" title: "ICorDebugProcess5::EnumerateGCReferences Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugProcess5.EnumerateGCReferences" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugProcess5::EnumerateGCReferences" -helpviewer_keywords: +helpviewer_keywords: - "EnumerateGCReferences method, ICorDebugProcess5 interface [.NET Framework debugging]" - "ICorDebugProcess5::EnumerateGCReferences method [.NET Framework debugging]" ms.assetid: 86c397c3-81d8-463e-a248-3cbe06c44d9d -topic_type: +topic_type: - "apiref" --- # ICorDebugProcess5::EnumerateGCReferences Method -Gets an enumerator for all objects that are to be garbage-collected in a process. - -## Syntax - -```cpp -HRESULT EnumerateGCReferences( +Gets an enumerator for all objects that are to be garbage-collected in a process. + +## Syntax + +```cpp +HRESULT EnumerateGCReferences( [in] Bool enumerateWeakReferences, - [out] ICorDebugGCReferenceEnum **ppEnum -); -``` - -## Parameters - - `enumerateWeakReferences` - [in] A Boolean value that indicates whether weak references are also to be enumerated. If `enumerateWeakReferences` is `true`, the `ppEnum` enumerator includes both strong references and weak references. If `enumerateWeakReferences` is `false`, the enumerator includes only strong references. - - `ppEnum` - [out] A pointer to the address of an [ICorDebugGCReferenceEnum](icordebuggcreferenceenum-interface.md) that is an enumerator for the objects to be garbage-collected. - -## Remarks - - This method provides a way to determine the full rooting chain for any managed object in a process and can be used to determine why an object is still alive. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - + [out] ICorDebugGCReferenceEnum **ppEnum +); +``` + +## Parameters + + `enumerateWeakReferences` + [in] A Boolean value that indicates whether weak references are also to be enumerated. If `enumerateWeakReferences` is `true`, the `ppEnum` enumerator includes both strong references and weak references. If `enumerateWeakReferences` is `false`, the enumerator includes only strong references. + + `ppEnum` + [out] A pointer to the address of an [ICorDebugGCReferenceEnum](icordebuggcreferenceenum-interface.md) that is an enumerator for the objects to be garbage-collected. + +## Remarks + + This method provides a way to determine the full rooting chain for any managed object in a process and can be used to determine why an object is still alive. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [ICorDebugProcess5 Interface](icordebugprocess5-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess5-enumeratehandles-method.md b/docs/framework/unmanaged-api/debugging/icordebugprocess5-enumeratehandles-method.md index 683ac04495ef6..f28a06614f2f7 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess5-enumeratehandles-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess5-enumeratehandles-method.md @@ -2,62 +2,62 @@ description: "Learn more about: ICorDebugProcess5::EnumerateHandles Method" title: "ICorDebugProcess5::EnumerateHandles Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugProcess5.EnumerateHandles" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugProcess5::EnumerateHandles" -helpviewer_keywords: +helpviewer_keywords: - "EnumerateHandles method, ICorDebugProcess5 interface [.NET Framework debugging]" - "ICorDebugProcess5::EnumerateHandles method [.NET Framework debugging]" ms.assetid: 7d7fa796-0dc6-4ee8-9d56-40166246d91d -topic_type: +topic_type: - "apiref" --- # ICorDebugProcess5::EnumerateHandles Method -Gets an enumerator for object handles in a process. - -## Syntax - -```cpp -HRESULT EnumerateHandles( [in] CorGCReferenceType types, - [out] ICorDebugGCReferenceEnum **ppEnum); -``` - -## Parameters - - `types` - [in] A bitwise combination of [CorGCReferenceType](corgcreferencetype-enumeration.md) values that specifies the type of handles to include in the collection. - - `ppENum` - [out] A pointer to the address of an [ICorDebugGCReferenceEnum](icordebuggcreferenceenum-interface.md) that is an enumerator for the objects to be garbage-collected. - -## Remarks - - `EnumerateHandles` is a helper function that supports inspection of the handle table. It is similar to the [ICorDebugProcess5::EnumerateGCReferences](icordebugprocess5-enumerategcreferences-method.md) method, except that rather than populating an [ICorDebugGCReferenceEnum](icordebuggcreferenceenum-interface.md) collection with all objects to be garbage-collected, it includes only objects that have handles from the handle table. - - The `types` parameter specifies the handle types to include in the collection. `types` can be any of the following three members of the [CorGCReferenceType](corgcreferencetype-enumeration.md) enumeration: - -- `CorHandleStrongOnly` (handles to strong references only). - -- `CorHandleWeakOnly` (handles to weak references only). - -- `CorHandleAll` (all handles). - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - +Gets an enumerator for object handles in a process. + +## Syntax + +```cpp +HRESULT EnumerateHandles( [in] CorGCReferenceType types, + [out] ICorDebugGCReferenceEnum **ppEnum); +``` + +## Parameters + + `types` + [in] A bitwise combination of [CorGCReferenceType](corgcreferencetype-enumeration.md) values that specifies the type of handles to include in the collection. + + `ppENum` + [out] A pointer to the address of an [ICorDebugGCReferenceEnum](icordebuggcreferenceenum-interface.md) that is an enumerator for the objects to be garbage-collected. + +## Remarks + + `EnumerateHandles` is a helper function that supports inspection of the handle table. It is similar to the [ICorDebugProcess5::EnumerateGCReferences](icordebugprocess5-enumerategcreferences-method.md) method, except that rather than populating an [ICorDebugGCReferenceEnum](icordebuggcreferenceenum-interface.md) collection with all objects to be garbage-collected, it includes only objects that have handles from the handle table. + + The `types` parameter specifies the handle types to include in the collection. `types` can be any of the following three members of the [CorGCReferenceType](corgcreferencetype-enumeration.md) enumeration: + +- `CorHandleStrongOnly` (handles to strong references only). + +- `CorHandleWeakOnly` (handles to weak references only). + +- `CorHandleAll` (all handles). + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [Debugging Structures](debugging-structures.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess5-enumerateheap-method.md b/docs/framework/unmanaged-api/debugging/icordebugprocess5-enumerateheap-method.md index 641c89a1eb9f8..c2348f4b495de 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess5-enumerateheap-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess5-enumerateheap-method.md @@ -2,54 +2,54 @@ description: "Learn more about: ICorDebugProcess5::EnumerateHeap Method" title: "ICorDebugProcess5::EnumerateHeap Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugProcess5.EnumerateHeap" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugProcess5::EnumerateHeap" -helpviewer_keywords: +helpviewer_keywords: - "EnumerateHeap method, ICorDebugProcess5 interface [.NET Framework debugging]" - "ICorDebugProcess5::EnumerateHeap method [.NET Framework debugging]" ms.assetid: b0192104-6073-4089-a4df-dc29ee033074 -topic_type: +topic_type: - "apiref" --- # ICorDebugProcess5::EnumerateHeap Method -Gets an enumerator for the objects on the managed heap. - -## Syntax - -```cpp -HRESULT EnumerateHeap( - [out] ICorDebugHeapEnum **ppObjects -); -``` - -## Parameters - - `ppObject` - [out] A pointer to the address of an [ICorDebugHeapEnum](icordebugheapenum-interface.md) interface object that is an enumerator for the objects that reside on the managed heap. - -## Remarks - - Before calling the `ICorDebugProcess5::EnumerateHeap` method, you should call the [ICorDebugProcess5::GetGCHeapInformation](icordebugprocess5-getgcheapinformation-method.md) method and examine the value of the `areGCStructuresValid` field of the returned [COR_HEAPINFO](cor-heapinfo-structure.md) object to ensure that the garbage collection heap in its current state is enumerable. In addition, the `ICorDebugProcess5::EnumerateHeap` returns `E_FAIL` if you attach too early in the lifetime of the process, before memory for the managed heap is allocated. - - The [ICorDebugHeapEnum](icordebugheapenum-interface.md) interface object is a standard enumerator derived from the ICorDebugEnum interface that allows you to enumerate [COR_HEAPOBJECT](cor-heapobject-structure.md) objects. This method populates the [ICorDebugHeapEnum](icordebugheapenum-interface.md) collection object with [COR_HEAPOBJECT](cor-heapobject-structure.md) instances that provide information about all objects. The collection may also include [COR_HEAPOBJECT](cor-heapobject-structure.md) instances that provide information about objects that are not rooted by any object but have not yet been collected by the garbage collector. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - +Gets an enumerator for the objects on the managed heap. + +## Syntax + +```cpp +HRESULT EnumerateHeap( + [out] ICorDebugHeapEnum **ppObjects +); +``` + +## Parameters + + `ppObject` + [out] A pointer to the address of an [ICorDebugHeapEnum](icordebugheapenum-interface.md) interface object that is an enumerator for the objects that reside on the managed heap. + +## Remarks + + Before calling the `ICorDebugProcess5::EnumerateHeap` method, you should call the [ICorDebugProcess5::GetGCHeapInformation](icordebugprocess5-getgcheapinformation-method.md) method and examine the value of the `areGCStructuresValid` field of the returned [COR_HEAPINFO](cor-heapinfo-structure.md) object to ensure that the garbage collection heap in its current state is enumerable. In addition, the `ICorDebugProcess5::EnumerateHeap` returns `E_FAIL` if you attach too early in the lifetime of the process, before memory for the managed heap is allocated. + + The [ICorDebugHeapEnum](icordebugheapenum-interface.md) interface object is a standard enumerator derived from the ICorDebugEnum interface that allows you to enumerate [COR_HEAPOBJECT](cor-heapobject-structure.md) objects. This method populates the [ICorDebugHeapEnum](icordebugheapenum-interface.md) collection object with [COR_HEAPOBJECT](cor-heapobject-structure.md) instances that provide information about all objects. The collection may also include [COR_HEAPOBJECT](cor-heapobject-structure.md) instances that provide information about objects that are not rooted by any object but have not yet been collected by the garbage collector. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [ICorDebugProcess5 Interface](icordebugprocess5-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess5-enumerateheapregions-method.md b/docs/framework/unmanaged-api/debugging/icordebugprocess5-enumerateheapregions-method.md index f8ef2e4b55e87..688a487aba61b 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess5-enumerateheapregions-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess5-enumerateheapregions-method.md @@ -2,56 +2,56 @@ description: "Learn more about: ICorDebugProcess5::EnumerateHeapRegions Method" title: "ICorDebugProcess5::EnumerateHeapRegions Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugProcess5.EnumerateHeapRegions" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugProcess5::EnumerateHeapRegions" -helpviewer_keywords: +helpviewer_keywords: - "EnumerateHeapRegions method, ICorDebugProcess5 interface [.NET Framework debugging]" - "ICorDebugProcess5::EnumerateHeapRegions method [.NET Framework debugging]" ms.assetid: b1edba68-9c36-4f69-be9f-678ce0b33480 -topic_type: +topic_type: - "apiref" --- # ICorDebugProcess5::EnumerateHeapRegions Method -Gets an enumerator for the memory ranges of the managed heap. - -## Syntax - -```cpp -HRESULT EnumerateHeapRegions( - [out] ICorDebugHeapSegmentEnum **ppRegions -); -``` - -## Parameters - - `ppRegions` - [out] A pointer to the address of an [ICorDebugHeapSegmentEnum](icordebugheapsegmentenum-interface.md) interface object that is an enumerator for the ranges of memory in which objects reside in the managed heap. - -## Remarks - - Before calling the `ICorDebugProcess5::EnumerateHeapRegions` method, you should call the [ICorDebugProcess5::GetGCHeapInformation](icordebugprocess5-getgcheapinformation-method.md) method and examine the value of the `areGCStructuresValid` field of the returned [COR_HEAPINFO](cor-heapinfo-structure.md) object to ensure that the garbage collection heap in its current state is enumerable. In addition, the `ICorDebugProcess5::EnumerateHeapRegions` method returns `E_FAIL` if you attach too early in the lifetime of the process, before memory regions are created. - - This method is guaranteed to enumerate all memory regions that may contain managed objects, but it does not guarantee that managed objects actually reside in those regions. The [ICorDebugHeapSegmentEnum](icordebugheapsegmentenum-interface.md) collection object may include empty or reserved memory regions. - - The [ICorDebugHeapSegmentEnum](icordebugheapsegmentenum-interface.md) interface object is a standard enumerator derived from the ICorDebugEnum interface that allows you to enumerate [COR_SEGMENT](cor-segment-structure.md) objects. Each [COR_SEGMENT](cor-segment-structure.md) object provides information about the memory range of a particular segment, along with the generation of the objects in that segment. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - +Gets an enumerator for the memory ranges of the managed heap. + +## Syntax + +```cpp +HRESULT EnumerateHeapRegions( + [out] ICorDebugHeapSegmentEnum **ppRegions +); +``` + +## Parameters + + `ppRegions` + [out] A pointer to the address of an [ICorDebugHeapSegmentEnum](icordebugheapsegmentenum-interface.md) interface object that is an enumerator for the ranges of memory in which objects reside in the managed heap. + +## Remarks + + Before calling the `ICorDebugProcess5::EnumerateHeapRegions` method, you should call the [ICorDebugProcess5::GetGCHeapInformation](icordebugprocess5-getgcheapinformation-method.md) method and examine the value of the `areGCStructuresValid` field of the returned [COR_HEAPINFO](cor-heapinfo-structure.md) object to ensure that the garbage collection heap in its current state is enumerable. In addition, the `ICorDebugProcess5::EnumerateHeapRegions` method returns `E_FAIL` if you attach too early in the lifetime of the process, before memory regions are created. + + This method is guaranteed to enumerate all memory regions that may contain managed objects, but it does not guarantee that managed objects actually reside in those regions. The [ICorDebugHeapSegmentEnum](icordebugheapsegmentenum-interface.md) collection object may include empty or reserved memory regions. + + The [ICorDebugHeapSegmentEnum](icordebugheapsegmentenum-interface.md) interface object is a standard enumerator derived from the ICorDebugEnum interface that allows you to enumerate [COR_SEGMENT](cor-segment-structure.md) objects. Each [COR_SEGMENT](cor-segment-structure.md) object provides information about the memory range of a particular segment, along with the generation of the objects in that segment. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [ICorDebugProcess5 Interface](icordebugprocess5-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess5-getarraylayout-method.md b/docs/framework/unmanaged-api/debugging/icordebugprocess5-getarraylayout-method.md index 290a0d9f844bc..2e5d57249a900 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess5-getarraylayout-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess5-getarraylayout-method.md @@ -2,51 +2,51 @@ description: "Learn more about: ICorDebugProcess5::GetArrayLayout Method" title: "ICorDebugProcess5::GetArrayLayout Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugProcess5.GetArrayLayout" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugProcess5::GetArrayLayout" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugProcess5::GetArrayLayout method [.NET Framework debugging]" - "GetArrayLayout method, ICorDebugProcess5 interface [.NET Framework debugging]" ms.assetid: 9a7393b9-9735-43c6-8616-afb103c432fd -topic_type: +topic_type: - "apiref" --- # ICorDebugProcess5::GetArrayLayout Method -Provides information about the layout of array types. - -## Syntax - -```cpp -HRESULT GetArrayLayout( [in] COR_TYPEID id, [out] COR_ARRAY_LAYOUT *pLayout); -``` - -## Parameters - - `id` - [in] A [COR_TYPEID](cor-typeid-structure.md) token that specifies the array whose layout is desired. - - `pLayout` - [out] A pointer to a [COR_ARRAY_LAYOUT](cor-array-layout-structure.md) structure that contains information about the layout of the array in memory. - -## Remarks - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - +Provides information about the layout of array types. + +## Syntax + +```cpp +HRESULT GetArrayLayout( [in] COR_TYPEID id, [out] COR_ARRAY_LAYOUT *pLayout); +``` + +## Parameters + + `id` + [in] A [COR_TYPEID](cor-typeid-structure.md) token that specifies the array whose layout is desired. + + `pLayout` + [out] A pointer to a [COR_ARRAY_LAYOUT](cor-array-layout-structure.md) structure that contains information about the layout of the array in memory. + +## Remarks + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [ICorDebugProcess5 Interface](icordebugprocess5-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess5-getgcheapinformation-method.md b/docs/framework/unmanaged-api/debugging/icordebugprocess5-getgcheapinformation-method.md index d7af23f1d7376..43fc0804da74a 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess5-getgcheapinformation-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess5-getgcheapinformation-method.md @@ -2,52 +2,52 @@ description: "Learn more about: ICorDebugProcess5::GetGCHeapInformation Method" title: "ICorDebugProcess5::GetGCHeapInformation Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugProcess5.GetGCHeapInformation" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugProcess5::GetGCHeapInformation" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugProcess5::GetGCHeapInformation method [.NET Framework debugging]" - "GetGCHeapInformation method, ICorDebugProcess5 interface [.NET Framework debugging]" ms.assetid: b9538ceb-230a-4079-9cb2-903dbf5c1848 -topic_type: +topic_type: - "apiref" --- # ICorDebugProcess5::GetGCHeapInformation Method -Provides general information about the garbage collection heap, including whether it is currently enumerable. - -## Syntax - -```cpp -HRESULT GetGCHeapInformation( - [out] COR_HEAPINFO *pHeapInfo -); -``` - -## Parameters - - `pHeapInfo` - [out] A pointer to a [COR_HEAPINFO](cor-heapinfo-structure.md) value that provides general information about the garbage collection heap. - -## Remarks - - The `ICorDebugProcess5::GetGCHeapInformation` method must be called before enumerating the heap or individual heap regions to ensure that the garbage collection structures in the process are currently valid. The garbage collection heap cannot be walked while a collection is in progress. Otherwise, the enumeration may capture garbage collection structures that are invalid. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - +Provides general information about the garbage collection heap, including whether it is currently enumerable. + +## Syntax + +```cpp +HRESULT GetGCHeapInformation( + [out] COR_HEAPINFO *pHeapInfo +); +``` + +## Parameters + + `pHeapInfo` + [out] A pointer to a [COR_HEAPINFO](cor-heapinfo-structure.md) value that provides general information about the garbage collection heap. + +## Remarks + + The `ICorDebugProcess5::GetGCHeapInformation` method must be called before enumerating the heap or individual heap regions to ensure that the garbage collection structures in the process are currently valid. The garbage collection heap cannot be walked while a collection is in progress. Otherwise, the enumeration may capture garbage collection structures that are invalid. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [ICorDebugProcess5 Interface](icordebugprocess5-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess5-getobject-method.md b/docs/framework/unmanaged-api/debugging/icordebugprocess5-getobject-method.md index bf335689dbf50..ac5260213585e 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess5-getobject-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess5-getobject-method.md @@ -2,56 +2,56 @@ description: "Learn more about: ICorDebugProcess5::GetObject Method" title: "ICorDebugProcess5::GetObject Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugProcess5.GetObject" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugProcess5::GetObject" -helpviewer_keywords: +helpviewer_keywords: - "GetObject method, ICorDebugProcess5 interface [.NET Framework debugging]" - "ICorDebugProcess5::GetObject method [.NET Framework debugging]" ms.assetid: c8111502-5a20-447f-9dc2-76e8acd7ed5a -topic_type: +topic_type: - "apiref" --- # ICorDebugProcess5::GetObject Method -Converts an object address to an "ICorDebugObjectValue" object. - -## Syntax - -```cpp -HRESULT GetObject( +Converts an object address to an "ICorDebugObjectValue" object. + +## Syntax + +```cpp +HRESULT GetObject( [in] CORDB_ADDRESS addr, - [out] ICorDebugObjectValue **ppObject -); -``` - -## Parameters - - `addr` - [in] The object address. - - `ppObject` - [out] A pointer to the address of an "ICorDebugObjectValue" object. - -## Remarks - - If `addr` does not point to a valid managed object, the `GetObject` method returns `E_FAIL`. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - + [out] ICorDebugObjectValue **ppObject +); +``` + +## Parameters + + `addr` + [in] The object address. + + `ppObject` + [out] A pointer to the address of an "ICorDebugObjectValue" object. + +## Remarks + + If `addr` does not point to a valid managed object, the `GetObject` method returns `E_FAIL`. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [ICorDebugProcess5 Interface](icordebugprocess5-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess5-gettypefields-method.md b/docs/framework/unmanaged-api/debugging/icordebugprocess5-gettypefields-method.md index 02e28df87cbbc..01cfbb87dffa1 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess5-gettypefields-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess5-gettypefields-method.md @@ -2,64 +2,64 @@ description: "Learn more about: ICorDebugProcess5::GetTypeFields Method" title: "ICorDebugProcess5::GetTypeFields Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugProcess5.GetTypeFields" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugProcess5::GetTypeFields" -helpviewer_keywords: +helpviewer_keywords: - "GetTypeFields method, ICorDebugProcess5 interface [.NET Framework debugging]" - "ICorDebugProcess5::GetTypeFields method [.NET Framework debugging]" ms.assetid: 6a0ad3ee-dacb-47e9-abae-4536bcc4804b -topic_type: +topic_type: - "apiref" --- # ICorDebugProcess5::GetTypeFields Method -Provides information about the fields that belong to a type. - -## Syntax - -```cpp -HRESULT GetTypeFields( - [in] COR_TYPEID id, - [in] ULONG32 celt, +Provides information about the fields that belong to a type. + +## Syntax + +```cpp +HRESULT GetTypeFields( + [in] COR_TYPEID id, + [in] ULONG32 celt, [out] COR_FIELD fields[], - [out] ULONG32 *pceltNeeded -); -``` - -## Parameters - - `id` - [in] The identifier of the type whose field information is retrieved. - - `celt` - [in] The number of [COR_FIELD](cor-field-structure.md) objects whose field information is to be retrieved. - - `fields` - [out] An array of [COR_FIELD](cor-field-structure.md) objects that provide information about the fields that belong to the type. - - `pceltNeeded` - [out] A pointer to the number of [COR_FIELD](cor-field-structure.md) objects included in `fields`. - -## Remarks - - The `celt` parameter, which specifies the number of fields whose field information the method uses to populate `fields`, should correspond to the value of the `COR_TYPE_LAYOUT::numFields` field. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - + [out] ULONG32 *pceltNeeded +); +``` + +## Parameters + + `id` + [in] The identifier of the type whose field information is retrieved. + + `celt` + [in] The number of [COR_FIELD](cor-field-structure.md) objects whose field information is to be retrieved. + + `fields` + [out] An array of [COR_FIELD](cor-field-structure.md) objects that provide information about the fields that belong to the type. + + `pceltNeeded` + [out] A pointer to the number of [COR_FIELD](cor-field-structure.md) objects included in `fields`. + +## Remarks + + The `celt` parameter, which specifies the number of fields whose field information the method uses to populate `fields`, should correspond to the value of the `COR_TYPE_LAYOUT::numFields` field. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [ICorDebugProcess5 Interface](icordebugprocess5-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess5-gettypefortypeid-method.md b/docs/framework/unmanaged-api/debugging/icordebugprocess5-gettypefortypeid-method.md index 0c7b1aaf230d0..cb9599d970444 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess5-gettypefortypeid-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess5-gettypefortypeid-method.md @@ -2,56 +2,56 @@ description: "Learn more about: ICorDebugProcess5::GetTypeForTypeID Method" title: "ICorDebugProcess5::GetTypeForTypeID Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugProcess5.GetTypeForTypeID" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugProcess5::GetTypeForTypeID" -helpviewer_keywords: +helpviewer_keywords: - "GetTypeForTypeID method, ICorDebugProcess5 interface [.NET Framework debugging]" - "ICorDebugProcess5::GetTypeForTypeID method [.NET Framework debugging]" ms.assetid: e0eed5a8-fa6d-4818-bd00-7babcea30325 -topic_type: +topic_type: - "apiref" --- # ICorDebugProcess5::GetTypeForTypeID Method -Converts a type identifier to an ICorDebugType value. - -## Syntax - -```cpp -HRESULT GetTypeForTypeID( - [in] COR_TYPEID id, [ - out] ICorDebugType **ppType -); -``` - -## Parameters - - `id` - [in] The type identifier. - - `ppType` - [out] A pointer to the address of an ICorDebugType object. - -## Remarks - - In some cases, methods that return a type identifier may return a null `COR_TYPEID` value. If this value is passed as the `id` argument, the `GetTypeForTypeID` method will fail and return `E_FAIL`. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - +Converts a type identifier to an ICorDebugType value. + +## Syntax + +```cpp +HRESULT GetTypeForTypeID( + [in] COR_TYPEID id, [ + out] ICorDebugType **ppType +); +``` + +## Parameters + + `id` + [in] The type identifier. + + `ppType` + [out] A pointer to the address of an ICorDebugType object. + +## Remarks + + In some cases, methods that return a type identifier may return a null `COR_TYPEID` value. If this value is passed as the `id` argument, the `GetTypeForTypeID` method will fail and return `E_FAIL`. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [ICorDebugProcess5 Interface](icordebugprocess5-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess5-gettypeid-method.md b/docs/framework/unmanaged-api/debugging/icordebugprocess5-gettypeid-method.md index 33fab33e259bb..4cf1e42422e3f 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess5-gettypeid-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess5-gettypeid-method.md @@ -2,56 +2,56 @@ description: "Learn more about: ICorDebugProcess5::GetTypeID Method" title: "ICorDebugProcess5::GetTypeID Method" ms.date: "03/30/2017" -dev_langs: +dev_langs: - "cpp" -api_name: +api_name: - "ICorDebugProcess5.GetTypeID" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugProcess5::GetTypeID" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugProcess5::GetTypeID method [.NET Framework debugging]" - "GetTypeID method, ICorDebugProcess5 interface [.NET Framework debugging]" ms.assetid: 47dbaea4-8857-462e-93ba-fff880fc9e50 -topic_type: +topic_type: - "apiref" --- # ICorDebugProcess5::GetTypeID Method -Converts an object address to a [COR_TYPEID](cor-typeid-structure.md) identifier. - -## Syntax - +Converts an object address to a [COR_TYPEID](cor-typeid-structure.md) identifier. + +## Syntax + ```cpp -HRESULT GetTypeID( - [in] CORDB_ADDRESS obj, - [out] COR_TYPEID *pId -); -``` - -## Parameters - - `obj` - [in] The object address. - - `pId` - A pointer to the [COR_TYPEID](cor-typeid-structure.md) value that identifies the object. - -## Remarks - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - +HRESULT GetTypeID( + [in] CORDB_ADDRESS obj, + [out] COR_TYPEID *pId +); +``` + +## Parameters + + `obj` + [in] The object address. + + `pId` + A pointer to the [COR_TYPEID](cor-typeid-structure.md) value that identifies the object. + +## Remarks + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [ICorDebugProcess5 Interface](icordebugprocess5-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess5-gettypelayout-method.md b/docs/framework/unmanaged-api/debugging/icordebugprocess5-gettypelayout-method.md index 4771dd6c11af6..e0ada105b042d 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess5-gettypelayout-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess5-gettypelayout-method.md @@ -2,53 +2,53 @@ description: "Learn more about: ICorDebugProcess5::GetTypeLayout Method" title: "ICorDebugProcess5::GetTypeLayout Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugProcess5.GetTypeLayout" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugProcess5::GetTypeLayout" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugProcess5::GetTypeLayout method [.NET Framework debugging]" - "GetTypeLayout method, ICorDebugProcess5 interface [.NET Framework debugging]" ms.assetid: bd62f5d1-e874-41f1-81e5-a29a7572c15d -topic_type: +topic_type: - "apiref" --- # ICorDebugProcess5::GetTypeLayout Method -Gets information about the layout of an object in memory based on its type identifier. - -## Syntax - -```cpp -HRESULT GetTypeLayout( [in] COR_TYPEID id, [out] COR_TYPE_LAYOUT *pLayout); -``` - -## Parameters - - `id` - [in] A [COR_TYPEID](cor-typeid-structure.md) token that specifies the type whose layout is desired. - - `pLayout` - [out] A pointer to a [COR_TYPE_LAYOUT](cor-type-layout-structure.md) structure that contains information about the layout of the object in memory. - -## Remarks - - The `ICorDebugProcess5::GetTypeLayout` method provides information about an object based on its [COR_TYPEID](cor-typeid-structure.md), which is returned by a number of other [ICorDebugProcess5](icordebugprocess5-interface.md) methods. The information is provided by a [COR_TYPE_LAYOUT](cor-type-layout-structure.md) structure that is populated by the method. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - +Gets information about the layout of an object in memory based on its type identifier. + +## Syntax + +```cpp +HRESULT GetTypeLayout( [in] COR_TYPEID id, [out] COR_TYPE_LAYOUT *pLayout); +``` + +## Parameters + + `id` + [in] A [COR_TYPEID](cor-typeid-structure.md) token that specifies the type whose layout is desired. + + `pLayout` + [out] A pointer to a [COR_TYPE_LAYOUT](cor-type-layout-structure.md) structure that contains information about the layout of the object in memory. + +## Remarks + + The `ICorDebugProcess5::GetTypeLayout` method provides information about an object based on its [COR_TYPEID](cor-typeid-structure.md), which is returned by a number of other [ICorDebugProcess5](icordebugprocess5-interface.md) methods. The information is provided by a [COR_TYPE_LAYOUT](cor-type-layout-structure.md) structure that is populated by the method. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [COR_TYPE_LAYOUT Structure](cor-type-layout-structure.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess5-interface.md b/docs/framework/unmanaged-api/debugging/icordebugprocess5-interface.md index 1e34b84cef574..6c9a1b5076e49 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess5-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess5-interface.md @@ -2,58 +2,58 @@ description: "Learn more about: ICorDebugProcess5 Interface" title: "ICorDebugProcess5 Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugProcess5" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugProcess5" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugProcess5 interface [.NET Framework debugging]" ms.assetid: 30a39d79-1f10-4328-9c5d-094ed824e2ba -topic_type: +topic_type: - "apiref" --- # ICorDebugProcess5 Interface -Extends the ICorDebugProcess interface to support access to the managed heap, to provide information about garbage collection of managed objects, and to determine whether a debugger loads images from the application local native image cache. - -## Methods - -|Method|Description| -|------------|-----------------| -|[EnableNGenPolicy Method](icordebugprocess5-enablengenpolicy-method.md)|Sets a value that determines how an application loads native images while running under a managed debugger.| -|[EnumerateGCReferences Method](icordebugprocess5-enumerategcreferences-method.md)|Gets an enumerator for all objects that are to be garbage-collected in a process.| -|[EnumerateHandles Method](icordebugprocess5-enumeratehandles-method.md)|Gets an enumerator for object handles in a process.| -|[EnumerateHeap Method](icordebugprocess5-enumerateheap-method.md)|Gets an enumerator for objects on the managed heap.| -|[EnumerateHeapRegions Method](icordebugprocess5-enumerateheapregions-method.md)|Gets an enumerator for regions of the managed heap.| -|[GetArrayLayout Method](icordebugprocess5-getarraylayout-method.md)|Gets information about the layout of an array in memory.| -|[GetGCHeapInformation Method](icordebugprocess5-getgcheapinformation-method.md)|Gets a pointer to a [COR_HEAPINFO](cor-heapinfo-structure.md) structure that contains information about objects that are to be garbage-collected on the managed heap.| -|[GetObject Method](icordebugprocess5-getobject-method.md)|Gets a pointer to an object on the managed heap.| -|[GetTypeFields Method](icordebugprocess5-gettypefields-method.md)|Gets a pointer to an array that contains field information for a type based on its type identifier.| -|[GetTypeForTypeID Method](icordebugprocess5-gettypefortypeid-method.md)|Gets a type object that provides information about an object based on its type identifiers.| -|[GetTypeID Method](icordebugprocess5-gettypeid-method.md)|Gets the type identifier for the object at a specified address.| -|[GetTypeLayout Method](icordebugprocess5-gettypelayout-method.md)|Gets information about the layout of an object in memory based on its type identifier.| - -## Remarks - - This interface logically extends the ICorDebugProcess, ICorDebugProcess2, and [ICorDebugProcess3](icordebugprocess3-interface.md) interfaces. - +Extends the ICorDebugProcess interface to support access to the managed heap, to provide information about garbage collection of managed objects, and to determine whether a debugger loads images from the application local native image cache. + +## Methods + +|Method|Description| +|------------|-----------------| +|[EnableNGenPolicy Method](icordebugprocess5-enablengenpolicy-method.md)|Sets a value that determines how an application loads native images while running under a managed debugger.| +|[EnumerateGCReferences Method](icordebugprocess5-enumerategcreferences-method.md)|Gets an enumerator for all objects that are to be garbage-collected in a process.| +|[EnumerateHandles Method](icordebugprocess5-enumeratehandles-method.md)|Gets an enumerator for object handles in a process.| +|[EnumerateHeap Method](icordebugprocess5-enumerateheap-method.md)|Gets an enumerator for objects on the managed heap.| +|[EnumerateHeapRegions Method](icordebugprocess5-enumerateheapregions-method.md)|Gets an enumerator for regions of the managed heap.| +|[GetArrayLayout Method](icordebugprocess5-getarraylayout-method.md)|Gets information about the layout of an array in memory.| +|[GetGCHeapInformation Method](icordebugprocess5-getgcheapinformation-method.md)|Gets a pointer to a [COR_HEAPINFO](cor-heapinfo-structure.md) structure that contains information about objects that are to be garbage-collected on the managed heap.| +|[GetObject Method](icordebugprocess5-getobject-method.md)|Gets a pointer to an object on the managed heap.| +|[GetTypeFields Method](icordebugprocess5-gettypefields-method.md)|Gets a pointer to an array that contains field information for a type based on its type identifier.| +|[GetTypeForTypeID Method](icordebugprocess5-gettypefortypeid-method.md)|Gets a type object that provides information about an object based on its type identifiers.| +|[GetTypeID Method](icordebugprocess5-gettypeid-method.md)|Gets the type identifier for the object at a specified address.| +|[GetTypeLayout Method](icordebugprocess5-gettypelayout-method.md)|Gets information about the layout of an object in memory based on its type identifier.| + +## Remarks + + This interface logically extends the ICorDebugProcess, ICorDebugProcess2, and [ICorDebugProcess3](icordebugprocess3-interface.md) interfaces. + > [!NOTE] -> This interface does not support being called remotely, either from another machine or from another process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - +> This interface does not support being called remotely, either from another machine or from another process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess6-decodeevent-method.md b/docs/framework/unmanaged-api/debugging/icordebugprocess6-decodeevent-method.md index 447e3afd50378..b794c22c1f777 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess6-decodeevent-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess6-decodeevent-method.md @@ -6,56 +6,56 @@ ms.assetid: 1453bc0c-6e0d-4d5a-b176-22607f8a3e6c --- # ICorDebugProcess6::DecodeEvent Method -Decodes managed debug events that have been encapsulated in the payload of specially crafted native exception debug events. - -## Syntax - -```cpp -HRESULT DecodeEvent( - [in, length_is(countBytes), size_is(countBytes)] const BYTE pRecord[], - [in] DWORD countBytes, - [in] CorDebugRecordFormat format, +Decodes managed debug events that have been encapsulated in the payload of specially crafted native exception debug events. + +## Syntax + +```cpp +HRESULT DecodeEvent( + [in, length_is(countBytes), size_is(countBytes)] const BYTE pRecord[], + [in] DWORD countBytes, + [in] CorDebugRecordFormat format, [in] DWORD dwFlags, [in] DWORD dwThreadId, - [out] ICorDebugDebugEvent **ppEvent -); -``` - -## Parameters - - `pRecord` - [in] A pointer to a byte array from a native exception debug event that includes information about a managed debug event. - - `countBytes` - [in] The number of elements in the `pRecord` byte array. - - `format` - [in] A [CorDebugRecordFormat](cordebugrecordformat-enumeration.md) enumeration member that specifies the format of the unmanaged debug event. - - `dwFlags` - [in] A bit field that depends on the target architecture and that specifies additional information about the debug event. For Windows systems, it can be a member of the [CorDebugDecodeEventFlagsWindows](cordebugdecodeeventflagswindows-enumeration.md) enumeration. - - `dwThreadId` - [in] The operating system identifier of the thread on which the exception was thrown. - - `ppEvent` - [out] A pointer to the address of an [ICorDebugDebugEvent](icordebugdebugevent-interface.md) object that represents a decoded managed debug event. - -## Remarks - + [out] ICorDebugDebugEvent **ppEvent +); +``` + +## Parameters + + `pRecord` + [in] A pointer to a byte array from a native exception debug event that includes information about a managed debug event. + + `countBytes` + [in] The number of elements in the `pRecord` byte array. + + `format` + [in] A [CorDebugRecordFormat](cordebugrecordformat-enumeration.md) enumeration member that specifies the format of the unmanaged debug event. + + `dwFlags` + [in] A bit field that depends on the target architecture and that specifies additional information about the debug event. For Windows systems, it can be a member of the [CorDebugDecodeEventFlagsWindows](cordebugdecodeeventflagswindows-enumeration.md) enumeration. + + `dwThreadId` + [in] The operating system identifier of the thread on which the exception was thrown. + + `ppEvent` + [out] A pointer to the address of an [ICorDebugDebugEvent](icordebugdebugevent-interface.md) object that represents a decoded managed debug event. + +## Remarks + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugProcess6 Interface](icordebugprocess6-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess6-enablevirtualmodulesplitting-method.md b/docs/framework/unmanaged-api/debugging/icordebugprocess6-enablevirtualmodulesplitting-method.md index f8a7e7b52f43e..7acf170941ab2 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess6-enablevirtualmodulesplitting-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess6-enablevirtualmodulesplitting-method.md @@ -6,115 +6,115 @@ ms.assetid: e7733bd3-68da-47f9-82ef-477db5f2e32d --- # ICorDebugProcess6::EnableVirtualModuleSplitting Method -Enables or disables virtual module splitting. - -## Syntax - -```cpp -HRESULT EnableVirtualModuleSplitting( - BOOL enableSplitting -); -``` - -## Parameters - - `enableSplitting` - `true` to enable virtual module splitting; `false` to disable it. - -## Remarks - - Virtual module splitting causes [ICorDebug](icordebug-interface.md) to recognize modules that were merged together during the build process and present them as a group of separate modules rather than a single large module. Doing this changes the behavior of various [ICorDebug](icordebug-interface.md) methods described below. - +Enables or disables virtual module splitting. + +## Syntax + +```cpp +HRESULT EnableVirtualModuleSplitting( + BOOL enableSplitting +); +``` + +## Parameters + + `enableSplitting` + `true` to enable virtual module splitting; `false` to disable it. + +## Remarks + + Virtual module splitting causes [ICorDebug](icordebug-interface.md) to recognize modules that were merged together during the build process and present them as a group of separate modules rather than a single large module. Doing this changes the behavior of various [ICorDebug](icordebug-interface.md) methods described below. + > [!NOTE] -> This method is available with .NET Native only. - - This method can be called and the value of `enableSplitting` can be changed at any time. It does not cause any stateful functional changes in an [ICorDebug](icordebug-interface.md) object, other than altering the behavior of the methods listed in the [Virtual module splitting and the unmanaged debugging APIs](#APIs) section at the time they are called. Using virtual modules does incur a performance penalty when calling those methods. In addition, significant in-memory caching of the virtualized metadata may be required to correctly implement the [IMetaDataImport](../metadata/imetadataimport-interface.md) APIs, and these caches may be retained even after virtual module splitting has been turned off. - -## Terminology - - The following terms are used when describing virtual module splitting: - - container modules, or containers - The aggregate modules. - - sub-modules, or virtual modules - The modules found in a container. - - regular modules - Modules that were not merged at build time. They are neither container modules nor sub-modules. - - Both container modules and sub-modules are represented by ICorDebugModule interface objects. However, the behavior of the interface is slightly different in each case, as the \ section describes. - -## Modules and assemblies - - Multi-module assemblies are not supported for assembly merging scenarios, so there is a one-to-one relationship between a module and an assembly. Each ICorDebugModule object, regardless of whether it represents a container module or a sub-module, has a corresponding ICorDebugAssembly object. The [ICorDebugModule::GetAssembly](icordebugmodule-getassembly-method.md) method converts from the module to the assembly. To map in the other direction, the [ICorDebugAssembly::EnumerateModules](icordebugassembly-enumeratemodules-method.md) method enumerates only 1 module. Because assembly and module form a tightly coupled pair in this case, the terms assembly and module become largely interchangeable. - -## Behavioral differences - - Container modules have the following behaviors and characteristics: - -- Their metadata for all of the constituent sub-modules is merged together. - -- Their type names may be mangled. - -- The [ICorDebugModule::GetName](icordebugmodule-getname-method.md) method returns the path to an on-disk module. - -- The [ICorDebugModule::GetSize](icordebugmodule-getsize-method.md) method returns the size of that image. - -- The ICorDebugAssembly3.EnumerateContainedAssemblies method lists the sub-modules. - -- The ICorDebugAssembly3.GetContainerAssembly method returns `S_FALSE`. - - Sub-modules have the following behaviors and characteristics: - -- They have a reduced set of metadata that corresponds only to the original assembly that was merged. - -- The metadata names are not mangled. - -- Metadata tokens are unlikely to match the tokens in the original assembly before it was merged in the build process. - -- The [ICorDebugModule::GetName](icordebugmodule-getname-method.md) method returns the assembly name, not a file path. - -- The [ICorDebugModule::GetSize](icordebugmodule-getsize-method.md) method returns the original unmerged image size. - -- The ICorDebugModule3.EnumerateContainedAssemblies method returns `S_FALSE`. - -- The ICorDebugAssembly3.GetContainerAssembly method returns the containing module. - -## Interfaces retrieved from modules - - A variety of interfaces can be created or retrieved from modules. Some of these include: - -- An ICorDebugClass object, which is returned by the [ICorDebugModule::GetClassFromToken](icordebugmodule-getclassfromtoken-method.md) method. - -- An ICorDebugAssembly object, which is returned by the [ICorDebugModule::GetAssembly](icordebugmodule-getassembly-method.md) method. - - These objects are always cached by [ICorDebug](icordebug-interface.md), and they will have the same pointer identity regardless of whether they were created or queried from the container module or a sub-module. The sub-module provides a filtered view of these cached objects, not a separate cache with its own copies. - +> This method is available with .NET Native only. + + This method can be called and the value of `enableSplitting` can be changed at any time. It does not cause any stateful functional changes in an [ICorDebug](icordebug-interface.md) object, other than altering the behavior of the methods listed in the [Virtual module splitting and the unmanaged debugging APIs](#APIs) section at the time they are called. Using virtual modules does incur a performance penalty when calling those methods. In addition, significant in-memory caching of the virtualized metadata may be required to correctly implement the [IMetaDataImport](../metadata/imetadataimport-interface.md) APIs, and these caches may be retained even after virtual module splitting has been turned off. + +## Terminology + + The following terms are used when describing virtual module splitting: + + container modules, or containers + The aggregate modules. + + sub-modules, or virtual modules + The modules found in a container. + + regular modules + Modules that were not merged at build time. They are neither container modules nor sub-modules. + + Both container modules and sub-modules are represented by ICorDebugModule interface objects. However, the behavior of the interface is slightly different in each case, as the \ section describes. + +## Modules and assemblies + + Multi-module assemblies are not supported for assembly merging scenarios, so there is a one-to-one relationship between a module and an assembly. Each ICorDebugModule object, regardless of whether it represents a container module or a sub-module, has a corresponding ICorDebugAssembly object. The [ICorDebugModule::GetAssembly](icordebugmodule-getassembly-method.md) method converts from the module to the assembly. To map in the other direction, the [ICorDebugAssembly::EnumerateModules](icordebugassembly-enumeratemodules-method.md) method enumerates only 1 module. Because assembly and module form a tightly coupled pair in this case, the terms assembly and module become largely interchangeable. + +## Behavioral differences + + Container modules have the following behaviors and characteristics: + +- Their metadata for all of the constituent sub-modules is merged together. + +- Their type names may be mangled. + +- The [ICorDebugModule::GetName](icordebugmodule-getname-method.md) method returns the path to an on-disk module. + +- The [ICorDebugModule::GetSize](icordebugmodule-getsize-method.md) method returns the size of that image. + +- The ICorDebugAssembly3.EnumerateContainedAssemblies method lists the sub-modules. + +- The ICorDebugAssembly3.GetContainerAssembly method returns `S_FALSE`. + + Sub-modules have the following behaviors and characteristics: + +- They have a reduced set of metadata that corresponds only to the original assembly that was merged. + +- The metadata names are not mangled. + +- Metadata tokens are unlikely to match the tokens in the original assembly before it was merged in the build process. + +- The [ICorDebugModule::GetName](icordebugmodule-getname-method.md) method returns the assembly name, not a file path. + +- The [ICorDebugModule::GetSize](icordebugmodule-getsize-method.md) method returns the original unmerged image size. + +- The ICorDebugModule3.EnumerateContainedAssemblies method returns `S_FALSE`. + +- The ICorDebugAssembly3.GetContainerAssembly method returns the containing module. + +## Interfaces retrieved from modules + + A variety of interfaces can be created or retrieved from modules. Some of these include: + +- An ICorDebugClass object, which is returned by the [ICorDebugModule::GetClassFromToken](icordebugmodule-getclassfromtoken-method.md) method. + +- An ICorDebugAssembly object, which is returned by the [ICorDebugModule::GetAssembly](icordebugmodule-getassembly-method.md) method. + + These objects are always cached by [ICorDebug](icordebug-interface.md), and they will have the same pointer identity regardless of whether they were created or queried from the container module or a sub-module. The sub-module provides a filtered view of these cached objects, not a separate cache with its own copies. + -## Virtual module splitting and the unmanaged debugging APIs - - The following table shows how virtual module splitting affects the behavior of other methods in the unmanaged debugging API. - -|Method|`enableSplitting` = `true`|`enableSplitting` = `false`| -|------------|---------------------------------|----------------------------------| -|[ICorDebugFunction::GetModule](icordebugfunction-getmodule-method.md)|Returns the sub-module this function was originally defined in|Returns the container module this function was merged into| -|[ICorDebugClass::GetModule](icordebugclass-getmodule-method.md)|Returns the sub-module this class was originally defined in.|Returns the container module this class was merged into.| -|ICorDebugModuleDebugEvent::GetModule|Returns the container module that was loaded. Sub-modules are not given load events regardless of this setting.|Returns the container module that was loaded.| -|[ICorDebugAppDomain::EnumerateAssemblies](icordebugappdomain-enumerateassemblies-method.md)|Returns a list of sub-assemblies and regular assemblies; no container assemblies are included. **Note:** If any container assembly is missing symbols, none of its sub-assemblies will be enumerated. If any regular assembly is missing symbols, it may or may not be enumerated.|Returns a list of container assemblies and regular assemblies; no sub-assemblies are included. **Note:** If any regular assembly is missing symbols, it may or may not be enumerated.| -|[ICorDebugCode::GetCode](icordebugcode-getcode-method.md) (when referring to IL code only)|Returns IL that would be valid in a pre-merge assembly image. Specifically, any inline metadata tokens will correctly be TypeRef or MemberRef tokens when the types being referred to are not defined in the virtual module containing the IL. These TypeRef or MemberRef tokens can be looked up in the [IMetaDataImport](../metadata/imetadataimport-interface.md) object for the corresponding virtual ICorDebugModule object.|Returns the IL in the post-merge assembly image.| - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +## Virtual module splitting and the unmanaged debugging APIs + + The following table shows how virtual module splitting affects the behavior of other methods in the unmanaged debugging API. + +|Method|`enableSplitting` = `true`|`enableSplitting` = `false`| +|------------|---------------------------------|----------------------------------| +|[ICorDebugFunction::GetModule](icordebugfunction-getmodule-method.md)|Returns the sub-module this function was originally defined in|Returns the container module this function was merged into| +|[ICorDebugClass::GetModule](icordebugclass-getmodule-method.md)|Returns the sub-module this class was originally defined in.|Returns the container module this class was merged into.| +|ICorDebugModuleDebugEvent::GetModule|Returns the container module that was loaded. Sub-modules are not given load events regardless of this setting.|Returns the container module that was loaded.| +|[ICorDebugAppDomain::EnumerateAssemblies](icordebugappdomain-enumerateassemblies-method.md)|Returns a list of sub-assemblies and regular assemblies; no container assemblies are included. **Note:** If any container assembly is missing symbols, none of its sub-assemblies will be enumerated. If any regular assembly is missing symbols, it may or may not be enumerated.|Returns a list of container assemblies and regular assemblies; no sub-assemblies are included. **Note:** If any regular assembly is missing symbols, it may or may not be enumerated.| +|[ICorDebugCode::GetCode](icordebugcode-getcode-method.md) (when referring to IL code only)|Returns IL that would be valid in a pre-merge assembly image. Specifically, any inline metadata tokens will correctly be TypeRef or MemberRef tokens when the types being referred to are not defined in the virtual module containing the IL. These TypeRef or MemberRef tokens can be looked up in the [IMetaDataImport](../metadata/imetadataimport-interface.md) object for the corresponding virtual ICorDebugModule object.|Returns the IL in the post-merge assembly image.| + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugProcess6 Interface](icordebugprocess6-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess6-getcode-method.md b/docs/framework/unmanaged-api/debugging/icordebugprocess6-getcode-method.md index a52eadca8b854..59f1437626448 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess6-getcode-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess6-getcode-method.md @@ -6,39 +6,39 @@ ms.assetid: faa538c2-60c9-4064-b996-1b4c24ebd751 --- # ICorDebugProcess6::GetCode Method -Gets information about the managed code at a particular code address. - -## Syntax - -```cpp -HRESULT GetCode( +Gets information about the managed code at a particular code address. + +## Syntax + +```cpp +HRESULT GetCode( [in] CORDB_ADDRESS codeAddress, - [out] ICorDebugCode **ppCode); -``` - -## Parameters - - `codeAddress` - [in] A [CORDB_ADDRESS](../common-data-types-unmanaged-api-reference.md) value that specifies the starting address of the managed code segment. - - `ppCode` - [out] A pointer to the address of an "ICorDebugCode" object that represents a segment of managed code. - -## Remarks - + [out] ICorDebugCode **ppCode); +``` + +## Parameters + + `codeAddress` + [in] A [CORDB_ADDRESS](../common-data-types-unmanaged-api-reference.md) value that specifies the starting address of the managed code segment. + + `ppCode` + [out] A pointer to the address of an "ICorDebugCode" object that represents a segment of managed code. + +## Remarks + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugProcess6 Interface](icordebugprocess6-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess6-getexportstepinfo-method.md b/docs/framework/unmanaged-api/debugging/icordebugprocess6-getexportstepinfo-method.md index d00aaa3ef4f11..3a654e639cd8e 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess6-getexportstepinfo-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess6-getexportstepinfo-method.md @@ -6,53 +6,53 @@ ms.assetid: a927e0ac-f110-426d-bbec-9377a29c8f17 --- # ICorDebugProcess6::GetExportStepInfo Method -Provides information on runtime exported functions to help step through managed code. - -## Syntax - -```cpp -HRESULT GetExportStepInfo( +Provides information on runtime exported functions to help step through managed code. + +## Syntax + +```cpp +HRESULT GetExportStepInfo( [in] LPCWSTR pszExportName, [out] CorDebugCodeInvokeKind* pInvokeKind, - [out] CorDebugCodeInvokePurpose* pInvokePurpose); -``` - -## Parameters - - pszExportName - [in] The name of a runtime export function as written in the PE export table. - - invokeKind - [out] A pointer to a member of the [CorDebugCodeInvokeKind](cordebugcodeinvokekind-enumeration.md) enumeration that describes how the exported function will invoke managed code. - - invokePurpose - [out] A pointer to a member of the [CorDebugCodeInvokePurpose](cordebugcodeinvokepurpose-enumeration.md) enumeration that describes why the exported function will call managed code. - -## Return Value - - The method can return the values listed in the following table. - -|Return value|Description| -|------------------|-----------------| -|`S_OK`|The method call was successful.| -|`E_POINTER`|`pInvokeKind` or `pInvokePurpose` is **null**.| -|Other failing `HRESULT` values.|As appropriate.| - -## Remarks - + [out] CorDebugCodeInvokePurpose* pInvokePurpose); +``` + +## Parameters + + pszExportName + [in] The name of a runtime export function as written in the PE export table. + + invokeKind + [out] A pointer to a member of the [CorDebugCodeInvokeKind](cordebugcodeinvokekind-enumeration.md) enumeration that describes how the exported function will invoke managed code. + + invokePurpose + [out] A pointer to a member of the [CorDebugCodeInvokePurpose](cordebugcodeinvokepurpose-enumeration.md) enumeration that describes why the exported function will call managed code. + +## Return Value + + The method can return the values listed in the following table. + +|Return value|Description| +|------------------|-----------------| +|`S_OK`|The method call was successful.| +|`E_POINTER`|`pInvokeKind` or `pInvokePurpose` is **null**.| +|Other failing `HRESULT` values.|As appropriate.| + +## Remarks + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugProcess6 Interface](icordebugprocess6-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess6-interface.md b/docs/framework/unmanaged-api/debugging/icordebugprocess6-interface.md index a2ab195719dde..4a1f59a7bf45b 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess6-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess6-interface.md @@ -6,34 +6,34 @@ ms.assetid: 34a10ac2-882c-4797-8369-f120e8e640c7 --- # ICorDebugProcess6 Interface -Logically extends the ICorDebugProcess interface to enable features such as decoding managed debug events that are encoded in native exception debug events and virtual module splitting. - -## Methods - -|Method|Description| -|------------|-----------------| -|[DecodeEvent Method](icordebugprocess6-decodeevent-method.md)|Decodes managed debug events that have been encapsulated in the payload of specially crafted native exception debug events.| -|[EnableVirtualModuleSplitting Method](icordebugprocess6-enablevirtualmodulesplitting-method.md)|Enables or disables virtual module splitting.| -|[GetCode Method](icordebugprocess6-getcode-method.md)|Gets information about the managed code at a particular code address.| -|[GetExportStepInfo Method](icordebugprocess6-getexportstepinfo-method.md)|Provides information on runtime exported functions to help step through managed code.| -|[MarkDebuggerAttached Method](icordebugprocess6-markdebuggerattached-method.md)|Changes the internal state of the debugee so that the method in the .NET Framework Class Library returns `true`.| -|[ProcessStateChanged Method](icordebugprocess6-processstatechanged-method.md)|Notifies [ICorDebug](icordebug-interface.md) that the process is running.| - -## Remarks - +Logically extends the ICorDebugProcess interface to enable features such as decoding managed debug events that are encoded in native exception debug events and virtual module splitting. + +## Methods + +|Method|Description| +|------------|-----------------| +|[DecodeEvent Method](icordebugprocess6-decodeevent-method.md)|Decodes managed debug events that have been encapsulated in the payload of specially crafted native exception debug events.| +|[EnableVirtualModuleSplitting Method](icordebugprocess6-enablevirtualmodulesplitting-method.md)|Enables or disables virtual module splitting.| +|[GetCode Method](icordebugprocess6-getcode-method.md)|Gets information about the managed code at a particular code address.| +|[GetExportStepInfo Method](icordebugprocess6-getexportstepinfo-method.md)|Provides information on runtime exported functions to help step through managed code.| +|[MarkDebuggerAttached Method](icordebugprocess6-markdebuggerattached-method.md)|Changes the internal state of the debugee so that the method in the .NET Framework Class Library returns `true`.| +|[ProcessStateChanged Method](icordebugprocess6-processstatechanged-method.md)|Notifies [ICorDebug](icordebug-interface.md) that the process is running.| + +## Remarks + > [!NOTE] -> The interface is available with .NET Native only. Attempting to call `QueryInterface` to retrieve an interface pointer returns `E_NOINTERFACE` for ICorDebug scenarios outside of .NET Native. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> The interface is available with .NET Native only. Attempting to call `QueryInterface` to retrieve an interface pointer returns `E_NOINTERFACE` for ICorDebug scenarios outside of .NET Native. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess6-markdebuggerattached-method.md b/docs/framework/unmanaged-api/debugging/icordebugprocess6-markdebuggerattached-method.md index 6055910e86fda..3cab43e1cb26d 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess6-markdebuggerattached-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess6-markdebuggerattached-method.md @@ -6,46 +6,46 @@ ms.assetid: bf94f090-5265-4112-8e57-5b4e20e070d0 --- # ICorDebugProcess6::MarkDebuggerAttached Method -Changes the internal state of the debugee so that the method in the .NET Framework Class Library returns `true`. - -## Syntax - -```cpp -HRESULT MarkDebuggerAttached( - BOOL fIsAttached -); -``` - -## Parameters - - `fIsAttached` - `true` if the method should indicate that a debugger is attached; `false` otherwise. - -## Return Value - - The method can return the values listed in the following table. - -|Return value|Description| -|------------------|-----------------| -|`S_OK`|The debuggee was successfully updated.| -|`CORDBG_E_MODULE_NOT_LOADED`|The assembly that contains the method is not loaded, or some other error, such as missing metadata, is preventing it from being recognized.

This error is common and benign. You should call the method again when additional assemblies load.| -|Other failing `HRESULT` values.|Other values likely indicate misbehaving debugger or compiler components.| - -## Remarks - +Changes the internal state of the debugee so that the method in the .NET Framework Class Library returns `true`. + +## Syntax + +```cpp +HRESULT MarkDebuggerAttached( + BOOL fIsAttached +); +``` + +## Parameters + + `fIsAttached` + `true` if the method should indicate that a debugger is attached; `false` otherwise. + +## Return Value + + The method can return the values listed in the following table. + +|Return value|Description| +|------------------|-----------------| +|`S_OK`|The debuggee was successfully updated.| +|`CORDBG_E_MODULE_NOT_LOADED`|The assembly that contains the method is not loaded, or some other error, such as missing metadata, is preventing it from being recognized.

This error is common and benign. You should call the method again when additional assemblies load.| +|Other failing `HRESULT` values.|Other values likely indicate misbehaving debugger or compiler components.| + +## Remarks + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugProcess6 Interface](icordebugprocess6-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess6-processstatechanged-method.md b/docs/framework/unmanaged-api/debugging/icordebugprocess6-processstatechanged-method.md index 94cf118d3f091..8625902241bd4 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess6-processstatechanged-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess6-processstatechanged-method.md @@ -6,36 +6,36 @@ ms.assetid: fb6d30d9-54f3-462b-8ebf-ce0440791ad5 --- # ICorDebugProcess6::ProcessStateChanged Method -Notifies [ICorDebug](icordebug-interface.md) that the process is running. - -## Syntax - -```cpp -HRESULT ProcessStateChanged( [in] CorDebugStateChange change); -``` - -## Parameters - - `change` - [in] A member of the [ProcessStateChanged](icordebugprocess6-processstatechanged-method.md) enumeration - -## Remarks - - The debugger calls this method to notify [ICorDebug](icordebug-interface.md) that the process is running. - +Notifies [ICorDebug](icordebug-interface.md) that the process is running. + +## Syntax + +```cpp +HRESULT ProcessStateChanged( [in] CorDebugStateChange change); +``` + +## Parameters + + `change` + [in] A member of the [ProcessStateChanged](icordebugprocess6-processstatechanged-method.md) enumeration + +## Remarks + + The debugger calls this method to notify [ICorDebug](icordebug-interface.md) that the process is running. + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugProcess6 Interface](icordebugprocess6-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess7-interface.md b/docs/framework/unmanaged-api/debugging/icordebugprocess7-interface.md index 43eaea5ffaf4a..86edaf88d5f95 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess7-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess7-interface.md @@ -2,40 +2,40 @@ description: "Learn more about: ICorDebugProcess7 Interface" title: "ICorDebugProcess7 Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugProcess7" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" ms.assetid: 71aee5f3-5e10-44fa-be69-6d8a475f2c14 -topic_type: +topic_type: - "apiref" --- # ICorDebugProcess7 Interface -[Supported in the .NET Framework 4.5.2 and later versions] - - Provides a method that configures the debugger to handle in-memory metadata updates in the target process. - -## Methods - -|Method|Description| -|------------|-----------------| -|[SetWriteableMetadataUpdateMode Method](icordebugprocess7-setwriteablemetadataupdatemode-method.md)|Sets a value that determines how the debugger handles in-memory updates to metadata within the target process.| - -## Remarks - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v452plus](../../../../includes/net-current-v452plus-md.md)] - +[Supported in the .NET Framework 4.5.2 and later versions] + + Provides a method that configures the debugger to handle in-memory metadata updates in the target process. + +## Methods + +|Method|Description| +|------------|-----------------| +|[SetWriteableMetadataUpdateMode Method](icordebugprocess7-setwriteablemetadataupdatemode-method.md)|Sets a value that determines how the debugger handles in-memory updates to metadata within the target process.| + +## Remarks + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v452plus](../../../../includes/net-current-v452plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess7-setwriteablemetadataupdatemode-method.md b/docs/framework/unmanaged-api/debugging/icordebugprocess7-setwriteablemetadataupdatemode-method.md index 61eb8b7f655a2..cfb1701ddb438 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess7-setwriteablemetadataupdatemode-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess7-setwriteablemetadataupdatemode-method.md @@ -2,51 +2,51 @@ description: "Learn more about: ICorDebugProcess7::SetWriteableMetadataUpdateMode Method" title: "ICorDebugProcess7::SetWriteableMetadataUpdateMode Method" ms.date: "03/30/2017" -dev_langs: +dev_langs: - "cpp" -api_name: +api_name: - "ICorDebugProcess7.SetWriteableMetadataUpdateMode" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" ms.assetid: 8589bba7-7304-45ba-9e31-7bf43dfd5c19 -topic_type: +topic_type: - "apiref" --- # ICorDebugProcess7::SetWriteableMetadataUpdateMode Method -[Supported in the .NET Framework 4.5.2 and later versions] - - Configures how the debugger handles in-memory updates to metadata within the target process. - -## Syntax - +[Supported in the .NET Framework 4.5.2 and later versions] + + Configures how the debugger handles in-memory updates to metadata within the target process. + +## Syntax + ```cpp -HRESULT SetWriteableMetadataUpdateMode( - WriteableMetadataUpdateMode flags -); -``` - -## Parameters - - `flags` - A [WriteableMetadataUpdateMode](writeablemetadataupdatemode-enumeration.md) enumeration value that specifies whether in-memory updates to metadata in the target process are visible (`WriteableMetadataUpdateMode::AlwaysShowUpdates`) or not visible (`WriteableMetadataUpdateMode::LegacyCompatPolicy`) to the debugger. - -## Remarks - - Updates to the metadata of the target process can come from Edit and Continue, a profiler, or . - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v452plus](../../../../includes/net-current-v452plus-md.md)] - +HRESULT SetWriteableMetadataUpdateMode( + WriteableMetadataUpdateMode flags +); +``` + +## Parameters + + `flags` + A [WriteableMetadataUpdateMode](writeablemetadataupdatemode-enumeration.md) enumeration value that specifies whether in-memory updates to metadata in the target process are visible (`WriteableMetadataUpdateMode::AlwaysShowUpdates`) or not visible (`WriteableMetadataUpdateMode::LegacyCompatPolicy`) to the debugger. + +## Remarks + + Updates to the metadata of the target process can come from Edit and Continue, a profiler, or . + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v452plus](../../../../includes/net-current-v452plus-md.md)] + ## See also - [ICorDebugProcess7 Interface](icordebugprocess7-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess8-enableexceptioncallbacksoutsideofmycode-method.md b/docs/framework/unmanaged-api/debugging/icordebugprocess8-enableexceptioncallbacksoutsideofmycode-method.md index 0d67f40c5a3bc..a1adfe893ab86 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess8-enableexceptioncallbacksoutsideofmycode-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess8-enableexceptioncallbacksoutsideofmycode-method.md @@ -2,49 +2,49 @@ description: "Learn more about: ICorDebugProcess8::EnableExceptionCallbacksOutsideOfMyCode Method" title: "ICorDebugProcess8::EnableExceptionCallbacksOutsideOfMyCode Method" ms.date: "03/30/2017" -dev_langs: +dev_langs: - "cpp" ms.assetid: b3af44ec-7d41-425b-aed9-0c4379e5cbe9 --- # ICorDebugProcess8::EnableExceptionCallbacksOutsideOfMyCode Method -[Supported in the .NET Framework 4.6 and later versions] - - Enables or disables certain types of [ICorDebugManagedCallback2](icordebugmanagedcallback2-interface.md) exception callbacks. - -## Syntax - +[Supported in the .NET Framework 4.6 and later versions] + + Enables or disables certain types of [ICorDebugManagedCallback2](icordebugmanagedcallback2-interface.md) exception callbacks. + +## Syntax + ```cpp -HRESULT EnableExceptionCallbacksOutsideOfMyCode( - [in] BOOL enableExceptionsOutsideOfJMC -); -``` - -## Parameters - - `enableExceptionsOutsideOfJMC` - [in] - -## Remarks - - If the value of `enableExceptionsOutsideOfJMC` is `false`: - -- A DEBUG_EXCEPTION_FIRST_CHANCE exception will not result in a callback to the debugger. - -- A DEBUG_EXCEPTION_CATCH_HANDLER_FOUND exception will not result in a callback to the debugger if the exception never escapes into user code (that is, the path from an exception origin to an exception handler has no methods marked as JustMyCode, or JMC). - - The default value of `enableExceptionsOutsideOfJMC` is `true`. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v46plus](../../../../includes/net-current-v46plus-md.md)] - +HRESULT EnableExceptionCallbacksOutsideOfMyCode( + [in] BOOL enableExceptionsOutsideOfJMC +); +``` + +## Parameters + + `enableExceptionsOutsideOfJMC` + [in] + +## Remarks + + If the value of `enableExceptionsOutsideOfJMC` is `false`: + +- A DEBUG_EXCEPTION_FIRST_CHANCE exception will not result in a callback to the debugger. + +- A DEBUG_EXCEPTION_CATCH_HANDLER_FOUND exception will not result in a callback to the debugger if the exception never escapes into user code (that is, the path from an exception origin to an exception handler has no methods marked as JustMyCode, or JMC). + + The default value of `enableExceptionsOutsideOfJMC` is `true`. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v46plus](../../../../includes/net-current-v46plus-md.md)] + ## See also - [ICorDebugProcess8 Interface](icordebugprocess8-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocess8-interface.md b/docs/framework/unmanaged-api/debugging/icordebugprocess8-interface.md index e54d4c700f74f..3ef4479606b2a 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocess8-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocess8-interface.md @@ -6,28 +6,28 @@ ms.assetid: 7ab1a70f-ec11-46ff-8869-cd8ca679cc51 --- # ICorDebugProcess8 Interface -[Supported in the .NET Framework 4.6 and later versions] - - Logically extends the ICorDebugProcess interface to enable or disable certain types of [ICorDebugManagedCallback2](icordebugmanagedcallback2-interface.md) exception callbacks. - -## Methods - -|Method|Description| -|------------|-----------------| -|[EnableExceptionCallbacksOutsideOfMyCode Method](icordebugprocess8-enableexceptioncallbacksoutsideofmycode-method.md)|Enables or disables certain types of [ICorDebugManagedCallback2](icordebugmanagedcallback2-interface.md) exception callbacks.| - -## Remarks - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v46plus](../../../../includes/net-current-v46plus-md.md)] - +[Supported in the .NET Framework 4.6 and later versions] + + Logically extends the ICorDebugProcess interface to enable or disable certain types of [ICorDebugManagedCallback2](icordebugmanagedcallback2-interface.md) exception callbacks. + +## Methods + +|Method|Description| +|------------|-----------------| +|[EnableExceptionCallbacksOutsideOfMyCode Method](icordebugprocess8-enableexceptioncallbacksoutsideofmycode-method.md)|Enables or disables certain types of [ICorDebugManagedCallback2](icordebugmanagedcallback2-interface.md) exception callbacks.| + +## Remarks + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v46plus](../../../../includes/net-current-v46plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugprocessenum-interface.md b/docs/framework/unmanaged-api/debugging/icordebugprocessenum-interface.md index 58aafa5da7da1..c54d92bfc340b 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugprocessenum-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugprocessenum-interface.md @@ -2,45 +2,45 @@ description: "Learn more about: ICorDebugProcessEnum Interface" title: "ICorDebugProcessEnum Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugProcessEnum" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugProcessEnum" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugProcessEnum interface [.NET Framework debugging]" ms.assetid: b63a507a-ca97-4be0-8e4f-401cce2125f6 -topic_type: +topic_type: - "apiref" --- # ICorDebugProcessEnum Interface -Implements ICorDebugEnum methods and enumerates ICorDebugProcess arrays. - -## Methods - -|Method|Description| -|------------|-----------------| -|[Next Method](icordebugprocessenum-next-method.md)|Gets the specified number of `ICorDebugProcess` instances from the enumeration, starting at the current position.| - -## Remarks - +Implements ICorDebugEnum methods and enumerates ICorDebugProcess arrays. + +## Methods + +|Method|Description| +|------------|-----------------| +|[Next Method](icordebugprocessenum-next-method.md)|Gets the specified number of `ICorDebugProcess` instances from the enumeration, starting at the current position.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugreferencevalue-dereference-method.md b/docs/framework/unmanaged-api/debugging/icordebugreferencevalue-dereference-method.md index d1e1a772ff3ba..aeb6bf9fa03cb 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugreferencevalue-dereference-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugreferencevalue-dereference-method.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugReferenceValue::Dereference Method" title: "ICorDebugReferenceValue::Dereference Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugReferenceValue.Dereference" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugReferenceValue::Dereference" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugReferenceValue::Dereference method [.NET Framework debugging]" - "Dereference method [.NET Framework debugging]" ms.assetid: 5ec8cf76-3deb-4ce6-9a49-77a4c35d80b9 -topic_type: +topic_type: - "apiref" --- # ICorDebugReferenceValue::Dereference Method -Gets the object that is referenced. - -## Syntax - -```cpp -HRESULT Dereference ( - [out] ICorDebugValue **ppValue -); -``` - -## Parameters - - `ppValue` - [out] A pointer to the address of an ICorDebugValue that represents the object to which this ICorDebugReferenceValue object points. - -## Remarks - - The `ICorDebugValue` object is valid only while its reference has not yet been disabled. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets the object that is referenced. + +## Syntax + +```cpp +HRESULT Dereference ( + [out] ICorDebugValue **ppValue +); +``` + +## Parameters + + `ppValue` + [out] A pointer to the address of an ICorDebugValue that represents the object to which this ICorDebugReferenceValue object points. + +## Remarks + + The `ICorDebugValue` object is valid only while its reference has not yet been disabled. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugreferencevalue-interface.md b/docs/framework/unmanaged-api/debugging/icordebugreferencevalue-interface.md index a1a498aad5256..7d31de83021c1 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugreferencevalue-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugreferencevalue-interface.md @@ -2,53 +2,53 @@ description: "Learn more about: ICorDebugReferenceValue Interface" title: "ICorDebugReferenceValue Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugReferenceValue" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugReferenceValue" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugReferenceValue interface [.NET Framework debugging]" ms.assetid: 2040e2be-119a-4cfb-ae52-b0b6f052665c -topic_type: +topic_type: - "apiref" --- # ICorDebugReferenceValue Interface -Provides methods that manage a value that is a reference to an object. (That is, this interface provides methods that manage a pointer.) This interface implements "ICorDebugValue". - -## Methods - -|Method|Description| -|------------|-----------------| -|[Dereference Method](icordebugreferencevalue-dereference-method.md)|Gets the object that is referenced.| -|[DereferenceStrong Method](icordebugreferencevalue-dereferencestrong-method.md)|Not implemented. Do not call this method.| -|[GetValue Method](icordebugreferencevalue-getvalue-method.md)|Gets the current memory address of the referenced object.| -|[IsNull Method](icordebugreferencevalue-isnull-method.md)|Gets a value that indicates whether this `ICorDebugReferenceValue` is a null value, in which case the `ICorDebugReferenceValue` does not point to an object.| -|[SetValue Method](icordebugreferencevalue-setvalue-method.md)|Sets the current memory address. That is, this method sets this `ICorDebugReferenceValue` to point to an object.| - -## Remarks - - The common language runtime (CLR) may do a garbage collection on objects when the debugged process is continued. The garbage collection may move objects around in memory. An `ICorDebugReferenceValue` will either cooperate with the garbage collection so that its information is updated after the garbage collection, or it will be invalidated implicitly before the garbage collection. - - The `ICorDebugReferenceValue` object may be implicitly invalidated after the debugged process has been continued. The derived "ICorDebugHandleValue" is not invalidated until it is explicitly released or exposed. - +Provides methods that manage a value that is a reference to an object. (That is, this interface provides methods that manage a pointer.) This interface implements "ICorDebugValue". + +## Methods + +|Method|Description| +|------------|-----------------| +|[Dereference Method](icordebugreferencevalue-dereference-method.md)|Gets the object that is referenced.| +|[DereferenceStrong Method](icordebugreferencevalue-dereferencestrong-method.md)|Not implemented. Do not call this method.| +|[GetValue Method](icordebugreferencevalue-getvalue-method.md)|Gets the current memory address of the referenced object.| +|[IsNull Method](icordebugreferencevalue-isnull-method.md)|Gets a value that indicates whether this `ICorDebugReferenceValue` is a null value, in which case the `ICorDebugReferenceValue` does not point to an object.| +|[SetValue Method](icordebugreferencevalue-setvalue-method.md)|Sets the current memory address. That is, this method sets this `ICorDebugReferenceValue` to point to an object.| + +## Remarks + + The common language runtime (CLR) may do a garbage collection on objects when the debugged process is continued. The garbage collection may move objects around in memory. An `ICorDebugReferenceValue` will either cooperate with the garbage collection so that its information is updated after the garbage collection, or it will be invalidated implicitly before the garbage collection. + + The `ICorDebugReferenceValue` object may be implicitly invalidated after the debugged process has been continued. The derived "ICorDebugHandleValue" is not invalidated until it is explicitly released or exposed. + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugregisterset-getregisters-method.md b/docs/framework/unmanaged-api/debugging/icordebugregisterset-getregisters-method.md index aedf03de32dd3..3a42b720f29ca 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugregisterset-getregisters-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugregisterset-getregisters-method.md @@ -2,63 +2,63 @@ description: "Learn more about: ICorDebugRegisterSet::GetRegisters Method" title: "ICorDebugRegisterSet::GetRegisters Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugRegisterSet.GetRegisters" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugRegisterSet::GetRegisters" -helpviewer_keywords: +helpviewer_keywords: - "GetRegisters method, ICorDebugRegisterSet interface [.NET Framework debugging]" - "ICorDebugRegisterSet::GetRegisters method [.NET Framework debugging]" ms.assetid: fdf91864-48ea-4aa6-b70c-361b7a3184c7 -topic_type: +topic_type: - "apiref" --- # ICorDebugRegisterSet::GetRegisters Method -Gets the value of each register (on the computer that is currently executing code) that is specified by the bit mask. - -## Syntax - -```cpp -HRESULT GetRegisters ( +Gets the value of each register (on the computer that is currently executing code) that is specified by the bit mask. + +## Syntax + +```cpp +HRESULT GetRegisters ( [in] ULONG64 mask, - [in] ULONG32 regCount, - [out, size_is(regCount), length_is(regCount)] - CORDB_REGISTER regBuffer[] -); -``` - -## Parameters - - `mask` - [in] A bit mask that specifies which register values are to be retrieved. Each bit corresponds to a register. If a bit is set to one, the register's value is retrieved; otherwise, the register's value is not retrieved. - - `regCount` - [in] The number of register values to be retrieved. - - `regBuffer` - [out] An array of `CORDB_REGISTER` objects, each of which receives a value of a register. - -## Remarks - - The size of the array should be equal to the number of bits set to one in the bit mask. The `regCount` parameter specifies the number of elements in the buffer that will receive the register values. If the `regCount` value is too small for the number of registers indicated by the mask, the higher numbered registers will be truncated from the set. If the `regCount` value is too large, the unused `regBuffer` elements will be unmodified. - - If the bit mask specifies a register that is unavailable, `GetRegisters` returns an indeterminate value for that register. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - + [in] ULONG32 regCount, + [out, size_is(regCount), length_is(regCount)] + CORDB_REGISTER regBuffer[] +); +``` + +## Parameters + + `mask` + [in] A bit mask that specifies which register values are to be retrieved. Each bit corresponds to a register. If a bit is set to one, the register's value is retrieved; otherwise, the register's value is not retrieved. + + `regCount` + [in] The number of register values to be retrieved. + + `regBuffer` + [out] An array of `CORDB_REGISTER` objects, each of which receives a value of a register. + +## Remarks + + The size of the array should be equal to the number of bits set to one in the bit mask. The `regCount` parameter specifies the number of elements in the buffer that will receive the register values. If the `regCount` value is too small for the number of registers indicated by the mask, the higher numbered registers will be truncated from the set. If the `regCount` value is too large, the unused `regBuffer` elements will be unmodified. + + If the bit mask specifies a register that is unavailable, `GetRegisters` returns an indeterminate value for that register. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [ICorDebugRegisterSet Interface](icordebugregisterset-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugregisterset-getregistersavailable-method.md b/docs/framework/unmanaged-api/debugging/icordebugregisterset-getregistersavailable-method.md index 60e38cbc81e45..ec43334e101a9 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugregisterset-getregistersavailable-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugregisterset-getregistersavailable-method.md @@ -2,54 +2,54 @@ description: "Learn more about: ICorDebugRegisterSet::GetRegistersAvailable Method" title: "ICorDebugRegisterSet::GetRegistersAvailable Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugRegisterSet.GetRegistersAvailable" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugRegisterSet::GetRegistersAvailable" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugRegisterSet::GetRegistersAvailable method [.NET Framework debugging]" - "GetRegistersAvailable method, ICorDebugRegisterSet interface [.NET Framework debugging]" ms.assetid: 4ba08ffa-55a2-4662-9d6d-4738f1db60c9 -topic_type: +topic_type: - "apiref" --- # ICorDebugRegisterSet::GetRegistersAvailable Method -Gets a bit mask indicating which registers in this [ICorDebugRegisterSet](icordebugregisterset-interface.md) are currently available. - -## Syntax - -```cpp -HRESULT GetRegistersAvailable ( - [out] ULONG64 *pAvailable -); -``` - -## Parameters - - `pAvailable` - [out] A bit mask that indicates which registers are currently available. - -## Remarks - - A register may be unavailable if its value cannot be determined for the given situation. - - The returned mask contains a bit for each register (1 << the register index). The bit value is 1 if the register is available, or 0 if it is not available. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Gets a bit mask indicating which registers in this [ICorDebugRegisterSet](icordebugregisterset-interface.md) are currently available. + +## Syntax + +```cpp +HRESULT GetRegistersAvailable ( + [out] ULONG64 *pAvailable +); +``` + +## Parameters + + `pAvailable` + [out] A bit mask that indicates which registers are currently available. + +## Remarks + + A register may be unavailable if its value cannot be determined for the given situation. + + The returned mask contains a bit for each register (1 << the register index). The bit value is 1 if the register is available, or 0 if it is not available. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [ICorDebugRegisterSet Interface](icordebugregisterset-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugregisterset-getthreadcontext-method.md b/docs/framework/unmanaged-api/debugging/icordebugregisterset-getthreadcontext-method.md index 0ad606e1577b7..cae26e8e8e318 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugregisterset-getthreadcontext-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugregisterset-getthreadcontext-method.md @@ -2,59 +2,59 @@ description: "Learn more about: ICorDebugRegisterSet::GetThreadContext Method" title: "ICorDebugRegisterSet::GetThreadContext Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugRegisterSet.GetThreadContext" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugRegisterSet::GetThreadContext" -helpviewer_keywords: +helpviewer_keywords: - "GetThreadContext method, ICorDebugRegisterSet interface [.NET Framework debugging]" - "ICorDebugRegisterSet::GetThreadContext method [.NET Framework debugging]" ms.assetid: 0f63400b-dc1c-48d6-b51a-75c3f7f28e03 -topic_type: +topic_type: - "apiref" --- # ICorDebugRegisterSet::GetThreadContext Method -Gets the context of the current thread. - -## Syntax - -```cpp -HRESULT GetThreadContext( - [in] ULONG32 contextSize, - [in, out, length_is(contextSize), - size_is(contextSize)] BYTE context[] -); -``` - -## Parameters - - `contextSize` - [in] The size, in bytes, of the `context` array. - - `context` - [in, out] An array of bytes that compose the Win32 `CONTEXT` structure for the current platform. - -## Remarks - - The debugger should call this function instead of the Win32 `GetThreadContext` function, because the thread may be in a "hijacked" state where its context has been temporarily changed. The data returned is a Win32 `CONTEXT` structure for the current platform. - - For non-leaf frames, clients should check which registers are valid by using [ICorDebugRegisterSet::GetRegistersAvailable](icordebugregisterset-getregistersavailable-method.md). - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Gets the context of the current thread. + +## Syntax + +```cpp +HRESULT GetThreadContext( + [in] ULONG32 contextSize, + [in, out, length_is(contextSize), + size_is(contextSize)] BYTE context[] +); +``` + +## Parameters + + `contextSize` + [in] The size, in bytes, of the `context` array. + + `context` + [in, out] An array of bytes that compose the Win32 `CONTEXT` structure for the current platform. + +## Remarks + + The debugger should call this function instead of the Win32 `GetThreadContext` function, because the thread may be in a "hijacked" state where its context has been temporarily changed. The data returned is a Win32 `CONTEXT` structure for the current platform. + + For non-leaf frames, clients should check which registers are valid by using [ICorDebugRegisterSet::GetRegistersAvailable](icordebugregisterset-getregistersavailable-method.md). + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [ICorDebugRegisterSet Interface](icordebugregisterset-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugregisterset-interface.md b/docs/framework/unmanaged-api/debugging/icordebugregisterset-interface.md index 9e93207a124c5..93273891c5229 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugregisterset-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugregisterset-interface.md @@ -2,51 +2,51 @@ description: "Learn more about: ICorDebugRegisterSet Interface" title: "ICorDebugRegisterSet Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugRegisterSet" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugRegisterSet" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugRegisterSet interface [.NET Framework debugging]" ms.assetid: d3d9676d-0b87-4bc3-b679-7bbc7a186c88 -topic_type: +topic_type: - "apiref" --- # ICorDebugRegisterSet Interface -Represents the set of registers available on the computer that is currently executing code. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetRegisters Method](icordebugregisterset-getregisters-method.md)|Gets the value of each register (on the computer that is currently executing code) that is specified by the bit mask.| -|[GetRegistersAvailable Method](icordebugregisterset-getregistersavailable-method.md)|Gets a bit mask indicating which registers in this `ICorDebugRegisterSet` are currently available.| -|[GetThreadContext Method](icordebugregisterset-getthreadcontext-method.md)|Gets the context of the current thread.| -|[SetRegisters Method](icordebugregisterset-setregisters-method.md)|Not implemented for .NET Framework version 2.0.| -|[SetThreadContext Method](icordebugregisterset-setthreadcontext-method.md)|Not implemented for the .NET Framework 2.0.| - -## Remarks - - The `ICorDebugRegisterSet` interface supports only 32-bit registers. Use the [ICorDebugRegisterSet2](icordebugregisterset2-interface.md) interface on platforms such as IA-64 that require additional registers. - +Represents the set of registers available on the computer that is currently executing code. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetRegisters Method](icordebugregisterset-getregisters-method.md)|Gets the value of each register (on the computer that is currently executing code) that is specified by the bit mask.| +|[GetRegistersAvailable Method](icordebugregisterset-getregistersavailable-method.md)|Gets a bit mask indicating which registers in this `ICorDebugRegisterSet` are currently available.| +|[GetThreadContext Method](icordebugregisterset-getthreadcontext-method.md)|Gets the context of the current thread.| +|[SetRegisters Method](icordebugregisterset-setregisters-method.md)|Not implemented for .NET Framework version 2.0.| +|[SetThreadContext Method](icordebugregisterset-setthreadcontext-method.md)|Not implemented for the .NET Framework 2.0.| + +## Remarks + + The `ICorDebugRegisterSet` interface supports only 32-bit registers. Use the [ICorDebugRegisterSet2](icordebugregisterset2-interface.md) interface on platforms such as IA-64 that require additional registers. + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugregisterset2-getregisters-method.md b/docs/framework/unmanaged-api/debugging/icordebugregisterset2-getregisters-method.md index fefa383261111..41ab800d11b87 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugregisterset2-getregisters-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugregisterset2-getregisters-method.md @@ -2,70 +2,70 @@ description: "Learn more about: ICorDebugRegisterSet2::GetRegisters method" title: "ICorDebugRegisterSet2::GetRegisters Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugRegisterSet2.GetRegisters" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugRegisterSet2::GetRegisters" -helpviewer_keywords: +helpviewer_keywords: - "GetRegisters method, ICorDebugRegisterSet2 interface [.NET Framework debugging]" - "ICorDebugRegisterSet2::GetRegisters method [.NET Framework debugging]" ms.assetid: dbc498a8-ba3f-42f2-bdd9-b623c77a1019 -topic_type: +topic_type: - "apiref" --- # ICorDebugRegisterSet2::GetRegisters method -Gets the value of each register (for the platform on which code is currently executing) that is specified by the given bit mask. - -## Syntax - -```cpp -HRESULT GetRegisters ( - [in] ULONG32 maskCount, - [in, size_is(maskCount)] BYTE mask[], - [in] ULONG32 regCount, - [out, size_is(regCount)] CORDB_REGISTER regBuffer[] -); -``` - +Gets the value of each register (for the platform on which code is currently executing) that is specified by the given bit mask. + +## Syntax + +```cpp +HRESULT GetRegisters ( + [in] ULONG32 maskCount, + [in, size_is(maskCount)] BYTE mask[], + [in] ULONG32 regCount, + [out, size_is(regCount)] CORDB_REGISTER regBuffer[] +); +``` + ## Parameters - `maskCount` - [in] The size, in bytes, of the `mask` array. - - `mask` - [in] An array of bytes, each bit of which corresponds to a register. If the bit is 1, the corresponding register's value will be retrieved. - - `regCount` - [in] The number of register values to be retrieved. - - `regBuffer` - [out] An array of `CORDB_REGISTER` objects, each of which receives the value of a register. - + `maskCount` + [in] The size, in bytes, of the `mask` array. + + `mask` + [in] An array of bytes, each bit of which corresponds to a register. If the bit is 1, the corresponding register's value will be retrieved. + + `regCount` + [in] The number of register values to be retrieved. + + `regBuffer` + [out] An array of `CORDB_REGISTER` objects, each of which receives the value of a register. + ## Remarks - The `GetRegisters` method returns an array of values from the registers that are specified by the mask. The array does not contain values of registers whose mask bit is not set. Thus, the size of the `regBuffer` array must be equal to the number of 1's in the mask. If the value of `regCount` is too small for the number of registers indicated by the mask, the values of the higher numbered registers will be truncated from the set. If `regCount` is too large, the unused `regBuffer` elements will be unmodified. - - If an unavailable register is indicated by the mask, an indeterminate value will be returned for that register. - - The `ICorDebugRegisterSet2::GetRegisters` method is necessary for platforms that have more than 64 registers. For example, IA64 has 128 general purpose registers and 128 floating-point registers, so you need more than 64 bits in the bit mask. - - If you don't have more than 64 registers, as is the case on platforms such as x86, the `GetRegisters` method just translates the bytes in the `mask` byte array into a `ULONG64` and then calls the [ICorDebugRegisterSet::GetRegisters](icordebugregisterset-getregisters-method.md) method, which takes the `ULONG64` mask. - + The `GetRegisters` method returns an array of values from the registers that are specified by the mask. The array does not contain values of registers whose mask bit is not set. Thus, the size of the `regBuffer` array must be equal to the number of 1's in the mask. If the value of `regCount` is too small for the number of registers indicated by the mask, the values of the higher numbered registers will be truncated from the set. If `regCount` is too large, the unused `regBuffer` elements will be unmodified. + + If an unavailable register is indicated by the mask, an indeterminate value will be returned for that register. + + The `ICorDebugRegisterSet2::GetRegisters` method is necessary for platforms that have more than 64 registers. For example, IA64 has 128 general purpose registers and 128 floating-point registers, so you need more than 64 bits in the bit mask. + + If you don't have more than 64 registers, as is the case on platforms such as x86, the `GetRegisters` method just translates the bytes in the `mask` byte array into a `ULONG64` and then calls the [ICorDebugRegisterSet::GetRegisters](icordebugregisterset-getregisters-method.md) method, which takes the `ULONG64` mask. + ## Requirements - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [ICorDebugRegisterSet2 Interface](icordebugregisterset2-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugregisterset2-getregistersavailable-method.md b/docs/framework/unmanaged-api/debugging/icordebugregisterset2-getregistersavailable-method.md index d4e35865ac699..6bdc074009a5b 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugregisterset2-getregistersavailable-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugregisterset2-getregistersavailable-method.md @@ -2,64 +2,64 @@ description: "Learn more about: ICorDebugRegisterSet2::GetRegistersAvailable Method" title: "ICorDebugRegisterSet2::GetRegistersAvailable Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugRegisterSet2.GetRegistersAvailable" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugRegisterSet2::GetRegistersAvailable" -helpviewer_keywords: +helpviewer_keywords: - "GetRegistersAvailable method, ICorDebugRegisterSet2 interface [.NET Framework debugging]" - "ICorDebugRegisterSet2::GetRegistersAvailable method [.NET Framework debugging]" ms.assetid: f3ed344b-0d3a-44e8-8000-2a97e0805a2c -topic_type: +topic_type: - "apiref" --- # ICorDebugRegisterSet2::GetRegistersAvailable Method -Gets an array of bytes that provides a bitmap of the available registers. - -## Syntax - -```cpp -HRESULT GetRegistersAvailable ( - [in] ULONG32 numChunks, - [out, size_is(numChunks)] BYTE availableRegChunks[] -); -``` - -## Parameters - - `numChunks` - [in] The size of the `availableRegChunks` array. - - `availableRegChunks` - [out] An array of bytes, each bit of which corresponds to a register. If a register is available, the register's corresponding bit is set. - -## Remarks - - The values of the CorDebugRegister enumeration specify the registers of different microprocessors. The upper five bits of each value are the index into the `availableRegChunks` array of bytes. The lower three bits of each value identify the bit position within the indexed byte. Given a `CorDebugRegister` value that specifies a particular register, the register's position in the mask is determined as follows: - -1. Extract the index needed to access the correct byte in the `availableRegChunks` array: - - `CorDebugRegister` value >> 3 - -2. Extract the bit position within the indexed byte, where bit zero is the least significant bit: - - `CorDebugRegister` value & 7 - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +Gets an array of bytes that provides a bitmap of the available registers. + +## Syntax + +```cpp +HRESULT GetRegistersAvailable ( + [in] ULONG32 numChunks, + [out, size_is(numChunks)] BYTE availableRegChunks[] +); +``` + +## Parameters + + `numChunks` + [in] The size of the `availableRegChunks` array. + + `availableRegChunks` + [out] An array of bytes, each bit of which corresponds to a register. If a register is available, the register's corresponding bit is set. + +## Remarks + + The values of the CorDebugRegister enumeration specify the registers of different microprocessors. The upper five bits of each value are the index into the `availableRegChunks` array of bytes. The lower three bits of each value identify the bit position within the indexed byte. Given a `CorDebugRegister` value that specifies a particular register, the register's position in the mask is determined as follows: + +1. Extract the index needed to access the correct byte in the `availableRegChunks` array: + + `CorDebugRegister` value >> 3 + +2. Extract the bit position within the indexed byte, where bit zero is the least significant bit: + + `CorDebugRegister` value & 7 + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [ICorDebugRegisterSet2 Interface](icordebugregisterset2-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugregisterset2-interface.md b/docs/framework/unmanaged-api/debugging/icordebugregisterset2-interface.md index cc5992fb6a504..807acdd6b1948 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugregisterset2-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugregisterset2-interface.md @@ -2,47 +2,47 @@ description: "Learn more about: ICorDebugRegisterSet2 Interface" title: "ICorDebugRegisterSet2 Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugRegisterSet2" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugRegisterSet2" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugRegisterSet2 interface [.NET Framework debugging]" ms.assetid: d7fbccbf-3b6b-4db8-a96d-768e1cb6b1a6 -topic_type: +topic_type: - "apiref" --- # ICorDebugRegisterSet2 Interface -Extends the capabilities of the [ICorDebugRegisterSet](icordebugregisterset-interface.md) interface for hardware platforms that have more than 64 registers. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetRegisters Method](icordebugregisterset2-getregisters-method.md)|Gets the value of each register (on the computer that is currently executing code) that is specified by the bit mask.| -|[GetRegistersAvailable Method](icordebugregisterset2-getregistersavailable-method.md)|Gets an array of bytes that provides a bitmap of the available registers.| -|[SetRegisters Method](icordebugregisterset2-setregisters-method.md)|Not implemented in .NET Framework version 2.0.| - -## Remarks - +Extends the capabilities of the [ICorDebugRegisterSet](icordebugregisterset-interface.md) interface for hardware platforms that have more than 64 registers. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetRegisters Method](icordebugregisterset2-getregisters-method.md)|Gets the value of each register (on the computer that is currently executing code) that is specified by the bit mask.| +|[GetRegistersAvailable Method](icordebugregisterset2-getregistersavailable-method.md)|Gets an array of bytes that provides a bitmap of the available registers.| +|[SetRegisters Method](icordebugregisterset2-setregisters-method.md)|Not implemented in .NET Framework version 2.0.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugremote-createprocessex-method.md b/docs/framework/unmanaged-api/debugging/icordebugremote-createprocessex-method.md index 128aac6629597..e549566ee47cd 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugremote-createprocessex-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugremote-createprocessex-method.md @@ -2,108 +2,108 @@ description: "Learn more about: ICorDebugRemote::CreateProcessEx Method" title: "ICorDebugRemote::CreateProcessEx Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugRemote.CreateProcessEx" -api_location: +api_location: - "CorDebug.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugRemoteTarget::CreateProcessEx" -helpviewer_keywords: +helpviewer_keywords: - "CreateProcessEx method, ICorDebugRemote interface [.NET Framework debugging]" - "ICorDebugRemote::CreateProcessEx method [.NET Framework debugging]" ms.assetid: 41af93c7-e448-4251-8d4d-413d38c635f2 -topic_type: +topic_type: - "apiref" --- # ICorDebugRemote::CreateProcessEx Method -Launches a process on a remote machine under the debugger. - -## Syntax - -```cpp -HRESULT CreateProcessEx ( - [in] ICorDebugRemoteTarget* pRemoteTarget, - [in] LPCWSTR lpApplicationName, - [in] LPWSTR lpCommandLine, - [in] LPSECURITY_ATTRIBUTES lpProcessAttributes, - [in] LPSECURITY_ATTRIBUTES lpThreadAttributes, - [in] BOOL bInheritHandles, - [in] DWORD dwCreationFlags, - [in] PVOID lpEnvironment, - [in] LPCWSTR lpCurrentDirectory, - [in] LPSTARTUPINFOW lpStartupInfo, - [in] LPPROCESS_INFORMATION lpProcessInformation, - [in] CorDebugCreateProcessFlags debuggingFlags, - [out] ICorDebugProcess** ppProcess -); -``` - -## Parameters - - `pRemoteTarget` - [in] Pointer to an [ICorDebugRemoteTarget Interface](icordebugremotetarget-interface.md). Used to determine the remote machine on which the process will be launched. - - `lpApplicationName` - [in] Pointer to a null-terminated string that specifies the module to be executed by the launched process. The module is executed in the security context of the calling process. - - `lpCommandLine` - [in] Pointer to a null-terminated string that specifies the command line to be executed by the launched process. - - `lpProcessAttributes` - [in] Unused for remote debugging. - - `lpThreadAttributes` - [in] Unused for remote debugging. - - `bInheritHandles` - [in] Unused for remote debugging. - - `dwCreationFlags` - [in] Unused for remote debugging. - - `lpEnvironment` - [in] Pointer to an environment block for the new process. - - `lpCurrentDirectory` - [in] Pointer to a null-terminated string that specifies the full path to the current directory for the process. If this parameter is null, the new process will have the same current drive and directory as the calling process. - - `lpStartupInfo` - [in] Unused for remote debugging. - - `lpProcessInformation` - [in] Unused for remote debugging. - - `debuggingFlags` - [in] Unused for remote debugging. - - `ppProcess` - [out] A pointer to the address of a"ICorDebugProcess Interface" object that represents the process. - -## Return Value - - S_OK - Successfully launched the process on the remote machine and returned an "ICorDebugProcess Interface" for debugging. - - E_FAIL (or other E_ return codes) - Unable to launch the process on the remote machine and return an "ICorDebugProcess Interface" for debugging. - -## Remarks - - Mixed-mode debugging is not supported in Silverlight. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl - - **Library:** CorGuids.lib - - **.NET Framework Versions:** 4.5, 4, 3.5 SP1 - +Launches a process on a remote machine under the debugger. + +## Syntax + +```cpp +HRESULT CreateProcessEx ( + [in] ICorDebugRemoteTarget* pRemoteTarget, + [in] LPCWSTR lpApplicationName, + [in] LPWSTR lpCommandLine, + [in] LPSECURITY_ATTRIBUTES lpProcessAttributes, + [in] LPSECURITY_ATTRIBUTES lpThreadAttributes, + [in] BOOL bInheritHandles, + [in] DWORD dwCreationFlags, + [in] PVOID lpEnvironment, + [in] LPCWSTR lpCurrentDirectory, + [in] LPSTARTUPINFOW lpStartupInfo, + [in] LPPROCESS_INFORMATION lpProcessInformation, + [in] CorDebugCreateProcessFlags debuggingFlags, + [out] ICorDebugProcess** ppProcess +); +``` + +## Parameters + + `pRemoteTarget` + [in] Pointer to an [ICorDebugRemoteTarget Interface](icordebugremotetarget-interface.md). Used to determine the remote machine on which the process will be launched. + + `lpApplicationName` + [in] Pointer to a null-terminated string that specifies the module to be executed by the launched process. The module is executed in the security context of the calling process. + + `lpCommandLine` + [in] Pointer to a null-terminated string that specifies the command line to be executed by the launched process. + + `lpProcessAttributes` + [in] Unused for remote debugging. + + `lpThreadAttributes` + [in] Unused for remote debugging. + + `bInheritHandles` + [in] Unused for remote debugging. + + `dwCreationFlags` + [in] Unused for remote debugging. + + `lpEnvironment` + [in] Pointer to an environment block for the new process. + + `lpCurrentDirectory` + [in] Pointer to a null-terminated string that specifies the full path to the current directory for the process. If this parameter is null, the new process will have the same current drive and directory as the calling process. + + `lpStartupInfo` + [in] Unused for remote debugging. + + `lpProcessInformation` + [in] Unused for remote debugging. + + `debuggingFlags` + [in] Unused for remote debugging. + + `ppProcess` + [out] A pointer to the address of a"ICorDebugProcess Interface" object that represents the process. + +## Return Value + + S_OK + Successfully launched the process on the remote machine and returned an "ICorDebugProcess Interface" for debugging. + + E_FAIL (or other E_ return codes) + Unable to launch the process on the remote machine and return an "ICorDebugProcess Interface" for debugging. + +## Remarks + + Mixed-mode debugging is not supported in Silverlight. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl + + **Library:** CorGuids.lib + + **.NET Framework Versions:** 4.5, 4, 3.5 SP1 + ## See also - [ICorDebugRemote Interface](icordebugremote-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugremote-debugactiveprocessex-method.md b/docs/framework/unmanaged-api/debugging/icordebugremote-debugactiveprocessex-method.md index e1d0cf46e3eca..403bac7289413 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugremote-debugactiveprocessex-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugremote-debugactiveprocessex-method.md @@ -2,72 +2,72 @@ description: "Learn more about: ICorDebugRemote::DebugActiveProcessEx Method" title: "ICorDebugRemote::DebugActiveProcessEx Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugRemote.DebugActiveProcessEx" -api_location: +api_location: - "CorDebug.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugRemoteTarget::DebugActiveProcessEx" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugRemote::DebugActiveProcessEx method [.NET Framework debugging]" - "DebugActiveProcessEx method, ICorDebugRemote interface [.NET Framework debugging]" ms.assetid: b0df5c5d-9a2e-47bf-894c-6f8a9fe24a1f -topic_type: +topic_type: - "apiref" --- # ICorDebugRemote::DebugActiveProcessEx Method -Launches a process on a remote machine under the debugger. - -## Syntax - -```cpp -HRESULT DebugActiveProcessEx ( - [in] ICorDebugRemoteTarget * pRemoteTarget, - [in] DWORD dwProcessId, - [in] BOOL fWin32Attach, - [out] ICorDebugProcess ** ppProcess -); -``` - -## Parameters - - `pRemoteTarget` - [in] Pointer to an [ICorDebugRemoteTarget Interface](icordebugremotetarget-interface.md). This parameter is used to determine the machine on which the process is running. - - `id` - [in] The ID of the process to which the debugger is to be attached. - - `win32Attach` - [in] `true` if the debugger should behave as the Win32 debugger for the process and dispatch the unmanaged callbacks; otherwise, `false`. - - `ppProcess` - [out] A pointer to the address of an "ICorDebugProcess" object that represents the process to which the debugger has been attached. - -## Return Value - - S_OK - Successfully attached to the process on the remote machine. - - E_FAIL (or other E_ return codes) - Unable to attach to the process on the remote machine. - -## Remarks - - Mixed-mode debugging is not supported in Silverlight. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** 4.5, 4, 3.5 SP1 - +Launches a process on a remote machine under the debugger. + +## Syntax + +```cpp +HRESULT DebugActiveProcessEx ( + [in] ICorDebugRemoteTarget * pRemoteTarget, + [in] DWORD dwProcessId, + [in] BOOL fWin32Attach, + [out] ICorDebugProcess ** ppProcess +); +``` + +## Parameters + + `pRemoteTarget` + [in] Pointer to an [ICorDebugRemoteTarget Interface](icordebugremotetarget-interface.md). This parameter is used to determine the machine on which the process is running. + + `id` + [in] The ID of the process to which the debugger is to be attached. + + `win32Attach` + [in] `true` if the debugger should behave as the Win32 debugger for the process and dispatch the unmanaged callbacks; otherwise, `false`. + + `ppProcess` + [out] A pointer to the address of an "ICorDebugProcess" object that represents the process to which the debugger has been attached. + +## Return Value + + S_OK + Successfully attached to the process on the remote machine. + + E_FAIL (or other E_ return codes) + Unable to attach to the process on the remote machine. + +## Remarks + + Mixed-mode debugging is not supported in Silverlight. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** 4.5, 4, 3.5 SP1 + ## See also - [ICorDebugRemote Interface](icordebugremote-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugremote-interface.md b/docs/framework/unmanaged-api/debugging/icordebugremote-interface.md index 8f9a725ec66cb..a55af2af50b8b 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugremote-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugremote-interface.md @@ -2,77 +2,77 @@ description: "Learn more about: ICorDebugRemote Interface" title: "ICorDebugRemote Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugRemote" -api_location: +api_location: - "CorDebug.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugRemote" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugRemote interface [.NET Framework debugging]" ms.assetid: 53d073c6-fa02-40d2-82e1-b9452bb6abaa -topic_type: +topic_type: - "apiref" --- # ICorDebugRemote Interface -Provides the ability to launch or attach a managed debugger to a remote target process. - -## Syntax - -```cpp -interface ICorDebugRemote : IUnknown -{ - HRESULT CreateProcessEx - ( - [in] ICorDebugRemoteTarget * pRemoteTarget, - [in] LPCWSTR lpApplicationName, - [in] LPWSTR lpCommandLine, - [in] LPSECURITY_ATTRIBUTES lpProcessAttributes, - [in] LPSECURITY_ATTRIBUTES lpThreadAttributes, - [in] BOOL bInheritHandles, - [in] DWORD dwCreationFlags, - [in] PVOID lpEnvironment, - [in] LPCWSTR lpCurrentDirectory, - [in] LPSTARTUPINFOW lpStartupInfo, - [in] LPPROCESS_INFORMATION lpProcessInformation, - [in] CorDebugCreateProcessFlags debuggingFlags, - [out] ICorDebugProcess ** ppProcess - ); - - HRESULT DebugActiveProcessEx - ( - [in] ICorDebugRemoteTarget * pRemoteTarget, - [in] DWORD dwProcessId, - [in] BOOL fWin32Attach, - [out] ICorDebugProcess ** ppProcess - ); -}; -``` - -## Methods - -|Method|Description| -|------------|-----------------| -|[ICorDebugRemote::CreateProcessEx Method](icordebugremote-createprocessex-method.md)|Creates a process on a remote machine for managed debugging.| -|[ICorDebugRemote::DebugActiveProcessEx Method](icordebugremote-debugactiveprocessex-method.md)|Launches a process on a remote machine under the debugger.| - -## Remarks - - Currently, this functionality is supported only for debugging a Silverlight-based application target that is running on a remote Macintosh machine. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** 4.5, 4, 3.5 SP1 - +Provides the ability to launch or attach a managed debugger to a remote target process. + +## Syntax + +```cpp +interface ICorDebugRemote : IUnknown +{ + HRESULT CreateProcessEx + ( + [in] ICorDebugRemoteTarget * pRemoteTarget, + [in] LPCWSTR lpApplicationName, + [in] LPWSTR lpCommandLine, + [in] LPSECURITY_ATTRIBUTES lpProcessAttributes, + [in] LPSECURITY_ATTRIBUTES lpThreadAttributes, + [in] BOOL bInheritHandles, + [in] DWORD dwCreationFlags, + [in] PVOID lpEnvironment, + [in] LPCWSTR lpCurrentDirectory, + [in] LPSTARTUPINFOW lpStartupInfo, + [in] LPPROCESS_INFORMATION lpProcessInformation, + [in] CorDebugCreateProcessFlags debuggingFlags, + [out] ICorDebugProcess ** ppProcess + ); + + HRESULT DebugActiveProcessEx + ( + [in] ICorDebugRemoteTarget * pRemoteTarget, + [in] DWORD dwProcessId, + [in] BOOL fWin32Attach, + [out] ICorDebugProcess ** ppProcess + ); +}; +``` + +## Methods + +|Method|Description| +|------------|-----------------| +|[ICorDebugRemote::CreateProcessEx Method](icordebugremote-createprocessex-method.md)|Creates a process on a remote machine for managed debugging.| +|[ICorDebugRemote::DebugActiveProcessEx Method](icordebugremote-debugactiveprocessex-method.md)|Launches a process on a remote machine under the debugger.| + +## Remarks + + Currently, this functionality is supported only for debugging a Silverlight-based application target that is running on a remote Macintosh machine. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** 4.5, 4, 3.5 SP1 + ## See also - [ICorDebugRemoteTarget Interface](icordebugremotetarget-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugremotetarget-gethostname-method.md b/docs/framework/unmanaged-api/debugging/icordebugremotetarget-gethostname-method.md index 58016852af217..ae11a436d779f 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugremotetarget-gethostname-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugremotetarget-gethostname-method.md @@ -2,68 +2,68 @@ description: "Learn more about: ICorDebugRemoteTarget::GetHostName Method" title: "ICorDebugRemoteTarget::GetHostName Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugRemoteTarget.GetHostName" -api_location: +api_location: - "CorDebug.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugRemoteTarget::GetHostName" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugRemoteTarget::GetHostName method [.NET Framework debugging]" - "GetHostName method, ICorDebugRemoteTarget interface [.NET Framework debugging]" ms.assetid: 1c7276f7-7e54-470c-808c-e13745ac07a1 -topic_type: +topic_type: - "apiref" --- # ICorDebugRemoteTarget::GetHostName Method -Returns the fully qualified domain name or IPv4 address of the remote debugging target machine. IPV6 is not supported at this time. - -## Syntax - -```cpp -HRESULT GetHostName ( - [in] ULONG32 cchHostName, - [out] ULONG32* pcchHostName, - [out, size_is(cchHostName), length_is(*pcchHostName)] - WCHAR szHostName[] -``` - -## Parameters - - `cchHostName` - [in] The size, in characters, of the `szHostName` buffer. If this parameter is 0 (zero), `szHostName` must be null. - - `pcchHostName` - [out] The number of characters, including a null terminator, in the host name or IP address. This parameter can be null. - - `szHostName` - [out] Buffer that contains the host name or IP address. - -## Return Value - - S_OK - The host name or IP address was successfully returned. - - E_FAIL (or other E_ return codes) - Unable to return the host name or IP address. - -## Remarks - - This method is implemented by the debugger writer. It must follow the multiple call paradigm: On the first call, the caller passes null to both `cchHostName` and `szHostName`, and `pcchHostName` returns the size of the required buffer. On the second call, the size that was previously returned is passed in `cchHostName`, and an appropriately sized buffer is passed in `szHostName`. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl - - **Library:** CorGuids.lib - - **.NET Framework Versions:** 3.5 SP1 - +Returns the fully qualified domain name or IPv4 address of the remote debugging target machine. IPV6 is not supported at this time. + +## Syntax + +```cpp +HRESULT GetHostName ( + [in] ULONG32 cchHostName, + [out] ULONG32* pcchHostName, + [out, size_is(cchHostName), length_is(*pcchHostName)] + WCHAR szHostName[] +``` + +## Parameters + + `cchHostName` + [in] The size, in characters, of the `szHostName` buffer. If this parameter is 0 (zero), `szHostName` must be null. + + `pcchHostName` + [out] The number of characters, including a null terminator, in the host name or IP address. This parameter can be null. + + `szHostName` + [out] Buffer that contains the host name or IP address. + +## Return Value + + S_OK + The host name or IP address was successfully returned. + + E_FAIL (or other E_ return codes) + Unable to return the host name or IP address. + +## Remarks + + This method is implemented by the debugger writer. It must follow the multiple call paradigm: On the first call, the caller passes null to both `cchHostName` and `szHostName`, and `pcchHostName` returns the size of the required buffer. On the second call, the size that was previously returned is passed in `cchHostName`, and an appropriately sized buffer is passed in `szHostName`. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl + + **Library:** CorGuids.lib + + **.NET Framework Versions:** 3.5 SP1 + ## See also - [ICorDebugRemoteTarget Interface](icordebugremotetarget-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugremotetarget-interface.md b/docs/framework/unmanaged-api/debugging/icordebugremotetarget-interface.md index a7ac84672abfc..bf35a0d72879d 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugremotetarget-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugremotetarget-interface.md @@ -2,59 +2,59 @@ description: "Learn more about: ICorDebugRemoteTarget Interface" title: "ICorDebugRemoteTarget Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugRemoteTarget" -api_location: +api_location: - "CorDebug.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugRemoteTarget" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugRemoteTarget interface [.NET Framework debugging]" ms.assetid: bd9936a6-cc24-4869-8761-0988664464e6 -topic_type: +topic_type: - "apiref" --- # ICorDebugRemoteTarget Interface -Provides methods that enable developers to debug Silverlight-based applications in the common language runtime (CLR) environment. - -## Syntax - -```cpp -interface ICorDebugRemoteTarget : IUnknown -{ - HRESULT GetHostName ( - [in] ULONG32 cchHostName, - [out] ULONG32* pcchHostName, - [out, size_is(cchHostName), - length_is(*pcchHostName)] - WCHAR szHostName[] - ); -}; -``` - -## Methods - -|Method|Description| -|------------|-----------------| -|[ICorDebugRemoteTarget::GetHostName Method](icordebugremotetarget-gethostname-method.md)|Returns the host name or the IP address of a remote machine.| - -## Remarks - - Mixed-mode (that is, managed and native code) debugging is not supported on non-x86 platforms (such as IA-64 and AMD64). - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl - - **Library:** : CorGuids.lib - - **.NET Framework Versions:** 3.5 SP1 - +Provides methods that enable developers to debug Silverlight-based applications in the common language runtime (CLR) environment. + +## Syntax + +```cpp +interface ICorDebugRemoteTarget : IUnknown +{ + HRESULT GetHostName ( + [in] ULONG32 cchHostName, + [out] ULONG32* pcchHostName, + [out, size_is(cchHostName), + length_is(*pcchHostName)] + WCHAR szHostName[] + ); +}; +``` + +## Methods + +|Method|Description| +|------------|-----------------| +|[ICorDebugRemoteTarget::GetHostName Method](icordebugremotetarget-gethostname-method.md)|Returns the host name or the IP address of a remote machine.| + +## Remarks + + Mixed-mode (that is, managed and native code) debugging is not supported on non-x86 platforms (such as IA-64 and AMD64). + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl + + **Library:** : CorGuids.lib + + **.NET Framework Versions:** 3.5 SP1 + ## See also - [ICorDebugRemote Interface](icordebugremote-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugruntimeunwindableframe-interface.md b/docs/framework/unmanaged-api/debugging/icordebugruntimeunwindableframe-interface.md index 87a9820a45e39..1f3335585b894 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugruntimeunwindableframe-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugruntimeunwindableframe-interface.md @@ -2,38 +2,38 @@ description: "Learn more about: ICorDebugRuntimeUnwindableFrame Interface" title: "ICorDebugRuntimeUnwindableFrame Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugUnwindableFrame" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugUnwindableFrame" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugUnwindableFrame interface [.NET Framework debugging]" ms.assetid: cd6a3982-6ed3-4909-808d-a66055e813e0 -topic_type: +topic_type: - "apiref" --- # ICorDebugRuntimeUnwindableFrame Interface -Provides support for unmanaged methods that require the common language runtime (CLR) to unwind a frame. - -## Remarks - - `ICorDebugRuntimeUnwindableFrame` is a specialized version of the ICorDebugFrame interface. It is used by unmanaged methods that require the runtime to unwind a frame on the current stack. Existing unwinding conventions do not work, because they do not use JIT-compiled code. When the debugger sees an unwindable frame, it should use the [ICorDebugStackWalk::Next](icordebugstackwalk-next-method.md) method to unwind it, but it should perform inspection itself. When the debugger receives an `ICorDebugRuntimeUnwindableFrame`, it can call the [ICorDebugStackWalk::GetContext](icordebugstackwalk-getcontext-method.md) method to retrieve the context of the frame. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +Provides support for unmanaged methods that require the common language runtime (CLR) to unwind a frame. + +## Remarks + + `ICorDebugRuntimeUnwindableFrame` is a specialized version of the ICorDebugFrame interface. It is used by unmanaged methods that require the runtime to unwind a frame on the current stack. Existing unwinding conventions do not work, because they do not use JIT-compiled code. When the debugger sees an unwindable frame, it should use the [ICorDebugStackWalk::Next](icordebugstackwalk-next-method.md) method to unwind it, but it should perform inspection itself. When the debugger receives an `ICorDebugRuntimeUnwindableFrame`, it can call the [ICorDebugStackWalk::GetContext](icordebugstackwalk-getcontext-method.md) method to retrieve the context of the frame. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugstackwalk-getcontext-method.md b/docs/framework/unmanaged-api/debugging/icordebugstackwalk-getcontext-method.md index e5026d676632b..a537767477b79 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugstackwalk-getcontext-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugstackwalk-getcontext-method.md @@ -2,75 +2,75 @@ description: "Learn more about: ICorDebugStackWalk::GetContext Method" title: "ICorDebugStackWalk::GetContext Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugStackWalk.GetContext Method" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugStackWalk::GetContext" -helpviewer_keywords: +helpviewer_keywords: - "GetContext method, ICorDebugStackWalk interface [.NET Framework debugging]" - "ICorDebugStackWalk::GetContext method [.NET Framework debugging]" ms.assetid: 081d1c95-152b-4797-8552-18453eb7b14b -topic_type: +topic_type: - "apiref" --- # ICorDebugStackWalk::GetContext Method -Returns the context for the current frame in the [ICorDebugStackWalk](icordebugstackwalk-interface.md) object. - -## Syntax - -```cpp -HRESULT GetContext([in] ULONG32 contextFlags, - [in] ULONG32 contextBufSize, - [out] ULONG32* contextSize, - [out, size_is(contextBufSize)] BYTE contextBuf[]); -``` - -## Parameters - - `contextFlags` - [in] Flags that indicate the requested contents of the context buffer (defined in WinNT.h). - - `contextBufSize` - [in] The allocated size of the context buffer. - - `contextSize` - [out] The actual size of the context. This value must be less than or equal to the size of the context buffer. - - `contextBuf` - [out] The context buffer. - -## Return Value - - This method returns the following specific HRESULTs as well as HRESULT errors that indicate method failure. - -|HRESULT|Description| -|-------------|-----------------| -|S_OK|The context for the current frame was successfully returned.| -|E_FAIL|The context could not be returned.| -|HRESULT_FROM_WIN32(ERROR_INSUFFICIENT BUFFER)|The context buffer is too small.| -|CORDBG_E_PAST_END_OF_STACK|The frame pointer is already at the end of the stack; therefore, no additional frames can be accessed.| - -## Exceptions - -## Remarks - - Because unwinding restores only a subset of the registers, such as non-volatile registers, the context may not exactly match the register state at the time of the call. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +Returns the context for the current frame in the [ICorDebugStackWalk](icordebugstackwalk-interface.md) object. + +## Syntax + +```cpp +HRESULT GetContext([in] ULONG32 contextFlags, + [in] ULONG32 contextBufSize, + [out] ULONG32* contextSize, + [out, size_is(contextBufSize)] BYTE contextBuf[]); +``` + +## Parameters + + `contextFlags` + [in] Flags that indicate the requested contents of the context buffer (defined in WinNT.h). + + `contextBufSize` + [in] The allocated size of the context buffer. + + `contextSize` + [out] The actual size of the context. This value must be less than or equal to the size of the context buffer. + + `contextBuf` + [out] The context buffer. + +## Return Value + + This method returns the following specific HRESULTs as well as HRESULT errors that indicate method failure. + +|HRESULT|Description| +|-------------|-----------------| +|S_OK|The context for the current frame was successfully returned.| +|E_FAIL|The context could not be returned.| +|HRESULT_FROM_WIN32(ERROR_INSUFFICIENT BUFFER)|The context buffer is too small.| +|CORDBG_E_PAST_END_OF_STACK|The frame pointer is already at the end of the stack; therefore, no additional frames can be accessed.| + +## Exceptions + +## Remarks + + Because unwinding restores only a subset of the registers, such as non-volatile registers, the context may not exactly match the register state at the time of the call. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugstackwalk-getframe-method.md b/docs/framework/unmanaged-api/debugging/icordebugstackwalk-getframe-method.md index 4ce22d3cf3b87..fa1b035370aff 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugstackwalk-getframe-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugstackwalk-getframe-method.md @@ -2,64 +2,64 @@ description: "Learn more about: ICorDebugStackWalk::GetFrame Method" title: "ICorDebugStackWalk::GetFrame Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugStackWalk.GetFrame Method" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugStackWalk::GetFrame" -helpviewer_keywords: +helpviewer_keywords: - "GetFrame method [.NET Framework debugging]" - "ICorDebugStackWalk::GetFrame method [.NET Framework debugging]" ms.assetid: 4083b505-5b59-44fb-8c5d-129db6a96c10 -topic_type: +topic_type: - "apiref" --- # ICorDebugStackWalk::GetFrame Method -Gets the current frame in the [ICorDebugStackWalk](icordebugstackwalk-interface.md) object. - -## Syntax - -```cpp -HRESULT GetFrame([out] ICorDebugFrame ** pFrame); -``` - -## Parameters - - `pFrame` - [in] A pointer to the address of the created frame object that represents the current frame in the stack. - -## Return Value - - This method returns the following specific HRESULTs as well as HRESULT errors that indicate method failure. - -|HRESULT|Description| -|-------------|-----------------| -|S_OK|The runtime successfully returned the current frame.| -|E_FAIL|The current frame was not returned.| -|S_FALSE|The current frame is a native stack frame.| -|E_INVALIDARG|`pFrame` is null.| -|CORDBG_E_PAST_END_OF_STACK|The frame pointer is already at the end of the stack; therefore, no additional frames can be accessed.| - -## Exceptions - -## Remarks - - `ICorDebugStackWalk` returns only actual stack frames. Use the [ICorDebugThread3::GetActiveInternalFrames](icordebugthread3-getactiveinternalframes-method.md) method to return internal frames. (Internal frames are data structures pushed onto the stack by the runtime to store temporary data.) - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +Gets the current frame in the [ICorDebugStackWalk](icordebugstackwalk-interface.md) object. + +## Syntax + +```cpp +HRESULT GetFrame([out] ICorDebugFrame ** pFrame); +``` + +## Parameters + + `pFrame` + [in] A pointer to the address of the created frame object that represents the current frame in the stack. + +## Return Value + + This method returns the following specific HRESULTs as well as HRESULT errors that indicate method failure. + +|HRESULT|Description| +|-------------|-----------------| +|S_OK|The runtime successfully returned the current frame.| +|E_FAIL|The current frame was not returned.| +|S_FALSE|The current frame is a native stack frame.| +|E_INVALIDARG|`pFrame` is null.| +|CORDBG_E_PAST_END_OF_STACK|The frame pointer is already at the end of the stack; therefore, no additional frames can be accessed.| + +## Exceptions + +## Remarks + + `ICorDebugStackWalk` returns only actual stack frames. Use the [ICorDebugThread3::GetActiveInternalFrames](icordebugthread3-getactiveinternalframes-method.md) method to return internal frames. (Internal frames are data structures pushed onto the stack by the runtime to store temporary data.) + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [ICorDebugStackWalk Interface](icordebugstackwalk-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugstackwalk-interface.md b/docs/framework/unmanaged-api/debugging/icordebugstackwalk-interface.md index eeb1ca8c77bae..47296abf2c88b 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugstackwalk-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugstackwalk-interface.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugStackWalk Interface" title: "ICorDebugStackWalk Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugStackWalk" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugStackWalk" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugStackWalk interface [.NET Framework debugging]" ms.assetid: 16d695e8-975d-431b-8421-e9e6c3e3f476 -topic_type: +topic_type: - "apiref" --- # ICorDebugStackWalk Interface -Provides methods for getting the managed methods, or frames, on a thread’s stack. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetContext Method](icordebugstackwalk-getcontext-method.md)|Returns the context for the current frame in the `ICorDebugStackWalk` object.| -|[SetContext Method](icordebugstackwalk-setcontext-method.md)|Sets the `ICorDebugStackWalk` object’s current context to a valid context for the thread.| -|[Next Method](icordebugstackwalk-next-method.md)|Moves the `ICorDebugStackWalk` object to the next frame.| -|[GetFrame Method](icordebugstackwalk-getframe-method.md)|Gets the current frame in the `ICorDebugStackWalk` object.| - -## Remarks - +Provides methods for getting the managed methods, or frames, on a thread’s stack. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetContext Method](icordebugstackwalk-getcontext-method.md)|Returns the context for the current frame in the `ICorDebugStackWalk` object.| +|[SetContext Method](icordebugstackwalk-setcontext-method.md)|Sets the `ICorDebugStackWalk` object’s current context to a valid context for the thread.| +|[Next Method](icordebugstackwalk-next-method.md)|Moves the `ICorDebugStackWalk` object to the next frame.| +|[GetFrame Method](icordebugstackwalk-getframe-method.md)|Gets the current frame in the `ICorDebugStackWalk` object.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugstackwalk-next-method.md b/docs/framework/unmanaged-api/debugging/icordebugstackwalk-next-method.md index f9bbae616c2bc..bcb8a5e7eef9d 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugstackwalk-next-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugstackwalk-next-method.md @@ -2,58 +2,58 @@ description: "Learn more about: ICorDebugStackWalk::Next Method" title: "ICorDebugStackWalk::Next Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugStackWalk.Next Method" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugStackWalk::Next" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugStackWalk::Next method [.NET Framework debugging]" - "Next method, ICorDebugStackWalk interface [.NET Framework debugging]" ms.assetid: 189c36be-028c-4fba-a002-5edfb8fcd07f -topic_type: +topic_type: - "apiref" --- # ICorDebugStackWalk::Next Method -Moves the [ICorDebugStackWalk](icordebugstackwalk-interface.md) object to the next frame. - -## Syntax - -```cpp -HRESULT Next(); -``` - -## Return Value - - This method returns the following specific HRESULTs as well as HRESULT errors that indicate method failure. - -|HRESULT|Description| -|-------------|-----------------| -|S_OK|The runtime successfully unwound to the next frame (see Remarks).| -|E_FAIL|The `ICorDebugStackWalk` object could not be advanced.| -|CORDBG_S_AT_END_OF_STACK|The end of the stack was reached as a result of this unwind.| -|CORDBG_E_PAST_END_OF_STACK|The frame pointer is already at the end of the stack; therefore, no additional frames can be accessed.| - -## Exceptions - -## Remarks - - The `Next` method advances the `ICorDebugStackWalk` object to the calling frame only if the runtime can unwind the current frame. Otherwise, the object advances to the next frame that the runtime is able to unwind. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +Moves the [ICorDebugStackWalk](icordebugstackwalk-interface.md) object to the next frame. + +## Syntax + +```cpp +HRESULT Next(); +``` + +## Return Value + + This method returns the following specific HRESULTs as well as HRESULT errors that indicate method failure. + +|HRESULT|Description| +|-------------|-----------------| +|S_OK|The runtime successfully unwound to the next frame (see Remarks).| +|E_FAIL|The `ICorDebugStackWalk` object could not be advanced.| +|CORDBG_S_AT_END_OF_STACK|The end of the stack was reached as a result of this unwind.| +|CORDBG_E_PAST_END_OF_STACK|The frame pointer is already at the end of the stack; therefore, no additional frames can be accessed.| + +## Exceptions + +## Remarks + + The `Next` method advances the `ICorDebugStackWalk` object to the calling frame only if the runtime can unwind the current frame. Otherwise, the object advances to the next frame that the runtime is able to unwind. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [ICorDebugStackWalk Interface](icordebugstackwalk-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugstackwalk-setcontext-method.md b/docs/framework/unmanaged-api/debugging/icordebugstackwalk-setcontext-method.md index c3abb11c8ebd1..068122598eca4 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugstackwalk-setcontext-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugstackwalk-setcontext-method.md @@ -2,75 +2,75 @@ description: "Learn more about: ICorDebugStackWalk::SetContext Method" title: "ICorDebugStackWalk::SetContext Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugStackWalk.SetContext Method" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugStackWalk::SetContext" -helpviewer_keywords: +helpviewer_keywords: - "SetContext method [.NET Framework debugging]" - "ICorDebugStackWalk::SetContext method [.NET Framework debugging]" ms.assetid: bac0b156-31a3-4e7f-be4d-ab21789c81f1 -topic_type: +topic_type: - "apiref" --- # ICorDebugStackWalk::SetContext Method -Sets the [ICorDebugStackWalk](icordebugstackwalk-interface.md) object’s current context to a valid context for the thread. - -## Syntax - -```cpp -HRESULT SetContext([in] CorDebugSetContextFlag flag, - [in] ULONG32 contextSize, - [in, size_is(contextSize)] BYTE context[]); -``` - -## Parameters - - `flag` - [in] A [CorDebugSetContextFlag](cordebugsetcontextflag-enumeration.md) flag that indicates whether the context is from the active frame on the stack, or a context obtained by unwinding the stack. - - `contextSize` - [in] The allocated size of the `CONTEXT` buffer. - - `context` - [in] The `CONTEXT` buffer. - -## Return Value - - This method returns the following specific HRESULTs as well as HRESULT errors that indicate method failure. - -|HRESULT|Description| -|-------------|-----------------| -|S_OK|The `ICorDebugStackWalk` object's context was successfully set.| -|E_FAIL|The `ICorDebugStackWalk` object's context was not set.| -|E_INVALIDARG|The context is null.| -|HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER)|The context buffer is too small.| - -## Exceptions - -## Remarks - - This method does not alter the current context of the thread. - - Setting the current context to an invalid context may cause unpredictable results from the stack walker. - - You can retrieve an exact bitwise copy of this context by immediately calling the [ICorDebugStackWalk::GetContext](icordebugstackwalk-getcontext-method.md) method. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +Sets the [ICorDebugStackWalk](icordebugstackwalk-interface.md) object’s current context to a valid context for the thread. + +## Syntax + +```cpp +HRESULT SetContext([in] CorDebugSetContextFlag flag, + [in] ULONG32 contextSize, + [in, size_is(contextSize)] BYTE context[]); +``` + +## Parameters + + `flag` + [in] A [CorDebugSetContextFlag](cordebugsetcontextflag-enumeration.md) flag that indicates whether the context is from the active frame on the stack, or a context obtained by unwinding the stack. + + `contextSize` + [in] The allocated size of the `CONTEXT` buffer. + + `context` + [in] The `CONTEXT` buffer. + +## Return Value + + This method returns the following specific HRESULTs as well as HRESULT errors that indicate method failure. + +|HRESULT|Description| +|-------------|-----------------| +|S_OK|The `ICorDebugStackWalk` object's context was successfully set.| +|E_FAIL|The `ICorDebugStackWalk` object's context was not set.| +|E_INVALIDARG|The context is null.| +|HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER)|The context buffer is too small.| + +## Exceptions + +## Remarks + + This method does not alter the current context of the thread. + + Setting the current context to an invalid context may cause unpredictable results from the stack walker. + + You can retrieve an exact bitwise copy of this context by immediately calling the [ICorDebugStackWalk::GetContext](icordebugstackwalk-getcontext-method.md) method. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugstaticfieldsymbol-getaddress-method.md b/docs/framework/unmanaged-api/debugging/icordebugstaticfieldsymbol-getaddress-method.md index 2d8b685b64fcd..909044b7a0cbf 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugstaticfieldsymbol-getaddress-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugstaticfieldsymbol-getaddress-method.md @@ -6,36 +6,36 @@ ms.assetid: 5a6c9a5a-ec72-4c40-a9c3-cee7baa63687 --- # ICorDebugStaticFieldSymbol::GetAddress Method -Gets the address of a static field. - -## Syntax - -```cpp -HRESULT GetAddress( - [out] CORDB_ADDRESS *pRVA -); -``` - -## Parameters - - pRVA - [out] A pointer to the relative virtual address (RVA) of the static field. - -## Remarks - +Gets the address of a static field. + +## Syntax + +```cpp +HRESULT GetAddress( + [out] CORDB_ADDRESS *pRVA +); +``` + +## Parameters + + pRVA + [out] A pointer to the relative virtual address (RVA) of the static field. + +## Remarks + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugStaticFieldSymbol Interface](icordebugstaticfieldsymbol-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugstaticfieldsymbol-getname-method.md b/docs/framework/unmanaged-api/debugging/icordebugstaticfieldsymbol-getname-method.md index b29f15a1d6331..3d317322b8ec3 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugstaticfieldsymbol-getname-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugstaticfieldsymbol-getname-method.md @@ -6,44 +6,44 @@ ms.assetid: e2be4af2-15d1-4e6a-8b68-1d78c93294a4 --- # ICorDebugStaticFieldSymbol::GetName Method -Gets the name of the static field. - -## Syntax - -```cpp -HRESULT GetName( +Gets the name of the static field. + +## Syntax + +```cpp +HRESULT GetName( [in] ULONG32 cchName, [out] ULONG32 *pcchName, - [out, size_is(cchName), length_is(*pcchName)] WCHAR szName[] -); -``` - -## Parameters - - `cchName` - [in] The number of characters in the `szName` buffer. - - `pcchName` - [out] A pointer to the number of characters actually written to the `szName` buffer. - - `szName` - [out] A character array that stores the returned name. - -## Remarks - + [out, size_is(cchName), length_is(*pcchName)] WCHAR szName[] +); +``` + +## Parameters + + `cchName` + [in] The number of characters in the `szName` buffer. + + `pcchName` + [out] A pointer to the number of characters actually written to the `szName` buffer. + + `szName` + [out] A character array that stores the returned name. + +## Remarks + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugStaticFieldSymbol Interface](icordebugstaticfieldsymbol-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugstaticfieldsymbol-getsize-method.md b/docs/framework/unmanaged-api/debugging/icordebugstaticfieldsymbol-getsize-method.md index dd0f47f865a90..4a9a93cf28a49 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugstaticfieldsymbol-getsize-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugstaticfieldsymbol-getsize-method.md @@ -6,36 +6,36 @@ ms.assetid: 72389860-7e37-4656-ba46-b6aeee1860f8 --- # ICorDebugStaticFieldSymbol::GetSize Method -Gets the size in bytes of the static field. - -## Syntax - -```cpp -HRESULT GetSize( - [out] ULONG32 *pcbSize -); -``` - -## Parameters - - `pcbSize` - [out] A pointer to length of the field. - -## Remarks - +Gets the size in bytes of the static field. + +## Syntax + +```cpp +HRESULT GetSize( + [out] ULONG32 *pcbSize +); +``` + +## Parameters + + `pcbSize` + [out] A pointer to length of the field. + +## Remarks + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugStaticFieldSymbol Interface](icordebugstaticfieldsymbol-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugstaticfieldsymbol-interface.md b/docs/framework/unmanaged-api/debugging/icordebugstaticfieldsymbol-interface.md index 751dd141da74e..61a87de2a37b0 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugstaticfieldsymbol-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugstaticfieldsymbol-interface.md @@ -6,33 +6,33 @@ ms.assetid: c0b93609-631e-4b15-878a-189ede922631 --- # ICorDebugStaticFieldSymbol Interface -Represents the debug symbol information for a static field. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetAddress Method](icordebugstaticfieldsymbol-getaddress-method.md)|Gets the address of the static field.| -|[GetName Method](icordebugstaticfieldsymbol-getname-method.md)|Gets the name of the static field.| -|[GetSize Method](icordebugstaticfieldsymbol-getsize-method.md)|Gets the size in bytes of the static field.| - -## Remarks - - The `ICorDebugStaticFieldSymbol` interface is used to retrieve the debug symbol information for a static field. - +Represents the debug symbol information for a static field. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetAddress Method](icordebugstaticfieldsymbol-getaddress-method.md)|Gets the address of the static field.| +|[GetName Method](icordebugstaticfieldsymbol-getname-method.md)|Gets the name of the static field.| +|[GetSize Method](icordebugstaticfieldsymbol-getsize-method.md)|Gets the size in bytes of the static field.| + +## Remarks + + The `ICorDebugStaticFieldSymbol` interface is used to retrieve the debug symbol information for a static field. + > [!NOTE] -> This interface is available with .NET Native only. If you implement this interface for ICorDebug scenarios outside of .NET Native, the common language runtime will ignore this interface. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This interface is available with .NET Native only. If you implement this interface for ICorDebug scenarios outside of .NET Native, the common language runtime will ignore this interface. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugInstanceFieldSymbol Interface](icordebuginstancefieldsymbol-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugstepper-deactivate-method.md b/docs/framework/unmanaged-api/debugging/icordebugstepper-deactivate-method.md index 79724e0b4f081..7a7ecf98e238d 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugstepper-deactivate-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugstepper-deactivate-method.md @@ -2,41 +2,41 @@ description: "Learn more about: ICorDebugStepper::Deactivate Method" title: "ICorDebugStepper::Deactivate Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugStepper.Deactivate" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugStepper::Deactivate" -helpviewer_keywords: +helpviewer_keywords: - "Deactivate method [.NET Framework debugging]" - "ICorDebugStepper::Deactivate method [.NET Framework debugging]" ms.assetid: 855f4199-b62d-40ce-998e-1eb4a1772142 -topic_type: +topic_type: - "apiref" --- # ICorDebugStepper::Deactivate Method -Causes this ICorDebugStepper to cancel the last step command that it received. - -## Syntax - -```cpp -HRESULT Deactivate (); -``` - -## Remarks - - A new stepping command may be issued after the most recently received step command has been canceled. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Causes this ICorDebugStepper to cancel the last step command that it received. + +## Syntax + +```cpp +HRESULT Deactivate (); +``` + +## Remarks + + A new stepping command may be issued after the most recently received step command has been canceled. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugstepper-isactive-method.md b/docs/framework/unmanaged-api/debugging/icordebugstepper-isactive-method.md index 78b5cfc9d8656..bc4c3d11b5817 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugstepper-isactive-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugstepper-isactive-method.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugStepper::IsActive Method" title: "ICorDebugStepper::IsActive Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugStepper.IsActive" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugStepper::IsActive" -helpviewer_keywords: +helpviewer_keywords: - "IsActive method, ICorDebugStepper interface [.NET Framework debugging]" - "ICorDebugStepper::IsActive method [.NET Framework debugging]" ms.assetid: 8b35e7a9-b40e-40a9-8d8e-b82e823fc575 -topic_type: +topic_type: - "apiref" --- # ICorDebugStepper::IsActive Method -Gets a value that indicates whether this ICorDebugStepper is currently executing a step. - -## Syntax - -```cpp -HRESULT IsActive ( - [out] BOOL *pbActive -); -``` - -## Parameters - - `pbActive` - [out] Returns `true` if the stepper is currently executing a step; otherwise, returns `false`. - -## Remarks - - Any step action remains active until the debugger receives a [ICorDebugManagedCallback::StepComplete](icordebugmanagedcallback-stepcomplete-method.md) call, which automatically deactivates the stepper. A stepper may also be deactivated prematurely by calling [ICorDebugStepper::Deactivate](icordebugstepper-deactivate-method.md) before the callback condition is reached. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets a value that indicates whether this ICorDebugStepper is currently executing a step. + +## Syntax + +```cpp +HRESULT IsActive ( + [out] BOOL *pbActive +); +``` + +## Parameters + + `pbActive` + [out] Returns `true` if the stepper is currently executing a step; otherwise, returns `false`. + +## Remarks + + Any step action remains active until the debugger receives a [ICorDebugManagedCallback::StepComplete](icordebugmanagedcallback-stepcomplete-method.md) call, which automatically deactivates the stepper. A stepper may also be deactivated prematurely by calling [ICorDebugStepper::Deactivate](icordebugstepper-deactivate-method.md) before the callback condition is reached. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugstepper-setinterceptmask-method.md b/docs/framework/unmanaged-api/debugging/icordebugstepper-setinterceptmask-method.md index 108fb2149df9e..1a998172ad7b4 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugstepper-setinterceptmask-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugstepper-setinterceptmask-method.md @@ -2,50 +2,50 @@ description: "Learn more about: ICorDebugStepper::SetInterceptMask Method" title: "ICorDebugStepper::SetInterceptMask Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugStepper.SetInterceptMask" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugStepper::SetInterceptMask" -helpviewer_keywords: +helpviewer_keywords: - "SetInterceptMask method [.NET Framework debugging]" - "ICorDebugStepper::SetInterceptMask method [.NET Framework debugging]" ms.assetid: 6245e2ae-5cc2-43ff-8cc1-71953d12113a -topic_type: +topic_type: - "apiref" --- # ICorDebugStepper::SetInterceptMask Method -Sets a value that specifies the types of code that are stepped into. - -## Syntax - -```cpp -HRESULT SetInterceptMask ( - [in] CorDebugIntercept mask -); -``` - -## Parameters - - `mask` - [in] A combination of values of the CorDebugIntercept enumeration that specifies the types of code. - -## Remarks - - If the bit for an interceptor is set, the stepper will complete when the given type of intercepting code is encountered. If the bit is cleared, the intercepting code will be skipped. - - The `SetInterceptMask` method may have unforeseen interactions with [ICorDebugStepper::SetUnmappedStopMask](icordebugstepper-setunmappedstopmask-method.md) (from the user's point of view). For example, if the only visible (that is, non-internal) portion of class initialization code lacks mapping information and STOP_NO_MAPPING_INFO isn't set (see the [ICorDebugStepper::SetUnmappedStopMask](icordebugstepper-setunmappedstopmask-method.md) method and the CorDebugUnmappedStop enumeration), the stepper will step over the class initialization. By default, only the INTERCEPT_NONE value of the `CorDebugIntercept` enumeration will be used. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Sets a value that specifies the types of code that are stepped into. + +## Syntax + +```cpp +HRESULT SetInterceptMask ( + [in] CorDebugIntercept mask +); +``` + +## Parameters + + `mask` + [in] A combination of values of the CorDebugIntercept enumeration that specifies the types of code. + +## Remarks + + If the bit for an interceptor is set, the stepper will complete when the given type of intercepting code is encountered. If the bit is cleared, the intercepting code will be skipped. + + The `SetInterceptMask` method may have unforeseen interactions with [ICorDebugStepper::SetUnmappedStopMask](icordebugstepper-setunmappedstopmask-method.md) (from the user's point of view). For example, if the only visible (that is, non-internal) portion of class initialization code lacks mapping information and STOP_NO_MAPPING_INFO isn't set (see the [ICorDebugStepper::SetUnmappedStopMask](icordebugstepper-setunmappedstopmask-method.md) method and the CorDebugUnmappedStop enumeration), the stepper will step over the class initialization. By default, only the INTERCEPT_NONE value of the `CorDebugIntercept` enumeration will be used. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugstepper-step-method.md b/docs/framework/unmanaged-api/debugging/icordebugstepper-step-method.md index 15229e467186b..f12acbeccb9ce 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugstepper-step-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugstepper-step-method.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugStepper::Step Method" title: "ICorDebugStepper::Step Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugStepper.Step" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugStepper::Step" -helpviewer_keywords: +helpviewer_keywords: - "Step method, ICorDebugStepper interface [.NET Framework debugging]" - "ICorDebugStepper::Step method [.NET Framework debugging]" ms.assetid: 38c1940b-ada1-40ba-8295-4c0833744e1e -topic_type: +topic_type: - "apiref" --- # ICorDebugStepper::Step Method -Causes this ICorDebugStepper to single-step through its containing thread, and optionally, to continue single-stepping through functions that are called within the thread. - -## Syntax - -```cpp -HRESULT Step ( - [in] BOOL bStepIn -); -``` - -## Parameters - - `bStepIn` - [in] Set to `true` to step into a function that is called within the thread. Set to `false` to step over the function. - -## Remarks - - The step completes when the common language runtime performs the next managed instruction in this stepper's frame. If `Step` is called on a stepper, which is not in managed code, the step will complete when the next managed code instruction is executed by the thread. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Causes this ICorDebugStepper to single-step through its containing thread, and optionally, to continue single-stepping through functions that are called within the thread. + +## Syntax + +```cpp +HRESULT Step ( + [in] BOOL bStepIn +); +``` + +## Parameters + + `bStepIn` + [in] Set to `true` to step into a function that is called within the thread. Set to `false` to step over the function. + +## Remarks + + The step completes when the common language runtime performs the next managed instruction in this stepper's frame. If `Step` is called on a stepper, which is not in managed code, the step will complete when the next managed code instruction is executed by the thread. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugstepper-stepout-method.md b/docs/framework/unmanaged-api/debugging/icordebugstepper-stepout-method.md index 4b84bca2be830..08aa2dc93bcb3 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugstepper-stepout-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugstepper-stepout-method.md @@ -2,45 +2,45 @@ description: "Learn more about: ICorDebugStepper::StepOut Method" title: "ICorDebugStepper::StepOut Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugStepper.StepOut" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugStepper::StepOut" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugStepper::StepOut method [.NET Framework debugging]" - "StepOut method [.NET Framework debugging]" ms.assetid: aae0f48c-4ede-4256-9251-a7fc85a229dc -topic_type: +topic_type: - "apiref" --- # ICorDebugStepper::StepOut Method -Causes this ICorDebugStepper to single-step through its containing thread, and to complete when the current frame returns control to the calling frame. - -## Syntax - -```cpp -HRESULT StepOut (); -``` - -## Remarks - - A `StepOut` operation will complete after returning normally from the current frame to the calling frame. - - If `StepOut` is called when in unmanaged code, the step will complete when the current frame returns to the managed code that called it. - - In .NET Framework version 2.0, do not use `StepOut` with the STOP_UNMANAGED flag set because it will fail. (Use [ICorDebugStepper::SetUnmappedStopMask](icordebugstepper-setunmappedstopmask-method.md) to set flags for stepping.) Interop debuggers must step out to native code themselves. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Causes this ICorDebugStepper to single-step through its containing thread, and to complete when the current frame returns control to the calling frame. + +## Syntax + +```cpp +HRESULT StepOut (); +``` + +## Remarks + + A `StepOut` operation will complete after returning normally from the current frame to the calling frame. + + If `StepOut` is called when in unmanaged code, the step will complete when the current frame returns to the managed code that called it. + + In .NET Framework version 2.0, do not use `StepOut` with the STOP_UNMANAGED flag set because it will fail. (Use [ICorDebugStepper::SetUnmappedStopMask](icordebugstepper-setunmappedstopmask-method.md) to set flags for stepping.) Interop debuggers must step out to native code themselves. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugstepper2-interface1.md b/docs/framework/unmanaged-api/debugging/icordebugstepper2-interface1.md index a9280fc0b90cd..585a38c8bbbc9 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugstepper2-interface1.md +++ b/docs/framework/unmanaged-api/debugging/icordebugstepper2-interface1.md @@ -2,45 +2,45 @@ description: "Learn more about: ICorDebugStepper2 Interface" title: "ICorDebugStepper2 Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugStepper2" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugStepper2" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugStepper2 interface [.NET Framework debugging]" ms.assetid: 7a191c2a-95ea-4d47-83b0-44de2b632d63 -topic_type: +topic_type: - "apiref" --- # ICorDebugStepper2 Interface -Provides support for just my code (JMC) debugging. - -## Methods - -|Method|Description| -|------------|-----------------| -|[SetJMC Method](icordebugstepper2-setjmc-method.md)|Sets a value that specifies whether this ICorDebugStepper steps only through code that is authored by an application's developer.| - -## Remarks - +Provides support for just my code (JMC) debugging. + +## Methods + +|Method|Description| +|------------|-----------------| +|[SetJMC Method](icordebugstepper2-setjmc-method.md)|Sets a value that specifies whether this ICorDebugStepper steps only through code that is authored by an application's developer.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugstepperenum-interface.md b/docs/framework/unmanaged-api/debugging/icordebugstepperenum-interface.md index 02fb377b3be09..a2fd2c3ee53e7 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugstepperenum-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugstepperenum-interface.md @@ -2,45 +2,45 @@ description: "Learn more about: ICorDebugStepperEnum Interface" title: "ICorDebugStepperEnum Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugStepperEnum" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugStepperEnum" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugStepperEnum interface [.NET Framework debugging]" ms.assetid: 988718c1-1a4a-40f2-a04c-7d67e5cfe1e2 -topic_type: +topic_type: - "apiref" --- # ICorDebugStepperEnum Interface -Implements ICorDebugEnum methods, and enumerates ICorDebugStepper arrays. - -## Methods - -|Method|Description| -|------------|-----------------| -|[Next Method](icordebugstepperenum-next-method.md)|Gets the specified number of `ICorDebugStepper` instances from the enumeration, starting at the current position.| - -## Remarks - +Implements ICorDebugEnum methods, and enumerates ICorDebugStepper arrays. + +## Methods + +|Method|Description| +|------------|-----------------| +|[Next Method](icordebugstepperenum-next-method.md)|Gets the specified number of `ICorDebugStepper` instances from the enumeration, starting at the current position.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugstringvalue-interface.md b/docs/framework/unmanaged-api/debugging/icordebugstringvalue-interface.md index 4eecfcc89aa2c..ebc8b2bc4cf8a 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugstringvalue-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugstringvalue-interface.md @@ -2,46 +2,46 @@ description: "Learn more about: ICorDebugStringValue Interface" title: "ICorDebugStringValue Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugStringValue" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugStringValue" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugStringValue interface [.NET Framework debugging]" ms.assetid: bf84d0af-53e1-4c04-bc5b-7e5f81ba2cc2 -topic_type: +topic_type: - "apiref" --- # ICorDebugStringValue Interface -A subclass of ICorDebugHeapValue that applies to string values. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetLength Method](icordebugstringvalue-getlength-method.md)|Gets the number of characters in the string referenced by this `ICorDebugStringValue`.| -|[GetString Method](icordebugstringvalue-getstring-method.md)|Gets the string referenced by this `ICorDebugStringValue`.| - -## Remarks - +A subclass of ICorDebugHeapValue that applies to string values. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetLength Method](icordebugstringvalue-getlength-method.md)|Gets the number of characters in the string referenced by this `ICorDebugStringValue`.| +|[GetString Method](icordebugstringvalue-getstring-method.md)|Gets the string referenced by this `ICorDebugStringValue`.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getassemblyimagebytes-method.md b/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getassemblyimagebytes-method.md index 6ef97258fce85..3e6daec0a7450 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getassemblyimagebytes-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getassemblyimagebytes-method.md @@ -6,44 +6,44 @@ ms.assetid: 3db215aa-e180-4f70-8d23-6d5a0ffbc8e5 --- # ICorDebugSymbolProvider::GetAssemblyImageBytes Method -Reads data from a merged assembly given a relative virtual address (RVA) in the merged assembly. - -## Syntax - -```cpp -HRESULT GetAssemblyImageBytes( +Reads data from a merged assembly given a relative virtual address (RVA) in the merged assembly. + +## Syntax + +```cpp +HRESULT GetAssemblyImageBytes( [in] CORDB_ADDRESS rva, [in] ULONG32 length, - [out] ICorDebugMemoryBuffer** ppMemoryBuffer -); -``` - -## Parameters - - `rva` - [in] A relative virtual address (RVA) in a merged assembly. - - `length` - The number of bytes to read from the merged assembly. - - `ppMemoryBuffer` - A pointer to the address of an [ICorDebugMemoryBuffer](icordebugmemorybuffer-interface.md) object that contains information about the memory buffer with merged assembly metadata. - -## Remarks - + [out] ICorDebugMemoryBuffer** ppMemoryBuffer +); +``` + +## Parameters + + `rva` + [in] A relative virtual address (RVA) in a merged assembly. + + `length` + The number of bytes to read from the merged assembly. + + `ppMemoryBuffer` + A pointer to the address of an [ICorDebugMemoryBuffer](icordebugmemorybuffer-interface.md) object that contains information about the memory buffer with merged assembly metadata. + +## Remarks + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugSymbolProvider Interface](icordebugsymbolprovider-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getassemblyimagemetadata-method.md b/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getassemblyimagemetadata-method.md index a179b8fd12017..1fc1aab7e42ad 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getassemblyimagemetadata-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getassemblyimagemetadata-method.md @@ -6,36 +6,36 @@ ms.assetid: c3c9de67-b865-4ecf-b887-1f1d0719a0c0 --- # ICorDebugSymbolProvider::GetAssemblyImageMetadata Method -Returns the metadata from a merged assembly. - -## Syntax - -```cpp -HRESULT GetAssemblyImageMetadata( - [out] ICorDebugMemoryBuffer** ppMemoryBuffer -); -``` - -## Parameters - - `ppMemoryBuffer` - [out] A pointer to the address of an [ICorDebugMemoryBuffer](icordebugmemorybuffer-interface.md) object that contains information about the size and address of the merged assembly's metadata. - -## Remarks - +Returns the metadata from a merged assembly. + +## Syntax + +```cpp +HRESULT GetAssemblyImageMetadata( + [out] ICorDebugMemoryBuffer** ppMemoryBuffer +); +``` + +## Parameters + + `ppMemoryBuffer` + [out] A pointer to the address of an [ICorDebugMemoryBuffer](icordebugmemorybuffer-interface.md) object that contains information about the size and address of the merged assembly's metadata. + +## Remarks + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugSymbolProvider Interface](icordebugsymbolprovider-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getcoderange-method.md b/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getcoderange-method.md index 4a906e29be861..5f24d028a22f6 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getcoderange-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getcoderange-method.md @@ -6,44 +6,44 @@ ms.assetid: 49a2451f-d250-4e73-aa96-9ff49d9f11c6 --- # ICorDebugSymbolProvider::GetCodeRange Method -Gets the method start address and size given a relative virtual address (RVA) in a method. - -## Syntax - -```cpp -HRESULT GetCodeRange( +Gets the method start address and size given a relative virtual address (RVA) in a method. + +## Syntax + +```cpp +HRESULT GetCodeRange( [in] ULONG32 codeRva, [out] ULONG32* pCodeStartAddress, - [out] ULONG32* pCodeSize -); -``` - -## Parameters - - `codeRva` - [in] The relative virtual address (RVA) in a method. - - `pCodeStartAddress` - [out] A pointer to the starting address of the method. - - `pCodeSize` - A pointer to the method code size (the number of bytes of the method's code). - -## Remarks - + [out] ULONG32* pCodeSize +); +``` + +## Parameters + + `codeRva` + [in] The relative virtual address (RVA) in a method. + + `pCodeStartAddress` + [out] A pointer to the starting address of the method. + + `pCodeSize` + A pointer to the method code size (the number of bytes of the method's code). + +## Remarks + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugSymbolProvider Interface](icordebugsymbolprovider-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getinstancefieldsymbols-method.md b/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getinstancefieldsymbols-method.md index c8ed3af46852b..d0840304f594e 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getinstancefieldsymbols-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getinstancefieldsymbols-method.md @@ -6,52 +6,52 @@ ms.assetid: a29b9233-ee67-4b53-b8bc-c00b281e7edb --- # ICorDebugSymbolProvider::GetInstanceFieldSymbols Method -Gets the instance field symbols that correspond to a typespec signature. - -## Syntax - -```cpp -HRESULT GetInstanceFieldSymbols( - [in] ULONG32 cbSignature, - [in, size_is(cbSignature)] BYTE typeSig[], - [in] ULONG32 cRequestedSymbols, - [out] ULONG32 *pcFetchedSymbols, - [out, size_is(cRequestedSymbols), length_is(*pcFetchedSymbols)] ICorDebugInstanceFieldSymbol *pSymbols[] -); -``` - -## Parameters - - `cbSignature` - [in] The number of bytes in the `typeSig` array. - - `typeSig` - [in] A byte array that contains the `typespec` signature. - - `cRequestedSymbols` - [in] The number of symbols requested. - - `pcFetchedSymbols` - [out] A pointer to the number of symbols retrieved by the method. - - `pSymbols` - [out] A pointer to an [ICorDebugStaticFieldSymbol](icordebugstaticfieldsymbol-interface.md) array that contains the requested instance field symbols. - -## Remarks - +Gets the instance field symbols that correspond to a typespec signature. + +## Syntax + +```cpp +HRESULT GetInstanceFieldSymbols( + [in] ULONG32 cbSignature, + [in, size_is(cbSignature)] BYTE typeSig[], + [in] ULONG32 cRequestedSymbols, + [out] ULONG32 *pcFetchedSymbols, + [out, size_is(cRequestedSymbols), length_is(*pcFetchedSymbols)] ICorDebugInstanceFieldSymbol *pSymbols[] +); +``` + +## Parameters + + `cbSignature` + [in] The number of bytes in the `typeSig` array. + + `typeSig` + [in] A byte array that contains the `typespec` signature. + + `cRequestedSymbols` + [in] The number of symbols requested. + + `pcFetchedSymbols` + [out] A pointer to the number of symbols retrieved by the method. + + `pSymbols` + [out] A pointer to an [ICorDebugStaticFieldSymbol](icordebugstaticfieldsymbol-interface.md) array that contains the requested instance field symbols. + +## Remarks + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [GetStaticFieldSymbols Method](icordebugsymbolprovider-getstaticfieldsymbols-method.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getmergedassemblyrecords-method.md b/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getmergedassemblyrecords-method.md index 022f39dfd5867..f21e5a42deda5 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getmergedassemblyrecords-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getmergedassemblyrecords-method.md @@ -6,44 +6,44 @@ ms.assetid: cc4c510d-550d-4941-af34-81987caf3425 --- # ICorDebugSymbolProvider::GetMergedAssemblyRecords Method -Gets the symbol records for all the merged assemblies. - -## Syntax - -```cpp -HRESULT GetMergedAssemblyRecords( - [in] ULONG32 cRequestedRecords, - [out] ULONG32 *pcFetchedRecords, - [out, size_is(cRequestedRecords), length_is(*pcFetchedRecords)] ICorDebugMergedAssemblyRecord *pRecords[] -); -``` - -## Parameters - - `cRequestedRecords` - [in] The number of symbol records requested. - - `pcFetchedRecords` - [out] A pointer to the number of symbol records retrieved by the method. - - `pRecords` - A pointer to an array of [ICorDebugMergedAssemblyRecord](icordebugmergedassemblyrecord-interface.md) objects. - -## Remarks - +Gets the symbol records for all the merged assemblies. + +## Syntax + +```cpp +HRESULT GetMergedAssemblyRecords( + [in] ULONG32 cRequestedRecords, + [out] ULONG32 *pcFetchedRecords, + [out, size_is(cRequestedRecords), length_is(*pcFetchedRecords)] ICorDebugMergedAssemblyRecord *pRecords[] +); +``` + +## Parameters + + `cRequestedRecords` + [in] The number of symbol records requested. + + `pcFetchedRecords` + [out] A pointer to the number of symbol records retrieved by the method. + + `pRecords` + A pointer to an array of [ICorDebugMergedAssemblyRecord](icordebugmergedassemblyrecord-interface.md) objects. + +## Remarks + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugSymbolProvider Interface](icordebugsymbolprovider-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getmethodlocalsymbols-method.md b/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getmethodlocalsymbols-method.md index f1df71c30180a..cf1c86c10f060 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getmethodlocalsymbols-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getmethodlocalsymbols-method.md @@ -6,48 +6,48 @@ ms.assetid: 8b989e38-e779-49d1-9e90-f1f920484b08 --- # ICorDebugSymbolProvider::GetMethodLocalSymbols Method -Gets a method's local symbols given the relative virtual address (RVA) of that method. - -## Syntax - -```cpp -HRESULT GetMethodLocalSymbols( - [in] ULONG32 nativeRVA, - [in] ULONG32 cRequestedSymbols, - [out] ULONG32 *pcFetchedSymbols, - [out, size_is(cRequestedSymbols), length_is(*pcFetchedSymbols)] ICorDebugVariableSymbol *pSymbols[] -); -``` - -## Parameters - - `nativeRVA` - [in] The native relative virtual address of the method. - - `cRequestedSymbols` - [in] The number of local symbols requested. - - `pcFetchedSymbols` - [out] A pointer to the number of symbols retrieved by the method. - - `pcFetchedSymbols` - [out] A pointer to an [ICorDebugVariableSymbol](icordebugvariablesymbol-interface.md) array that contains the method's local symbols. - -## Remarks - +Gets a method's local symbols given the relative virtual address (RVA) of that method. + +## Syntax + +```cpp +HRESULT GetMethodLocalSymbols( + [in] ULONG32 nativeRVA, + [in] ULONG32 cRequestedSymbols, + [out] ULONG32 *pcFetchedSymbols, + [out, size_is(cRequestedSymbols), length_is(*pcFetchedSymbols)] ICorDebugVariableSymbol *pSymbols[] +); +``` + +## Parameters + + `nativeRVA` + [in] The native relative virtual address of the method. + + `cRequestedSymbols` + [in] The number of local symbols requested. + + `pcFetchedSymbols` + [out] A pointer to the number of symbols retrieved by the method. + + `pcFetchedSymbols` + [out] A pointer to an [ICorDebugVariableSymbol](icordebugvariablesymbol-interface.md) array that contains the method's local symbols. + +## Remarks + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [GetMethodParameterSymbols Method](icordebugsymbolprovider-getmethodparametersymbols-method.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getmethodparametersymbols-method.md b/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getmethodparametersymbols-method.md index bc1e4bc2007b0..953eb9a80d4eb 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getmethodparametersymbols-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getmethodparametersymbols-method.md @@ -6,48 +6,48 @@ ms.assetid: 58b7c0b9-f6ad-4b49-b92d-0e421cfd0ec6 --- # ICorDebugSymbolProvider::GetMethodParameterSymbols Method -Gets a method's parameter symbols given the relative virtual address (RVA) of that method. - -## Syntax - -```cpp -HRESULT GetMethodParameterSymbols( - [in] ULONG32 nativeRVA, - [in] ULONG32 cRequestedSymbols, - [out] ULONG32 *pcFetchedSymbols, - [out, size_is(cRequestedSymbols), length_is(*pcFetchedSymbols)] ICorDebugVariableSymbol *pSymbols[] -); -``` - -## Parameters - - `nativeRVA` - [in] The native relative virtual address of the method. - - `cRequestedSymbols` - [in] The number of local symbols requested. - - `pcFetchedSymbols` - [out] A pointer to the number of symbols retrieved by the method. - - `pcFetchedSymbols` - [out] A pointer to an [ICorDebugVariableSymbol](icordebugvariablesymbol-interface.md) array that contains the method's local symbols. - -## Remarks - +Gets a method's parameter symbols given the relative virtual address (RVA) of that method. + +## Syntax + +```cpp +HRESULT GetMethodParameterSymbols( + [in] ULONG32 nativeRVA, + [in] ULONG32 cRequestedSymbols, + [out] ULONG32 *pcFetchedSymbols, + [out, size_is(cRequestedSymbols), length_is(*pcFetchedSymbols)] ICorDebugVariableSymbol *pSymbols[] +); +``` + +## Parameters + + `nativeRVA` + [in] The native relative virtual address of the method. + + `cRequestedSymbols` + [in] The number of local symbols requested. + + `pcFetchedSymbols` + [out] A pointer to the number of symbols retrieved by the method. + + `pcFetchedSymbols` + [out] A pointer to an [ICorDebugVariableSymbol](icordebugvariablesymbol-interface.md) array that contains the method's local symbols. + +## Remarks + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [GetMethodLocalSymbols Method](icordebugsymbolprovider-getmethodlocalsymbols-method.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getmethodprops-method.md b/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getmethodprops-method.md index 5f3b4f2ea06e0..bf606bbde4e34 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getmethodprops-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getmethodprops-method.md @@ -6,58 +6,58 @@ ms.assetid: 8f836b80-b7a5-460b-bf76-5f0e45652aea --- # ICorDebugSymbolProvider::GetMethodProps Method -Returns information about method properties, such as the method's metadata token and information about its generic parameters, given a relative virtual address (RVA) in that method. - -## Syntax - -```cpp -HRESULT GetMethodProps( - [in] ULONG32 codeRva, - [out] mdToken *pMethodToken, - [out] ULONG32 *pcGenericParams, - [in] ULONG32 cbSignature, - [out] ULONG32 *pcbSignature, - [out, size_is(cbSignature), length_is(*pcbSignature)] BYTE signature[] -); -``` - -## Parameters - - `codeRVA` - [in] A relative virtual address in the method about which information is to be retrieved. - - `pMethodToken` - [out] A pointer to the method's metadata token. - - `pcGenericParams` - [out] A pointer to the number of generic parameters associated with this method. - - `cbSignature` - [in] The size of the `signature` array. See the Remarks section. - - `pcbSignature` - [out] A pointer to the size of the returned `signature` array. - - `signature` - [out] A buffer that holds the typespec signatures of all generic parameters. - -## Remarks - - To get the required size of the method's `signature` array, set the `cbSignature` argument to 0 and `signature` to **null**. When the method returns, `pcbSignature` will contain the number of bytes required for the `signature` array. - +Returns information about method properties, such as the method's metadata token and information about its generic parameters, given a relative virtual address (RVA) in that method. + +## Syntax + +```cpp +HRESULT GetMethodProps( + [in] ULONG32 codeRva, + [out] mdToken *pMethodToken, + [out] ULONG32 *pcGenericParams, + [in] ULONG32 cbSignature, + [out] ULONG32 *pcbSignature, + [out, size_is(cbSignature), length_is(*pcbSignature)] BYTE signature[] +); +``` + +## Parameters + + `codeRVA` + [in] A relative virtual address in the method about which information is to be retrieved. + + `pMethodToken` + [out] A pointer to the method's metadata token. + + `pcGenericParams` + [out] A pointer to the number of generic parameters associated with this method. + + `cbSignature` + [in] The size of the `signature` array. See the Remarks section. + + `pcbSignature` + [out] A pointer to the size of the returned `signature` array. + + `signature` + [out] A buffer that holds the typespec signatures of all generic parameters. + +## Remarks + + To get the required size of the method's `signature` array, set the `cbSignature` argument to 0 and `signature` to **null**. When the method returns, `pcbSignature` will contain the number of bytes required for the `signature` array. + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [GetTypeProps Method](icordebugsymbolprovider-gettypeprops-method.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getobjectsize-method.md b/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getobjectsize-method.md index afa580bbda3f3..e02976485ed03 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getobjectsize-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getobjectsize-method.md @@ -6,44 +6,44 @@ ms.assetid: 3c564396-ac64-4ef3-b4f6-df96f1d46fc7 --- # ICorDebugSymbolProvider::GetObjectSize Method -Returns the object size for an object based on its typespec signature. - -## Syntax - -```cpp -HRESULT GetObjectSize( - [in] ULONG32 cbSignature, - [in, size_is(cbSignature)] BYTE typeSig[], - [out] ULONG32 *pObjectSize -); -``` - -## Parameters - - `cbSignature` - [in] The number of bytes in the typespec signature. - - typeSig - [in] The typespec signature. - - `pObjectSize` - [out] A pointer to the size of the object. - -## Remarks - +Returns the object size for an object based on its typespec signature. + +## Syntax + +```cpp +HRESULT GetObjectSize( + [in] ULONG32 cbSignature, + [in, size_is(cbSignature)] BYTE typeSig[], + [out] ULONG32 *pObjectSize +); +``` + +## Parameters + + `cbSignature` + [in] The number of bytes in the typespec signature. + + typeSig + [in] The typespec signature. + + `pObjectSize` + [out] A pointer to the size of the object. + +## Remarks + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugSymbolProvider Interface](icordebugsymbolprovider-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getstaticfieldsymbols-method.md b/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getstaticfieldsymbols-method.md index cc976db47259f..cdcbdd85230f7 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getstaticfieldsymbols-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-getstaticfieldsymbols-method.md @@ -6,52 +6,52 @@ ms.assetid: b178367f-a6e4-413c-b06f-daf3804b456b --- # ICorDebugSymbolProvider::GetStaticFieldSymbols Method -Gets the static field symbols that correspond to a typespec signature. - -## Syntax - -```cpp -HRESULT GetStaticFieldSymbols( - [in] ULONG32 cbSignature, - [in, size_is(cbSignature)] BYTE typeSig[], - [in] ULONG32 cRequestedSymbols, - [out] ULONG32 *pcFetchedSymbols, - [out, size_is(cRequestedSymbols), length_is(*pcFetchedSymbols)] ICorDebugStaticFieldSymbol *pSymbols[] -); -``` - -## Parameters - - `cbSignature` - [in] The number of bytes in the `typeSig` array. - - `typeSig` - [in] A byte array that contains the `typespec` signature. - - `cRequestedSymbols` - [in] The number of symbols requested. - - `pcFetchedSymbols` - [out] A pointer to the number of symbols retrieved by the method. - - `pSymbols` - [out] A pointer to an [ICorDebugStaticFieldSymbol](icordebugstaticfieldsymbol-interface.md) array that contains the requested static field symbols. - -## Remarks - +Gets the static field symbols that correspond to a typespec signature. + +## Syntax + +```cpp +HRESULT GetStaticFieldSymbols( + [in] ULONG32 cbSignature, + [in, size_is(cbSignature)] BYTE typeSig[], + [in] ULONG32 cRequestedSymbols, + [out] ULONG32 *pcFetchedSymbols, + [out, size_is(cRequestedSymbols), length_is(*pcFetchedSymbols)] ICorDebugStaticFieldSymbol *pSymbols[] +); +``` + +## Parameters + + `cbSignature` + [in] The number of bytes in the `typeSig` array. + + `typeSig` + [in] A byte array that contains the `typespec` signature. + + `cRequestedSymbols` + [in] The number of symbols requested. + + `pcFetchedSymbols` + [out] A pointer to the number of symbols retrieved by the method. + + `pSymbols` + [out] A pointer to an [ICorDebugStaticFieldSymbol](icordebugstaticfieldsymbol-interface.md) array that contains the requested static field symbols. + +## Remarks + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [GetInstanceFieldSymbols Method](icordebugsymbolprovider-getinstancefieldsymbols-method.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-gettypeprops-method.md b/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-gettypeprops-method.md index 6d7f46a80558f..f49ae156e0d13 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-gettypeprops-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-gettypeprops-method.md @@ -6,50 +6,50 @@ ms.assetid: 35ac4140-91ea-4c77-b1c4-1daf41986ca5 --- # ICorDebugSymbolProvider::GetTypeProps Method -Returns information about a type's properties, such as the number of signature of its generic parameters, given a relative virtual address (RVA) in a vtable. - -## Syntax - -```cpp -HRESULT GetTypeProps( - [in] ULONG32 vtableRva, - [in] ULONG32 cbSignature, - [out] ULONG32 *pcbSignature, - [out, size_is(cbSignature), length_is(*pcbSignature)] BYTE signature[] -); -``` - -## Parameters - - `tableRva` - [in] A relative virtual address (RVA) in a vtable. - - `cbSignature` - [in] The size of the `signature` array. See the Remarks section. - - `pcbSignature` - [out] [out] A pointer to the size of the returned `signature` array. - - `signature` - [out] A buffer that holds the typespec signatures of all generic parameters. - -## Remarks - - To get the required size of the type's `signature` array, set the `cbSignature` argument to 0 and `signature` to **null**. When the method returns, `pcbSignature` will contain the number of bytes required for the `signature` array. - +Returns information about a type's properties, such as the number of signature of its generic parameters, given a relative virtual address (RVA) in a vtable. + +## Syntax + +```cpp +HRESULT GetTypeProps( + [in] ULONG32 vtableRva, + [in] ULONG32 cbSignature, + [out] ULONG32 *pcbSignature, + [out, size_is(cbSignature), length_is(*pcbSignature)] BYTE signature[] +); +``` + +## Parameters + + `tableRva` + [in] A relative virtual address (RVA) in a vtable. + + `cbSignature` + [in] The size of the `signature` array. See the Remarks section. + + `pcbSignature` + [out] [out] A pointer to the size of the returned `signature` array. + + `signature` + [out] A buffer that holds the typespec signatures of all generic parameters. + +## Remarks + + To get the required size of the type's `signature` array, set the `cbSignature` argument to 0 and `signature` to **null**. When the method returns, `pcbSignature` will contain the number of bytes required for the `signature` array. + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [GetMethodProps Method](icordebugsymbolprovider-getmethodprops-method.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-interface.md b/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-interface.md index b42c9b48c71e7..b26713735566e 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider-interface.md @@ -6,39 +6,39 @@ ms.assetid: 85b24196-b6c6-4bda-9de3-47180bd6ff96 --- # ICorDebugSymbolProvider Interface -Provides methods that can be used to retrieve debug symbol information. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetAssemblyImageBytes Method](icordebugsymbolprovider-getassemblyimagebytes-method.md)|Reads data from a merged assembly given a relative virtual address (RVA) in the merged assembly.| -|[GetAssemblyImageMetadata Method](icordebugsymbolprovider-getassemblyimagemetadata-method.md)|Returns the metadata from a merged assembly.| -|[GetCodeRange Method](icordebugsymbolprovider-getcoderange-method.md)|Gets the method start address and size given a relative virtual address (RVA) in a method.| -|[GetInstanceFieldSymbols Method](icordebugsymbolprovider-getinstancefieldsymbols-method.md)|Gets the instance field symbols that correspond to a typespec signature.| -|[GetMergedAssemblyRecords Method](icordebugsymbolprovider-getmergedassemblyrecords-method.md)|Gets the symbol records for all the merged assemblies.| -|[GetMethodLocalSymbols Method](icordebugsymbolprovider-getmethodlocalsymbols-method.md)|Gets a method's local symbols given the relative virtual address (RVA) of that method.| -|[GetMethodParameterSymbols Method](icordebugsymbolprovider-getmethodparametersymbols-method.md)|Gets a method's parameter symbols given the relative virtual address (RVA) of that method.| -|[GetMethodProps Method](icordebugsymbolprovider-getmethodprops-method.md)|Returns information about method properties, such as the method's metadata token and information about its generic parameters, given a relative virtual address (RVA) in that method.| -|[GetObjectSize Method](icordebugsymbolprovider-getobjectsize-method.md)|Returns the object size for an object based on its typespec signature.| -|[GetStaticFieldSymbols Method](icordebugsymbolprovider-getstaticfieldsymbols-method.md)|Gets the static field symbols that correspond to a typespec signature.| -|[GetTypeProps Method](icordebugsymbolprovider-gettypeprops-method.md)|Returns information about a type's properties, such as the number of signature of its generic parameters, given a relative virtual address (RVA) in a vtable.| - -## Remarks - +Provides methods that can be used to retrieve debug symbol information. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetAssemblyImageBytes Method](icordebugsymbolprovider-getassemblyimagebytes-method.md)|Reads data from a merged assembly given a relative virtual address (RVA) in the merged assembly.| +|[GetAssemblyImageMetadata Method](icordebugsymbolprovider-getassemblyimagemetadata-method.md)|Returns the metadata from a merged assembly.| +|[GetCodeRange Method](icordebugsymbolprovider-getcoderange-method.md)|Gets the method start address and size given a relative virtual address (RVA) in a method.| +|[GetInstanceFieldSymbols Method](icordebugsymbolprovider-getinstancefieldsymbols-method.md)|Gets the instance field symbols that correspond to a typespec signature.| +|[GetMergedAssemblyRecords Method](icordebugsymbolprovider-getmergedassemblyrecords-method.md)|Gets the symbol records for all the merged assemblies.| +|[GetMethodLocalSymbols Method](icordebugsymbolprovider-getmethodlocalsymbols-method.md)|Gets a method's local symbols given the relative virtual address (RVA) of that method.| +|[GetMethodParameterSymbols Method](icordebugsymbolprovider-getmethodparametersymbols-method.md)|Gets a method's parameter symbols given the relative virtual address (RVA) of that method.| +|[GetMethodProps Method](icordebugsymbolprovider-getmethodprops-method.md)|Returns information about method properties, such as the method's metadata token and information about its generic parameters, given a relative virtual address (RVA) in that method.| +|[GetObjectSize Method](icordebugsymbolprovider-getobjectsize-method.md)|Returns the object size for an object based on its typespec signature.| +|[GetStaticFieldSymbols Method](icordebugsymbolprovider-getstaticfieldsymbols-method.md)|Gets the static field symbols that correspond to a typespec signature.| +|[GetTypeProps Method](icordebugsymbolprovider-gettypeprops-method.md)|Returns information about a type's properties, such as the number of signature of its generic parameters, given a relative virtual address (RVA) in a vtable.| + +## Remarks + > [!NOTE] -> This interface is available with .NET Native only. If you implement this interface for ICorDebug scenarios outside of .NET Native, the common language runtime will ignore this interface. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This interface is available with .NET Native only. If you implement this interface for ICorDebug scenarios outside of .NET Native, the common language runtime will ignore this interface. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider2-getframeprops-method.md b/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider2-getframeprops-method.md index 68af3de4473b1..3711e4265654c 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider2-getframeprops-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider2-getframeprops-method.md @@ -6,44 +6,44 @@ ms.assetid: f07b73f3-188d-43a9-8f7d-44dce2f1ddb7 --- # ICorDebugSymbolProvider2::GetFrameProps Method -Returns the method starting relative virtual address of a method and the parent frame given a code relative virtual address. - -## Syntax - -```cpp -HRESULT GetFrameProps( - [in] ULONG32 codeRva, - [out] ULONG32 *pCodeStartRva, - [out] ULONG32 *pParentFrameStartRva -); -``` - -## Parameters - - `codeRva` - [in] A code relative virtual address. - - `pCodeStartRva` - [out] A pointer to the method's starting relative virtual address. - - `pParentFrameStartRva` - [out] A pointer to the frame's starting relative virtual address. - -## Remarks - +Returns the method starting relative virtual address of a method and the parent frame given a code relative virtual address. + +## Syntax + +```cpp +HRESULT GetFrameProps( + [in] ULONG32 codeRva, + [out] ULONG32 *pCodeStartRva, + [out] ULONG32 *pParentFrameStartRva +); +``` + +## Parameters + + `codeRva` + [in] A code relative virtual address. + + `pCodeStartRva` + [out] A pointer to the method's starting relative virtual address. + + `pParentFrameStartRva` + [out] A pointer to the frame's starting relative virtual address. + +## Remarks + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugSymbolProvider2 Interface](icordebugsymbolprovider2-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider2-interface.md b/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider2-interface.md index 9555f41b081b3..c0d1c82cb86aa 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider2-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugsymbolprovider2-interface.md @@ -6,30 +6,30 @@ ms.assetid: 1c9c3d92-f0de-4d4d-87f1-0c702a4808af --- # ICorDebugSymbolProvider2 Interface -Logically extends the [ICorDebugSymbolProvider](icordebugsymbolprovider-interface.md) interface to retrieve additional debug symbol information. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetFrameProps Method](icordebugsymbolprovider2-getframeprops-method.md)|Returns the method starting relative virtual address of a method and the parent frame given a code relative virtual address.| -|[GetGenericDictionaryInfo Method](icordebugsymbolprovider2-getgenericdictionaryinfo-method.md)|Retrieves a generic dictionary map.| - -## Remarks - +Logically extends the [ICorDebugSymbolProvider](icordebugsymbolprovider-interface.md) interface to retrieve additional debug symbol information. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetFrameProps Method](icordebugsymbolprovider2-getframeprops-method.md)|Returns the method starting relative virtual address of a method and the parent frame given a code relative virtual address.| +|[GetGenericDictionaryInfo Method](icordebugsymbolprovider2-getgenericdictionaryinfo-method.md)|Retrieves a generic dictionary map.| + +## Remarks + > [!NOTE] -> This interface is available with .NET Native only. If you implement this interface for ICorDebug scenarios outside of .NET Native, the common language runtime will ignore this interface. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This interface is available with .NET Native only. If you implement this interface for ICorDebug scenarios outside of .NET Native, the common language runtime will ignore this interface. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugSymbolProvider Interface](icordebugsymbolprovider-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugthread-createeval-method.md b/docs/framework/unmanaged-api/debugging/icordebugthread-createeval-method.md index e792feffce60c..15e07be4fbd7b 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugthread-createeval-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugthread-createeval-method.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugThread::CreateEval Method" title: "ICorDebugThread::CreateEval Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugThread.CreateEval" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugThread::CreateEval" -helpviewer_keywords: +helpviewer_keywords: - "CreateEval method [.NET Framework debugging]" - "ICorDebugThread::CreateEval method [.NET Framework debugging]" ms.assetid: 36605067-33d3-4579-9c72-fb0e551ab0f1 -topic_type: +topic_type: - "apiref" --- # ICorDebugThread::CreateEval Method -Creates an ICorDebugEval object that collects and exposes the functionality of this ICorDebugThread. - -## Syntax - -```cpp -HRESULT CreateEval ( - [out] ICorDebugEval **ppEval -); -``` - -## Parameters - - `ppEval` - [out] A pointer to the address of an `ICorDebugEval` object that collects and exposes the functionality of this thread. - -## Remarks - - The evaluation object will push a new chain on the thread before doing its computation. This interrupts the computation currently being performed on the thread until the evaluation completes. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Creates an ICorDebugEval object that collects and exposes the functionality of this ICorDebugThread. + +## Syntax + +```cpp +HRESULT CreateEval ( + [out] ICorDebugEval **ppEval +); +``` + +## Parameters + + `ppEval` + [out] A pointer to the address of an `ICorDebugEval` object that collects and exposes the functionality of this thread. + +## Remarks + + The evaluation object will push a new chain on the thread before doing its computation. This interrupts the computation currently being performed on the thread until the evaluation completes. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugthread-createstepper-method.md b/docs/framework/unmanaged-api/debugging/icordebugthread-createstepper-method.md index ca5999d08545e..3fe6d9b4237a0 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugthread-createstepper-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugthread-createstepper-method.md @@ -2,50 +2,50 @@ description: "Learn more about: ICorDebugThread::CreateStepper Method" title: "ICorDebugThread::CreateStepper Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugThread.CreateStepper" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugThread::CreateStepper" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugThread::CreateStepper method [.NET Framework debugging]" - "CreateStepper method, ICorDebugThread interface [.NET Framework debugging]" ms.assetid: 4657443f-dd12-431b-a648-175c23f13c83 -topic_type: +topic_type: - "apiref" --- # ICorDebugThread::CreateStepper Method -Creates an ICorDebugStepper object that allows stepping through the active frame of this ICorDebugThread. - -## Syntax - -```cpp -HRESULT CreateStepper ( - [out] ICorDebugStepper **ppStepper -); -``` - -## Parameters - - `ppStepper` - [out] A pointer to the address of an `ICorDebugStepper` object that allows stepping through the active frame of this thread. - -## Remarks - - The active frame may be unmanaged code. - - The `ICorDebugStepper` interface must be used to perform the actual stepping. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Creates an ICorDebugStepper object that allows stepping through the active frame of this ICorDebugThread. + +## Syntax + +```cpp +HRESULT CreateStepper ( + [out] ICorDebugStepper **ppStepper +); +``` + +## Parameters + + `ppStepper` + [out] A pointer to the address of an `ICorDebugStepper` object that allows stepping through the active frame of this thread. + +## Remarks + + The active frame may be unmanaged code. + + The `ICorDebugStepper` interface must be used to perform the actual stepping. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugthread-enumeratechains-method.md b/docs/framework/unmanaged-api/debugging/icordebugthread-enumeratechains-method.md index ddaa3e165b4ed..ecb4e61b10b51 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugthread-enumeratechains-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugthread-enumeratechains-method.md @@ -2,58 +2,58 @@ description: "Learn more about: ICorDebugThread::EnumerateChains Method" title: "ICorDebugThread::EnumerateChains Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugThread.EnumerateChains" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugThread::EnumerateChains" -helpviewer_keywords: +helpviewer_keywords: - "EnumerateChains method [.NET Framework debugging]" - "ICorDebugThread::EnumerateChains method [.NET Framework debugging]" ms.assetid: ec00bc21-117e-4acd-9301-2cfafd5be8d3 -topic_type: +topic_type: - "apiref" --- # ICorDebugThread::EnumerateChains Method -Gets an interface pointer to an ICorDebugChainEnum enumerator that contains all the stack chains in this ICorDebugThread object. - -## Syntax - -```cpp -HRESULT EnumerateChains ( - [out] ICorDebugChainEnum **ppChains -); -``` - -## Parameters - - `ppChains` - [out] A pointer to the address of an `ICorDebugChainEnum` object that allows enumeration of all the stack chains in this thread, starting at the active (that is, the most recent) chain. - -## Remarks - - The stack chain represents the physical call stack for the thread. The following circumstances create a stack chain boundary: - -- A managed-to-unmanaged or unmanaged-to-managed transition. - -- A context switch. - -- A debugger hijacking of a user thread. - - In the simple case for a thread that is running purely managed code in a single context, a one-to-one correspondence will exist between threads and stack chains. - - A debugger may want to rearrange the physical call stacks of all threads into logical call stacks. This would involve sorting all the threads' chains by their caller/callee relationships and regrouping them. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets an interface pointer to an ICorDebugChainEnum enumerator that contains all the stack chains in this ICorDebugThread object. + +## Syntax + +```cpp +HRESULT EnumerateChains ( + [out] ICorDebugChainEnum **ppChains +); +``` + +## Parameters + + `ppChains` + [out] A pointer to the address of an `ICorDebugChainEnum` object that allows enumeration of all the stack chains in this thread, starting at the active (that is, the most recent) chain. + +## Remarks + + The stack chain represents the physical call stack for the thread. The following circumstances create a stack chain boundary: + +- A managed-to-unmanaged or unmanaged-to-managed transition. + +- A context switch. + +- A debugger hijacking of a user thread. + + In the simple case for a thread that is running purely managed code in a single context, a one-to-one correspondence will exist between threads and stack chains. + + A debugger may want to rearrange the physical call stacks of all threads into logical call stacks. This would involve sorting all the threads' chains by their caller/callee relationships and regrouping them. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugthread-getactivechain-method.md b/docs/framework/unmanaged-api/debugging/icordebugthread-getactivechain-method.md index 9ba84bfe0c0d4..f3361bd29fdb7 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugthread-getactivechain-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugthread-getactivechain-method.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugThread::GetActiveChain Method" title: "ICorDebugThread::GetActiveChain Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugThread.GetActiveChain" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugThread::GetActiveChain" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugThread::GetActiveChain method [.NET Framework debugging]" - "GetActiveChain method [.NET Framework debugging]" ms.assetid: f50de1f7-40ef-4949-b542-1d9a61f7bfef -topic_type: +topic_type: - "apiref" --- # ICorDebugThread::GetActiveChain Method -Gets an interface pointer to the active (most recent) stack chain on this ICorDebugThread object. - -## Syntax - -```cpp -HRESULT GetActiveChain ( - [out] ICorDebugChain **ppChain -); -``` - -## Parameters - - `ppChain` - [out] A pointer to the address of an ICorDebugChain object that represents the stack chain. - -## Remarks - - The `ppChain` parameter is null if no stack chain is currently active. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets an interface pointer to the active (most recent) stack chain on this ICorDebugThread object. + +## Syntax + +```cpp +HRESULT GetActiveChain ( + [out] ICorDebugChain **ppChain +); +``` + +## Parameters + + `ppChain` + [out] A pointer to the address of an ICorDebugChain object that represents the stack chain. + +## Remarks + + The `ppChain` parameter is null if no stack chain is currently active. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugthread-getactiveframe-method.md b/docs/framework/unmanaged-api/debugging/icordebugthread-getactiveframe-method.md index 9d4214e8943ff..cce27bb31e414 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugthread-getactiveframe-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugthread-getactiveframe-method.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugThread::GetActiveFrame Method" title: "ICorDebugThread::GetActiveFrame Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugThread.GetActiveFrame" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugThread::GetActiveFrame" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugThread::GetActiveFrame method [.NET Framework debugging]" - "GetActiveFrame method, ICorDebugThread interface [.NET Framework debugging]" ms.assetid: 8d6d3a1a-fef6-4f2f-a22c-3bdd30d70e07 -topic_type: +topic_type: - "apiref" --- # ICorDebugThread::GetActiveFrame Method -Gets an interface pointer to the active (most recent) frame on this ICorDebugThread object. - -## Syntax - -```cpp -HRESULT GetActiveFrame ( - [out] ICorDebugFrame **ppFrame -); -``` - -## Parameters - - `ppFrame` - [out] A pointer to the address of an ICorDebugFrame interface object that represents a frame. - -## Remarks - - The `ppFrame` parameter is null if no frame is currently active. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets an interface pointer to the active (most recent) frame on this ICorDebugThread object. + +## Syntax + +```cpp +HRESULT GetActiveFrame ( + [out] ICorDebugFrame **ppFrame +); +``` + +## Parameters + + `ppFrame` + [out] A pointer to the address of an ICorDebugFrame interface object that represents a frame. + +## Remarks + + The `ppFrame` parameter is null if no frame is currently active. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugthread-getcurrentexception-method.md b/docs/framework/unmanaged-api/debugging/icordebugthread-getcurrentexception-method.md index a1b282130ccc7..7dbd4d2ccf260 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugthread-getcurrentexception-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugthread-getcurrentexception-method.md @@ -2,52 +2,52 @@ description: "Learn more about: ICorDebugThread::GetCurrentException Method" title: "ICorDebugThread::GetCurrentException Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugThread.GetCurrentException" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugThread::GetCurrentException" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugThread::GetCurrentException method [.NET Framework debugging]" - "GetCurrentException method [.NET Framework debugging]" ms.assetid: 331ed465-a195-4359-8584-b82c6098b29b -topic_type: +topic_type: - "apiref" --- # ICorDebugThread::GetCurrentException Method -Gets an interface pointer to an ICorDebugValue object that represents an exception that is currently being thrown by managed code. - -## Syntax - -```cpp -HRESULT GetCurrentException ( - [out] ICorDebugValue **ppExceptionObject -); -``` - -## Parameters - - `ppExceptionObject` - [out] A pointer to the address of an `ICorDebugValue` object that represents the exception that is currently being thrown by managed code. - -## Remarks - - The exception object will exist from the time the exception is thrown until the end of the `catch` block. A function evaluation, which is performed by the ICorDebugEval methods, will clear out the exception object on setup and restore it on completion. - - Exceptions can be nested (for example, if an exception is thrown in a filter or in a function evaluation), so there may be multiple outstanding exceptions on a single thread. `GetCurrentException` returns the most current exception. - - The exception object and type may change throughout the life of the exception. For example, after an exception of type x is thrown, the common language runtime (CLR) may run out of memory and promote it to an out-of-memory exception. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets an interface pointer to an ICorDebugValue object that represents an exception that is currently being thrown by managed code. + +## Syntax + +```cpp +HRESULT GetCurrentException ( + [out] ICorDebugValue **ppExceptionObject +); +``` + +## Parameters + + `ppExceptionObject` + [out] A pointer to the address of an `ICorDebugValue` object that represents the exception that is currently being thrown by managed code. + +## Remarks + + The exception object will exist from the time the exception is thrown until the end of the `catch` block. A function evaluation, which is performed by the ICorDebugEval methods, will clear out the exception object on setup and restore it on completion. + + Exceptions can be nested (for example, if an exception is thrown in a filter or in a function evaluation), so there may be multiple outstanding exceptions on a single thread. `GetCurrentException` returns the most current exception. + + The exception object and type may change throughout the life of the exception. For example, after an exception of type x is thrown, the common language runtime (CLR) may run out of memory and promote it to an out-of-memory exception. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugthread-getdebugstate-method.md b/docs/framework/unmanaged-api/debugging/icordebugthread-getdebugstate-method.md index 8dddfd7dc44a2..b538a29d0bb22 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugthread-getdebugstate-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugthread-getdebugstate-method.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugThread::GetDebugState Method" title: "ICorDebugThread::GetDebugState Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugThread.GetDebugState" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugThread::GetDebugState" -helpviewer_keywords: +helpviewer_keywords: - "GetDebugState method [.NET Framework debugging]" - "ICorDebugThread::GetDebugState method [.NET Framework debugging]" ms.assetid: 9be27b0c-1d99-4722-b0d4-40cf6753ce5c -topic_type: +topic_type: - "apiref" --- # ICorDebugThread::GetDebugState Method -Gets the current debug state of this ICorDebugThread object. - -## Syntax - -```cpp -HRESULT GetDebugState ( - [out] CorDebugThreadState *pState -); -``` - -## Parameters - - `pState` - [out] A pointer to a bitwise combination of CorDebugThreadState enumeration values that describes the current debug state of this thread. - -## Remarks - - If the process is currently stopped, `pState` represents the debug state that would exist for this thread if the process were to be continued, not the actual current state of this thread. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets the current debug state of this ICorDebugThread object. + +## Syntax + +```cpp +HRESULT GetDebugState ( + [out] CorDebugThreadState *pState +); +``` + +## Parameters + + `pState` + [out] A pointer to a bitwise combination of CorDebugThreadState enumeration values that describes the current debug state of this thread. + +## Remarks + + If the process is currently stopped, `pState` represents the debug state that would exist for this thread if the process were to be continued, not the actual current state of this thread. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugthread-gethandle-method.md b/docs/framework/unmanaged-api/debugging/icordebugthread-gethandle-method.md index b025c69daf5c4..45e9e2fd0da3d 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugthread-gethandle-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugthread-gethandle-method.md @@ -2,50 +2,50 @@ description: "Learn more about: ICorDebugThread::GetHandle Method" title: "ICorDebugThread::GetHandle Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugThread.GetHandle" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugThread::GetHandle" -helpviewer_keywords: +helpviewer_keywords: - "GetHandle method, ICorDebugThread interface [.NET Framework debugging]" - "ICorDebugThread::GetHandle method [.NET Framework debugging]" ms.assetid: 172ef8c4-2ead-4cfc-bd2e-dee4fb7191cd -topic_type: +topic_type: - "apiref" --- # ICorDebugThread::GetHandle Method -Gets the current handle for the active part of this ICorDebugThread. - -## Syntax - -```cpp -HRESULT GetHandle ( - [out] HTHREAD *phThreadHandle -); -``` - -## Parameters - - `phThreadHandle` - [out] A pointer to an HTHREAD that is the handle of the active part of this thread. - -## Remarks - - The handle may change as the process executes, and may be different for different parts of the thread. - - This handle is owned by the debugging API. The debugger should duplicate it before using it. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets the current handle for the active part of this ICorDebugThread. + +## Syntax + +```cpp +HRESULT GetHandle ( + [out] HTHREAD *phThreadHandle +); +``` + +## Parameters + + `phThreadHandle` + [out] A pointer to an HTHREAD that is the handle of the active part of this thread. + +## Remarks + + The handle may change as the process executes, and may be different for different parts of the thread. + + This handle is owned by the debugging API. The debugger should duplicate it before using it. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugthread-getid-method.md b/docs/framework/unmanaged-api/debugging/icordebugthread-getid-method.md index ecfd77f357954..dc85cc224df72 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugthread-getid-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugthread-getid-method.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugThread::GetID Method" title: "ICorDebugThread::GetID Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugThread.GetID" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugThread::GetID" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugThread::GetID method [.NET Framework debugging]" - "GetID method, ICorDebugThread interface [.NET Framework debugging]" ms.assetid: f1de4584-92df-42f3-9da4-fca03a1c6821 -topic_type: +topic_type: - "apiref" --- # ICorDebugThread::GetID Method -Gets the current operating system identifier of the active part of this ICorDebugThread. - -## Syntax - -```cpp -HRESULT GetID ( - [out] DWORD *pdwThreadId -); -``` - -## Parameters - - `pdwThreadId` - [out] The identifier of the thread. - -## Remarks - - The operating system identifier can potentially change during execution of a process, and can be a different value for different parts of the thread. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets the current operating system identifier of the active part of this ICorDebugThread. + +## Syntax + +```cpp +HRESULT GetID ( + [out] DWORD *pdwThreadId +); +``` + +## Parameters + + `pdwThreadId` + [out] The identifier of the thread. + +## Remarks + + The operating system identifier can potentially change during execution of a process, and can be a different value for different parts of the thread. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugthread-getuserstate-method.md b/docs/framework/unmanaged-api/debugging/icordebugthread-getuserstate-method.md index 626e10e8672e7..b113841e3fd64 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugthread-getuserstate-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugthread-getuserstate-method.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugThread::GetUserState Method" title: "ICorDebugThread::GetUserState Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugThread.GetUserState" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugThread::GetUserState" -helpviewer_keywords: +helpviewer_keywords: - "GetUserState method, ICorDebugThread interface [.NET Framework debugging]" - "ICorDebugThread::GetUserState method [.NET Framework debugging]" ms.assetid: ae0cfd73-8ead-4d36-9310-dccaac9db0bd -topic_type: +topic_type: - "apiref" --- # ICorDebugThread::GetUserState Method -Gets the current user state of this ICorDebugThread. - -## Syntax - -```cpp -HRESULT GetUserState ( - [out] CorDebugUserState *pState -); -``` - -## Parameters - - `pState` - [out] A pointer to a bitwise combination of CorDebugUserState enumeration values that describe the current user state of this thread. - -## Remarks - - The user state of the thread is the state of the thread when it is examined by the program that is being debugged. A thread may have multiple state bits set. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets the current user state of this ICorDebugThread. + +## Syntax + +```cpp +HRESULT GetUserState ( + [out] CorDebugUserState *pState +); +``` + +## Parameters + + `pState` + [out] A pointer to a bitwise combination of CorDebugUserState enumeration values that describe the current user state of this thread. + +## Remarks + + The user state of the thread is the state of the thread when it is examined by the program that is being debugged. A thread may have multiple state bits set. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugthread-interface.md b/docs/framework/unmanaged-api/debugging/icordebugthread-interface.md index de8fad55fcc41..0d9932645c7aa 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugthread-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugthread-interface.md @@ -2,60 +2,60 @@ description: "Learn more about: ICorDebugThread Interface" title: "ICorDebugThread Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugThread" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugThread" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugThread interface [.NET Framework debugging]" ms.assetid: 3930fd9b-2bc3-4b72-80a0-b6eeb94d60c6 -topic_type: +topic_type: - "apiref" --- # ICorDebugThread Interface -Represents a thread in a process. The lifetime of an `ICorDebugThread` instance is the same as the lifetime of the thread it represents. - -## Methods - -|Method|Description| -|------------|-----------------| -|[ClearCurrentException Method](icordebugthread-clearcurrentexception-method.md)|This method is not implemented. Do not use it.| -|[CreateEval Method](icordebugthread-createeval-method.md)|Creates an ICorDebugEval object that operates on this `ICorDebugThread`.| -|[CreateStepper Method](icordebugthread-createstepper-method.md)|Creates an ICorDebugStepper object that allows stepping through the active frame in this `ICorDebugThread`.| -|[EnumerateChains Method](icordebugthread-enumeratechains-method.md)|Gets an interface pointer to an ICorDebugChainEnum enumerator that contains all the stack chains in this `ICorDebugThread`.| -|[GetActiveChain Method](icordebugthread-getactivechain-method.md)|Gets an interface pointer to the active ICorDebugChain on this `ICorDebugThread`.| -|[GetActiveFrame Method](icordebugthread-getactiveframe-method.md)|Gets an interface pointer to the active ICorDebugFrame on this `ICorDebugThread`.| -|[GetAppDomain Method](icordebugthread-getappdomain-method.md)|Gets an interface pointer to the application domain in which this `ICorDebugThread` is currently executing.| -|[GetCurrentException Method](icordebugthread-getcurrentexception-method.md)|Gets an interface pointer to an ICorDebugValue object that represents an exception currently being thrown by managed code.| -|[GetDebugState Method](icordebugthread-getdebugstate-method.md)|Gets a CorDebugThreadState value that describes the current debug state of this `ICorDebugThread`.| -|[GetHandle Method](icordebugthread-gethandle-method.md)|Gets the current handle for the active part of this `ICorDebugThread`.| -|[GetID Method](icordebugthread-getid-method.md)|Gets the current operating system identifier of the active part of this `ICorDebugThread`.| -|[GetObject Method](icordebugthread-getobject-method.md)|Gets an interface pointer to the common language runtime (CLR) thread.| -|[GetProcess Method](icordebugthread-getprocess-method.md)|Gets an interface pointer to the process of which this `ICorDebugThread` forms a part.| -|[GetRegisterSet Method](icordebugthread-getregisterset-method.md)|Gets an interface pointer to the register set associated with this `ICorDebugThread`.| -|[GetUserState Method](icordebugthread-getuserstate-method.md)|Gets a bitwise combination of CorDebugUserState values that describe the current state of this `ICorDebugThread`.| -|[SetDebugState Method](icordebugthread-setdebugstate-method.md)|Sets a bitwise combination of `CorDebugThreadState` values that describe the debugging state of this `ICorDebugThread`.| - -## Remarks - +Represents a thread in a process. The lifetime of an `ICorDebugThread` instance is the same as the lifetime of the thread it represents. + +## Methods + +|Method|Description| +|------------|-----------------| +|[ClearCurrentException Method](icordebugthread-clearcurrentexception-method.md)|This method is not implemented. Do not use it.| +|[CreateEval Method](icordebugthread-createeval-method.md)|Creates an ICorDebugEval object that operates on this `ICorDebugThread`.| +|[CreateStepper Method](icordebugthread-createstepper-method.md)|Creates an ICorDebugStepper object that allows stepping through the active frame in this `ICorDebugThread`.| +|[EnumerateChains Method](icordebugthread-enumeratechains-method.md)|Gets an interface pointer to an ICorDebugChainEnum enumerator that contains all the stack chains in this `ICorDebugThread`.| +|[GetActiveChain Method](icordebugthread-getactivechain-method.md)|Gets an interface pointer to the active ICorDebugChain on this `ICorDebugThread`.| +|[GetActiveFrame Method](icordebugthread-getactiveframe-method.md)|Gets an interface pointer to the active ICorDebugFrame on this `ICorDebugThread`.| +|[GetAppDomain Method](icordebugthread-getappdomain-method.md)|Gets an interface pointer to the application domain in which this `ICorDebugThread` is currently executing.| +|[GetCurrentException Method](icordebugthread-getcurrentexception-method.md)|Gets an interface pointer to an ICorDebugValue object that represents an exception currently being thrown by managed code.| +|[GetDebugState Method](icordebugthread-getdebugstate-method.md)|Gets a CorDebugThreadState value that describes the current debug state of this `ICorDebugThread`.| +|[GetHandle Method](icordebugthread-gethandle-method.md)|Gets the current handle for the active part of this `ICorDebugThread`.| +|[GetID Method](icordebugthread-getid-method.md)|Gets the current operating system identifier of the active part of this `ICorDebugThread`.| +|[GetObject Method](icordebugthread-getobject-method.md)|Gets an interface pointer to the common language runtime (CLR) thread.| +|[GetProcess Method](icordebugthread-getprocess-method.md)|Gets an interface pointer to the process of which this `ICorDebugThread` forms a part.| +|[GetRegisterSet Method](icordebugthread-getregisterset-method.md)|Gets an interface pointer to the register set associated with this `ICorDebugThread`.| +|[GetUserState Method](icordebugthread-getuserstate-method.md)|Gets a bitwise combination of CorDebugUserState values that describe the current state of this `ICorDebugThread`.| +|[SetDebugState Method](icordebugthread-setdebugstate-method.md)|Sets a bitwise combination of `CorDebugThreadState` values that describe the debugging state of this `ICorDebugThread`.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugthread-setdebugstate-method.md b/docs/framework/unmanaged-api/debugging/icordebugthread-setdebugstate-method.md index c3d396890e3b3..8db50d20ba878 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugthread-setdebugstate-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugthread-setdebugstate-method.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugThread::SetDebugState Method" title: "ICorDebugThread::SetDebugState Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugThread.SetDebugState" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugThread::SetDebugState" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugThread::SetDebugState method [.NET Framework debugging]" - "SetDebugState method [.NET Framework debugging]" ms.assetid: 6382bdf6-d488-4952-b653-cb09b6e1c6c2 -topic_type: +topic_type: - "apiref" --- # ICorDebugThread::SetDebugState Method -Sets flags that describe the debugging state of this ICorDebugThread. - -## Syntax - -```cpp -HRESULT SetDebugState ( - [in] CorDebugThreadState state -); -``` - -## Parameters - - `state` - [in] A bitwise combination of CorDebugThreadState enumeration values that specify the debugging state of this thread. - -## Remarks - - `SetDebugState` sets the current debug state of the thread. (The "current debug state" represents the debug state if the process were to be continued, not the actual current state.) The normal value for this is THREAD_RUN. Only the debugger can affect the debug state of a thread. Debug states do last across continues, so if you want to keep a thread THREAD_SUSPENDed over multiple continues, you can set it once and thereafter not have to worry about it. Suspending threads and resuming the process can cause deadlocks, though it's usually unlikely. This is an intrinsic quality of threads and processes and is by-design. A debugger can asynchronously break and resume the threads to break the deadlock. If the thread's user state includes USER_UNSAFE_POINT, then the thread may block a garbage collection (GC). This means the suspended thread has a much higher chance of causing a deadlock. This may not affect debug events already queued. Thus a debugger should drain the entire event queue (by calling [ICorDebugController::HasQueuedCallbacks](icordebugcontroller-hasqueuedcallbacks-method.md)) before suspending or resuming threads. Else it may get events on a thread that it believes it has already suspended. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Sets flags that describe the debugging state of this ICorDebugThread. + +## Syntax + +```cpp +HRESULT SetDebugState ( + [in] CorDebugThreadState state +); +``` + +## Parameters + + `state` + [in] A bitwise combination of CorDebugThreadState enumeration values that specify the debugging state of this thread. + +## Remarks + + `SetDebugState` sets the current debug state of the thread. (The "current debug state" represents the debug state if the process were to be continued, not the actual current state.) The normal value for this is THREAD_RUN. Only the debugger can affect the debug state of a thread. Debug states do last across continues, so if you want to keep a thread THREAD_SUSPENDed over multiple continues, you can set it once and thereafter not have to worry about it. Suspending threads and resuming the process can cause deadlocks, though it's usually unlikely. This is an intrinsic quality of threads and processes and is by-design. A debugger can asynchronously break and resume the threads to break the deadlock. If the thread's user state includes USER_UNSAFE_POINT, then the thread may block a garbage collection (GC). This means the suspended thread has a much higher chance of causing a deadlock. This may not affect debug events already queued. Thus a debugger should drain the entire event queue (by calling [ICorDebugController::HasQueuedCallbacks](icordebugcontroller-hasqueuedcallbacks-method.md)) before suspending or resuming threads. Else it may get events on a thread that it believes it has already suspended. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugthread2-getactivefunctions-method.md b/docs/framework/unmanaged-api/debugging/icordebugthread2-getactivefunctions-method.md index 873684646c6eb..48846ce6a9f91 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugthread2-getactivefunctions-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugthread2-getactivefunctions-method.md @@ -2,61 +2,61 @@ description: "Learn more about: ICorDebugThread2::GetActiveFunctions Method" title: "ICorDebugThread2::GetActiveFunctions Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugThread2.GetActiveFunctions" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugThread2::GetActiveFunctions" -helpviewer_keywords: +helpviewer_keywords: - "GetActiveFunctions method [.NET Framework debugging]" - "ICorDebugThread2::GetActiveFunctions method [.NET Framework debugging]" ms.assetid: 27fae01a-ecec-423a-973e-24f8de55826c -topic_type: +topic_type: - "apiref" --- # ICorDebugThread2::GetActiveFunctions Method -Gets information about the active function in each of this thread's frames. - -## Syntax - -```cpp -HRESULT GetActiveFunctions ( - [in] ULONG32 cFunctions, - [out] ULONG32 *pcFunctions, - [in, out, size_is(cFunctions), length_is(*pcFunctions)] - COR_ACTIVE_FUNCTION pFunctions[] -); -``` - -## Parameters - - `cFunctions` - [in] The size of the `pFunctions` array. - - `pcFunctions` - [out] A pointer to the number of objects returned in the `pFunctions` array. The number of objects returned will be equal to the number of managed frames on the stack. - - `pFunctions` - [in, out] An array of COR_ACTIVE_FUNCTION objects, each of which contains information about the active functions in this thread's frames. - - The first element will be used for the leaf frame, and so on back to the root of the stack. - -## Remarks - - If `pFunctions` is null on input, `GetActiveFunctions` returns only the number of functions that are on the stack. That is, If `pFunctions` is null on input, `GetActiveFunctions` returns a value only in `pcFunctions`. - - The `GetActiveFunctions` method is intended as an optimization over getting the same information from frames in a stack trace, and includes only frames that would have had an ICorDebugILFrame object for them in the full stack trace. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets information about the active function in each of this thread's frames. + +## Syntax + +```cpp +HRESULT GetActiveFunctions ( + [in] ULONG32 cFunctions, + [out] ULONG32 *pcFunctions, + [in, out, size_is(cFunctions), length_is(*pcFunctions)] + COR_ACTIVE_FUNCTION pFunctions[] +); +``` + +## Parameters + + `cFunctions` + [in] The size of the `pFunctions` array. + + `pcFunctions` + [out] A pointer to the number of objects returned in the `pFunctions` array. The number of objects returned will be equal to the number of managed frames on the stack. + + `pFunctions` + [in, out] An array of COR_ACTIVE_FUNCTION objects, each of which contains information about the active functions in this thread's frames. + + The first element will be used for the leaf frame, and so on back to the root of the stack. + +## Remarks + + If `pFunctions` is null on input, `GetActiveFunctions` returns only the number of functions that are on the stack. That is, If `pFunctions` is null on input, `GetActiveFunctions` returns a value only in `pcFunctions`. + + The `GetActiveFunctions` method is intended as an optimization over getting the same information from frames in a stack trace, and includes only frames that would have had an ICorDebugILFrame object for them in the full stack trace. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugthread2-getconnectionid-method.md b/docs/framework/unmanaged-api/debugging/icordebugthread2-getconnectionid-method.md index a75e1f8a00bf4..7f64d9a6f9120 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugthread2-getconnectionid-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugthread2-getconnectionid-method.md @@ -2,50 +2,50 @@ description: "Learn more about: ICorDebugThread2::GetConnectionID Method" title: "ICorDebugThread2::GetConnectionID Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugThread2.GetConnectionID" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugThread2::GetConnectionID" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugThread2::GetConnectionID method [.NET Framework debugging]" - "GetConnectionID method [.NET Framework debugging]" ms.assetid: 9c76b587-f941-4fa1-8b86-f3494fb10c8e -topic_type: +topic_type: - "apiref" --- # ICorDebugThread2::GetConnectionID Method -Gets the connection identifier for this ICorDebugThread2 object. - -## Syntax - -```cpp -HRESULT GetConnectionID ( - [out] CONNID *pdwConnectionId -); -``` - -## Parameters - - `pdwConnectionId` - [out] A `CONNID` that represents the connection identifier. - -## Remarks - - The `GetConnectionID` method returns zero in the `pdwConnectionId` parameter, if this thread is not part of a connection. - - If this thread is connected to an instance of Microsoft SQL Server 2005 Analysis Services (SSAS), the `CONNID` maps to a server process identifier (SPID). - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets the connection identifier for this ICorDebugThread2 object. + +## Syntax + +```cpp +HRESULT GetConnectionID ( + [out] CONNID *pdwConnectionId +); +``` + +## Parameters + + `pdwConnectionId` + [out] A `CONNID` that represents the connection identifier. + +## Remarks + + The `GetConnectionID` method returns zero in the `pdwConnectionId` parameter, if this thread is not part of a connection. + + If this thread is connected to an instance of Microsoft SQL Server 2005 Analysis Services (SSAS), the `CONNID` maps to a server process identifier (SPID). + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugthread2-gettaskid-method.md b/docs/framework/unmanaged-api/debugging/icordebugthread2-gettaskid-method.md index c3bd677a630dd..44f5086b1b21f 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugthread2-gettaskid-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugthread2-gettaskid-method.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugThread2::GetTaskID Method" title: "ICorDebugThread2::GetTaskID Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugThread2.GetTaskID" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugThread2::GetTaskID" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugThread2::GetTaskID method [.NET Framework debugging]" - "GetTaskID method [.NET Framework debugging]" ms.assetid: 6ba3c6ee-4ba1-4c98-bf1e-8531acd3da09 -topic_type: +topic_type: - "apiref" --- # ICorDebugThread2::GetTaskID Method -Gets the identifier of the task running on this thread. - -## Syntax - -```cpp -HRESULT GetTaskID ( - [out] TASKID *pTaskId -); -``` - -## Parameters - - `pTaskId` - [out] A pointer to the identifier of the task running on the thread represented by this ICorDebugThread2 object. - -## Remarks - - A task can only be running on the thread if the thread is associated with a connection. `GetTaskID` returns zero in `pTaskId` if the thread is not associated with a connection. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets the identifier of the task running on this thread. + +## Syntax + +```cpp +HRESULT GetTaskID ( + [out] TASKID *pTaskId +); +``` + +## Parameters + + `pTaskId` + [out] A pointer to the identifier of the task running on the thread represented by this ICorDebugThread2 object. + +## Remarks + + A task can only be running on the thread if the thread is associated with a connection. `GetTaskID` returns zero in `pTaskId` if the thread is not associated with a connection. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugthread2-interceptcurrentexception-method.md b/docs/framework/unmanaged-api/debugging/icordebugthread2-interceptcurrentexception-method.md index ced554c81d86b..8270c4db1f1af 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugthread2-interceptcurrentexception-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugthread2-interceptcurrentexception-method.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugThread2::InterceptCurrentException Method" title: "ICorDebugThread2::InterceptCurrentException Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugThread2.InterceptCurrentException" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugThread2::InterceptCurrentException" -helpviewer_keywords: +helpviewer_keywords: - "InterceptCurrentException method [.NET Framework debugging]" - "ICorDebugThread2::InterceptCurrentException method [.NET Framework debugging]" ms.assetid: 536d2357-1b97-49e0-a10c-c860aed74e6e -topic_type: +topic_type: - "apiref" --- # ICorDebugThread2::InterceptCurrentException Method -Allows a debugger to intercept the current exception on this thread. - -## Syntax - -```cpp -HRESULT InterceptCurrentException ( - [in] ICorDebugFrame *pFrame -); -``` - -## Parameters - - `pFrame` - [in] A pointer to an ICorDebugFrame that represents the active stack frame. - -## Remarks - - The `InterceptCurrentException` method can be called between an exception callback ([ICorDebugManagedCallback::Exception](icordebugmanagedcallback-exception-method.md) or [ICorDebugManagedCallback2::Exception](icordebugmanagedcallback2-exception-method.md)) and the associated call to [ICorDebugController::Continue](icordebugcontroller-continue-method.md). - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Allows a debugger to intercept the current exception on this thread. + +## Syntax + +```cpp +HRESULT InterceptCurrentException ( + [in] ICorDebugFrame *pFrame +); +``` + +## Parameters + + `pFrame` + [in] A pointer to an ICorDebugFrame that represents the active stack frame. + +## Remarks + + The `InterceptCurrentException` method can be called between an exception callback ([ICorDebugManagedCallback::Exception](icordebugmanagedcallback-exception-method.md) or [ICorDebugManagedCallback2::Exception](icordebugmanagedcallback2-exception-method.md)) and the associated call to [ICorDebugController::Continue](icordebugcontroller-continue-method.md). + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugthread2-interface.md b/docs/framework/unmanaged-api/debugging/icordebugthread2-interface.md index 949ca8b755ba2..a81f71a75204d 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugthread2-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugthread2-interface.md @@ -2,49 +2,49 @@ description: "Learn more about: ICorDebugThread2 Interface" title: "ICorDebugThread2 Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugThread2" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugThread2" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugThread2 interface [.NET Framework debugging]" ms.assetid: 678f89f9-cce7-46d1-af87-5e989abaa93c -topic_type: +topic_type: - "apiref" --- # ICorDebugThread2 Interface -Serves as a logical extension to the ICorDebugThread interface. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetActiveFunctions Method](icordebugthread2-getactivefunctions-method.md)|Gets an array of COR_ACTIVE_FUNCTION instances that contain data about the active functions in a thread's frames.| -|[GetConnectionID Method](icordebugthread2-getconnectionid-method.md)|Gets a connection identifier for this `ICorDebugThread2`.| -|[GetTaskID Method](icordebugthread2-gettaskid-method.md)|Gets a task identifier for this `ICorDebugThread2`.| -|[GetVolatileOSThreadID Method](icordebugthread2-getvolatileosthreadid-method.md)|Gets the operating system thread identifier for this `ICorDebugThread2`.| -|[InterceptCurrentException Method](icordebugthread2-interceptcurrentexception-method.md)|Allows a debugger to intercept the current exception on a thread.| - -## Remarks - +Serves as a logical extension to the ICorDebugThread interface. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetActiveFunctions Method](icordebugthread2-getactivefunctions-method.md)|Gets an array of COR_ACTIVE_FUNCTION instances that contain data about the active functions in a thread's frames.| +|[GetConnectionID Method](icordebugthread2-getconnectionid-method.md)|Gets a connection identifier for this `ICorDebugThread2`.| +|[GetTaskID Method](icordebugthread2-gettaskid-method.md)|Gets a task identifier for this `ICorDebugThread2`.| +|[GetVolatileOSThreadID Method](icordebugthread2-getvolatileosthreadid-method.md)|Gets the operating system thread identifier for this `ICorDebugThread2`.| +|[InterceptCurrentException Method](icordebugthread2-interceptcurrentexception-method.md)|Allows a debugger to intercept the current exception on a thread.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugthread3-createstackwalk-method.md b/docs/framework/unmanaged-api/debugging/icordebugthread3-createstackwalk-method.md index f7ace3125e252..8f644c2d8a5f3 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugthread3-createstackwalk-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugthread3-createstackwalk-method.md @@ -2,61 +2,61 @@ description: "Learn more about: ICorDebugThread3::CreateStackWalk Method" title: "ICorDebugThread3::CreateStackWalk Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugThread3.CreateStackWalk Method" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugThread3::CreateStackWalk" -helpviewer_keywords: +helpviewer_keywords: - "CreateStackWalk method [.NET Framework debugging]" - "ICorDebugThread3::CreateStackWalk method [.NET Framework debugging]" ms.assetid: c55e35d9-f9aa-4268-94b5-dce44c61acf2 -topic_type: +topic_type: - "apiref" --- # ICorDebugThread3::CreateStackWalk Method -Creates an [ICorDebugStackWalk](icordebugstackwalk-interface.md) object for the thread whose stack you want to unwind. - -## Syntax - -```cpp -HRESULT CreateStackWalk([out] ICorDebugStackWalk **ppStackWalk); -``` - -## Parameters - - `ppStackWalk` - [out] A pointer to address of the [ICorDebugStackWalk](icordebugstackwalk-interface.md) object for the thread whose stack you want to unwind. - -## Return Value - - This method returns the following specific HRESULTs as well as HRESULT errors that indicate method failure. - -|HRESULT|Description| -|-------------|-----------------| -|S_OK|The `ICorDebugStackWalk` object was successfully created.| -|E_FAIL|The `ICorDebugStackWalk` object was not created.| - -## Exceptions - -## Remarks - - If the `CreateStackWalk` method succeeds, the returned `ICorDebugStackWalk` object's context is set to the thread's current context. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +Creates an [ICorDebugStackWalk](icordebugstackwalk-interface.md) object for the thread whose stack you want to unwind. + +## Syntax + +```cpp +HRESULT CreateStackWalk([out] ICorDebugStackWalk **ppStackWalk); +``` + +## Parameters + + `ppStackWalk` + [out] A pointer to address of the [ICorDebugStackWalk](icordebugstackwalk-interface.md) object for the thread whose stack you want to unwind. + +## Return Value + + This method returns the following specific HRESULTs as well as HRESULT errors that indicate method failure. + +|HRESULT|Description| +|-------------|-----------------| +|S_OK|The `ICorDebugStackWalk` object was successfully created.| +|E_FAIL|The `ICorDebugStackWalk` object was not created.| + +## Exceptions + +## Remarks + + If the `CreateStackWalk` method succeeds, the returned `ICorDebugStackWalk` object's context is set to the thread's current context. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugthread3-getactiveinternalframes-method.md b/docs/framework/unmanaged-api/debugging/icordebugthread3-getactiveinternalframes-method.md index 6f431053ebfb8..cbee40150833b 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugthread3-getactiveinternalframes-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugthread3-getactiveinternalframes-method.md @@ -2,80 +2,80 @@ description: "Learn more about: ICorDebugThread3::GetActiveInternalFrames Method" title: "ICorDebugThread3::GetActiveInternalFrames Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugThread3.GetActiveInternalFrames Method" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugThread3::GetActiveInternalFrames" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugThread3::GetActiveInternalFrames method [.NET Framework debugging]" - "GetActiveInternalFrames method [.NET Framework debugging]" ms.assetid: d69796b4-5b6d-457c-85f6-2cf42e8a8773 -topic_type: +topic_type: - "apiref" --- # ICorDebugThread3::GetActiveInternalFrames Method -Returns an array of internal frames ([ICorDebugInternalFrame2](icordebuginternalframe2-interface.md) objects) on the stack. - -## Syntax - +Returns an array of internal frames ([ICorDebugInternalFrame2](icordebuginternalframe2-interface.md) objects) on the stack. + +## Syntax + ```cpp -HRESULT GetActiveInternalFrames - ( - [in] ULONG32 cInternalFrames, - [out] ULONG32 *pcInternalFrames, - [in, out,size_is(cInternalFrames), length_is(*pcInternalFrames)] - ICorDebugInternalFrame2 * ppInternalFrames[] - ); -``` - -## Parameters - - `cInternalFrames` - [in] The number of internal frames expected in `ppInternalFrames`. - - `pcInternalFrames` - [out] A pointer to a `ULONG32` that contains the number of internal frames on the stack. - - `ppInternalFrames` - [in, out] A pointer to the address of an array of internal frames on the stack. - -## Return Value - - This method returns the following specific HRESULTs as well as HRESULT errors that indicate method failure. - -|HRESULT|Description| -|-------------|-----------------| -|S_OK|The [ICorDebugInternalFrame2](icordebuginternalframe2-interface.md) object was successfully created.| -|E_INVALIDARG|`cInternalFrames` is not zero and `ppInternalFrames` is `null`, or `pcInternalFrames` is `null`.| -|HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER)|`ppInternalFrames` is smaller than the count of internal frames.| - -## Exceptions - -## Remarks - - Internal frames are data structures pushed onto the stack by the runtime to store temporary data. - - When you first call `GetActiveInternalFrames`, you should set the `cInternalFrames` parameter to 0 (zero), and the `ppInternalFrames` parameter to null. When `GetActiveInternalFrames` first returns, `pcInternalFrames` contains the count of the internal frames on the stack. - - `GetActiveInternalFrames` should then be called a second time. You should pass the proper count (`pcInternalFrames`) in the `cInternalFrames` parameter, and specify a pointer to an appropriately sized array in `ppInternalFrames`. - - Use the [ICorDebugStackWalk::GetFrame](icordebugthread3-getactiveinternalframes-method.md) method to return actual stack frames. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +HRESULT GetActiveInternalFrames + ( + [in] ULONG32 cInternalFrames, + [out] ULONG32 *pcInternalFrames, + [in, out,size_is(cInternalFrames), length_is(*pcInternalFrames)] + ICorDebugInternalFrame2 * ppInternalFrames[] + ); +``` + +## Parameters + + `cInternalFrames` + [in] The number of internal frames expected in `ppInternalFrames`. + + `pcInternalFrames` + [out] A pointer to a `ULONG32` that contains the number of internal frames on the stack. + + `ppInternalFrames` + [in, out] A pointer to the address of an array of internal frames on the stack. + +## Return Value + + This method returns the following specific HRESULTs as well as HRESULT errors that indicate method failure. + +|HRESULT|Description| +|-------------|-----------------| +|S_OK|The [ICorDebugInternalFrame2](icordebuginternalframe2-interface.md) object was successfully created.| +|E_INVALIDARG|`cInternalFrames` is not zero and `ppInternalFrames` is `null`, or `pcInternalFrames` is `null`.| +|HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER)|`ppInternalFrames` is smaller than the count of internal frames.| + +## Exceptions + +## Remarks + + Internal frames are data structures pushed onto the stack by the runtime to store temporary data. + + When you first call `GetActiveInternalFrames`, you should set the `cInternalFrames` parameter to 0 (zero), and the `ppInternalFrames` parameter to null. When `GetActiveInternalFrames` first returns, `pcInternalFrames` contains the count of the internal frames on the stack. + + `GetActiveInternalFrames` should then be called a second time. You should pass the proper count (`pcInternalFrames`) in the `cInternalFrames` parameter, and specify a pointer to an appropriately sized array in `ppInternalFrames`. + + Use the [ICorDebugStackWalk::GetFrame](icordebugthread3-getactiveinternalframes-method.md) method to return actual stack frames. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugthread3-interface.md b/docs/framework/unmanaged-api/debugging/icordebugthread3-interface.md index 040d955fb1065..45ebbbe0d0d49 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugthread3-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugthread3-interface.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugThread3 Interface" title: "ICorDebugThread3 Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugThread3" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugThread3" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugThread3 interface [.NET Framework debugging]" ms.assetid: eb2860ef-06cb-4968-a6c3-6d048ecda2a4 -topic_type: +topic_type: - "apiref" --- # ICorDebugThread3 Interface -Provides the entry point to the [ICorDebugStackWalk](icordebugstackwalk-interface.md) and corresponding interfaces. - -## Methods - -|Method|Description| -|------------|-----------------| -|[CreateStackWalk Method](icordebugthread3-createstackwalk-method.md)|Creates an [ICorDebugStackWalk](icordebugstackwalk-interface.md) object for the thread whose stack you want to unwind.| -|[GetActiveInternalFrames Method](icordebugthread3-getactiveinternalframes-method.md)|Returns an array of internal frames ([ICorDebugInternalFrame2](icordebuginternalframe2-interface.md) objects) on the stack.| - -## Remarks - - `ICorDebugThread3` is a logical extension to the ICorDebugThread interface. - +Provides the entry point to the [ICorDebugStackWalk](icordebugstackwalk-interface.md) and corresponding interfaces. + +## Methods + +|Method|Description| +|------------|-----------------| +|[CreateStackWalk Method](icordebugthread3-createstackwalk-method.md)|Creates an [ICorDebugStackWalk](icordebugstackwalk-interface.md) object for the thread whose stack you want to unwind.| +|[GetActiveInternalFrames Method](icordebugthread3-getactiveinternalframes-method.md)|Returns an array of internal frames ([ICorDebugInternalFrame2](icordebuginternalframe2-interface.md) objects) on the stack.| + +## Remarks + + `ICorDebugThread3` is a logical extension to the ICorDebugThread interface. + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugthread4-getblockingobjects-method.md b/docs/framework/unmanaged-api/debugging/icordebugthread4-getblockingobjects-method.md index 0358e27613068..b78ab1cb44ea9 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugthread4-getblockingobjects-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugthread4-getblockingobjects-method.md @@ -2,59 +2,59 @@ description: "Learn more about: ICorDebugThread4::GetBlockingObjects Method" title: "ICorDebugThread4::GetBlockingObjects Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugThread4.GetBlockingObjects Method" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugThread4::GetBlockingObjects" -helpviewer_keywords: +helpviewer_keywords: - "GetBlockingObjects method [.NET Framework debugging]" - "ICorDebugThread4::GetBlockingObjects method [.NET Framework debugging]" ms.assetid: a7e6c54e-7be9-4e52-bbb4-95f52458e8e4 -topic_type: +topic_type: - "apiref" --- # ICorDebugThread4::GetBlockingObjects Method -Provides an ordered enumeration of [CorDebugBlockingObject](cordebugblockingobject-structure.md) structures that provide thread blocking information. - -## Syntax - -```cpp -HRESULT GetBlockingObjects ( - [out] ICorDebugBlockingObjectEnum **ppBlockingObjectEnum -``` - -## Parameters - - `ppBlockingObjectEnum` - [out] A pointer to an ordered enumeration of [CorDebugBlockingObject](cordebugblockingobject-structure.md) structures. - -## Remarks - - The first element in the returned enumeration corresponds to the first structure that is blocking the thread. The second element corresponds to a blocking item that is encountered while running an asynchronous procedure call (APC) when blocked on the first, and so on. - - The enumeration is valid only for the duration of the current synchronized state. - - This method must be called while the debuggee is in a synchronized state. - - If `ppBlockingObjectEnum` is not a valid pointer, the result is undefined. - - If a thread is blocked and the error cannot be determined, the method returns an HRESULT that indicates failure; otherwise, it returns S_OK. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +Provides an ordered enumeration of [CorDebugBlockingObject](cordebugblockingobject-structure.md) structures that provide thread blocking information. + +## Syntax + +```cpp +HRESULT GetBlockingObjects ( + [out] ICorDebugBlockingObjectEnum **ppBlockingObjectEnum +``` + +## Parameters + + `ppBlockingObjectEnum` + [out] A pointer to an ordered enumeration of [CorDebugBlockingObject](cordebugblockingobject-structure.md) structures. + +## Remarks + + The first element in the returned enumeration corresponds to the first structure that is blocking the thread. The second element corresponds to a blocking item that is encountered while running an asynchronous procedure call (APC) when blocked on the first, and so on. + + The enumeration is valid only for the duration of the current synchronized state. + + This method must be called while the debuggee is in a synchronized state. + + If `ppBlockingObjectEnum` is not a valid pointer, the result is undefined. + + If a thread is blocked and the error cannot be determined, the method returns an HRESULT that indicates failure; otherwise, it returns S_OK. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [ICorDebugThread4 Interface](icordebugthread4-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugthread4-hadunhandledexception-method.md b/docs/framework/unmanaged-api/debugging/icordebugthread4-hadunhandledexception-method.md index e97dc309e34a7..e1a169c3a37f0 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugthread4-hadunhandledexception-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugthread4-hadunhandledexception-method.md @@ -2,61 +2,61 @@ description: "Learn more about: ICorDebugThread4::HadUnhandledException Method" title: "ICorDebugThread4::HadUnhandledException Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugThread4.HadUnhandledException Method" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugThread4::HadUnhandledException" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugThread4::HadUnhandledException method [.NET Framework debugging]" - "HadUnhandledException method [.NET Framework debugging]" ms.assetid: 05558daa-39e2-4c38-aeaf-e2aec4a09468 -topic_type: +topic_type: - "apiref" --- # ICorDebugThread4::HadUnhandledException Method -Indicates whether the thread has ever had an unhandled exception. - -## Syntax - -```cpp -HRESULT GetBlockingObjects ( - [out] ICorDebugBlockingObjectEnum **ppBlockingObjectEnum - ); -``` - -## Parameters - - `ppBlockingObjectEnum` - [out] A pointer to the address of an ordered enumeration of [CorDebugBlockingObject](cordebugblockingobject-structure.md) structures. - -## Return Value - - This method returns the following specific HRESULTs as well as HRESULT errors that indicate method failure. - -|HRESULT|Description| -|-------------|-----------------| -|S_OK|The thread has had an unhandled exception since its creation.| -|S_FALSE|The thread has never had an unhandled exception.| - -## Remarks - - This method indicates whether the thread has ever had an unhandled exception. By the time the unhandled exception callback is triggered or native JIT-attach is initiated, this method is guaranteed to return S_OK. There is no guarantee that the [ICorDebugThread.GetCurrentException](icordebugthread-getcurrentexception-method.md) method will return the unhandled exception; however, it will if the process has not yet been continued after getting the unhandled exception callback or upon native JIT-attach. Furthermore, it is possible (although unlikely) to have more than one thread with an unhandled exception at the time native JIT-attach is triggered. In such a case there is no way to determine which exception triggered the JIT-attach. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +Indicates whether the thread has ever had an unhandled exception. + +## Syntax + +```cpp +HRESULT GetBlockingObjects ( + [out] ICorDebugBlockingObjectEnum **ppBlockingObjectEnum + ); +``` + +## Parameters + + `ppBlockingObjectEnum` + [out] A pointer to the address of an ordered enumeration of [CorDebugBlockingObject](cordebugblockingobject-structure.md) structures. + +## Return Value + + This method returns the following specific HRESULTs as well as HRESULT errors that indicate method failure. + +|HRESULT|Description| +|-------------|-----------------| +|S_OK|The thread has had an unhandled exception since its creation.| +|S_FALSE|The thread has never had an unhandled exception.| + +## Remarks + + This method indicates whether the thread has ever had an unhandled exception. By the time the unhandled exception callback is triggered or native JIT-attach is initiated, this method is guaranteed to return S_OK. There is no guarantee that the [ICorDebugThread.GetCurrentException](icordebugthread-getcurrentexception-method.md) method will return the unhandled exception; however, it will if the process has not yet been continued after getting the unhandled exception callback or upon native JIT-attach. Furthermore, it is possible (although unlikely) to have more than one thread with an unhandled exception at the time native JIT-attach is triggered. In such a case there is no way to determine which exception triggered the JIT-attach. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [ICorDebugThread4 Interface](icordebugthread4-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugthread4-interface.md b/docs/framework/unmanaged-api/debugging/icordebugthread4-interface.md index d20e4640e08f5..7c4bf89588139 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugthread4-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugthread4-interface.md @@ -2,49 +2,49 @@ description: "Learn more about: ICorDebugThread4 Interface" title: "ICorDebugThread4 Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugThread4" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugThread4" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugThread4 interface [.NET Framework debugging]" ms.assetid: a8c7719a-322b-4133-8566-4c27218dc104 -topic_type: +topic_type: - "apiref" --- # ICorDebugThread4 Interface -Provides thread blocking information. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetBlockingObjects Method](icordebugthread4-getblockingobjects-method.md)|Provides an ordered enumeration of [CorDebugBlockingObject](cordebugblockingobject-structure.md) structures that provide thread blocking information.| -|[HadUnhandledException Method](icordebugthread4-hadunhandledexception-method.md)|Indicates whether the thread has ever had an unhandled exception.| -|[GetCurrentCustomDebuggerNotification Method](icordebugthread4-getcurrentcustomdebuggernotification-method.md)|Gets the current [ICorDebugManagedCallback3::CustomNotification](icordebugmanagedcallback3-customnotification-method.md) object on the current thread.| - -## Remarks - - This interface is a logical extension of the ICorDebugThread, ICorDebugThread2, and [ICorDebugThread3](icordebugthread3-interface.md) interfaces. - +Provides thread blocking information. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetBlockingObjects Method](icordebugthread4-getblockingobjects-method.md)|Provides an ordered enumeration of [CorDebugBlockingObject](cordebugblockingobject-structure.md) structures that provide thread blocking information.| +|[HadUnhandledException Method](icordebugthread4-hadunhandledexception-method.md)|Indicates whether the thread has ever had an unhandled exception.| +|[GetCurrentCustomDebuggerNotification Method](icordebugthread4-getcurrentcustomdebuggernotification-method.md)|Gets the current [ICorDebugManagedCallback3::CustomNotification](icordebugmanagedcallback3-customnotification-method.md) object on the current thread.| + +## Remarks + + This interface is a logical extension of the ICorDebugThread, ICorDebugThread2, and [ICorDebugThread3](icordebugthread3-interface.md) interfaces. + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v40plus](../../../../includes/net-current-v40plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugthreadenum-interface1.md b/docs/framework/unmanaged-api/debugging/icordebugthreadenum-interface1.md index f132b02710214..156505249ad7f 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugthreadenum-interface1.md +++ b/docs/framework/unmanaged-api/debugging/icordebugthreadenum-interface1.md @@ -2,45 +2,45 @@ description: "Learn more about: ICorDebugThreadEnum Interface" title: "ICorDebugThreadEnum Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugThreadEnum" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugThreadEnum" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugThreadEnum interface [.NET Framework debugging]" ms.assetid: 796de687-7dd4-4b7b-a10b-8bf22dc7779f -topic_type: +topic_type: - "apiref" --- # ICorDebugThreadEnum Interface -Implements ICorDebugEnum methods and enumerates ICorDebugThread arrays. - -## Methods - -|Method|Description| -|------------|-----------------| -|[Next Method](icordebugthreadenum-next-method.md)|Gets the specified number of `ICorDebugThread` instances from the enumeration, starting at the current position.| - -## Remarks - +Implements ICorDebugEnum methods and enumerates ICorDebugThread arrays. + +## Methods + +|Method|Description| +|------------|-----------------| +|[Next Method](icordebugthreadenum-next-method.md)|Gets the specified number of `ICorDebugThread` instances from the enumeration, starting at the current position.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugtype-enumeratetypeparameters-method.md b/docs/framework/unmanaged-api/debugging/icordebugtype-enumeratetypeparameters-method.md index 6e9ab7c760fa9..378223af1fe8c 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugtype-enumeratetypeparameters-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugtype-enumeratetypeparameters-method.md @@ -2,54 +2,54 @@ description: "Learn more about: ICorDebugType::EnumerateTypeParameters Method" title: "ICorDebugType::EnumerateTypeParameters Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugType.EnumerateTypeParameters" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugType::EnumerateTypeParameters" -helpviewer_keywords: +helpviewer_keywords: - "EnumerateTypeParameters method, ICorDebugType interface [.NET Framework debugging]" - "ICorDebugType::EnumerateTypeParameters method [.NET Framework debugging]" ms.assetid: 1ee1f6e6-1bd7-4ebb-83b8-ff9a08ca03de -topic_type: +topic_type: - "apiref" --- # ICorDebugType::EnumerateTypeParameters Method -Gets an interface pointer to an ICorDebugTypeEnum that contains the parameters of the class referenced by this ICorDebugType. - -## Syntax - -```cpp -HRESULT EnumerateTypeParameters ( - [out] ICorDebugTypeEnum **ppTyParEnum -); -``` - -## Parameters - - `ppTyParEnum` - [out] A pointer to the address of an `ICorDebugTypeEnum` that contains the parameters of the type. - -## Remarks - - You can use `EnumerateTypeParameters` if the CorElementType value returned by [ICorDebugType::GetType](icordebugtype-gettype-method.md) is ELEMENT_TYPE_CLASS, ELEMENT_TYPE_VALUETYPE, ELEMENT_TYPE_ARRAY, ELEMENT_TYPE_SZARRAY, ELEMENT_TYPE_BYREF, ELEMENT_TYPE_PTR, or ELEMENT_TYPE_FNPTR. The number of parameters and their order depends on the type: - -- ELEMENT_TYPE_CLASS or ELEMENT_TYPE_VALUETYPE: The number of type parameters contained in the `ICorDebugTypeEnum` that this method returns, will depend on the number of formal type parameters for the corresponding class. For example, if the type is `class Dict`, then `EnumerateTypeParameters` will return an `ICorDebugTypeEnum` that contains objects representing `String` and `int32` in sequence. - -- ELEMENT_TYPE_FNPTR: The number of type parameters contained in the `ICorDebugTypeEnum` will be one greater than the number of arguments accepted by the function. The first type parameter contained in the `ICorDebugTypeEnum` is the return type for the function, and the subsequent type parameters are the function's parameters. - -- ELEMENT_TYPE_ARRAY, ELEMENT_TYPE_SZARRAY, ELEMENT_TYPE_BYREF, or ELEMENT_TYPE_PTR: One type parameter will be returned. For example, if the type is an array type such as `int32[]`,`EnumerateTypeParameters` will return an `ICorDebugTypeEnum` that contains an object representing `int32`. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets an interface pointer to an ICorDebugTypeEnum that contains the parameters of the class referenced by this ICorDebugType. + +## Syntax + +```cpp +HRESULT EnumerateTypeParameters ( + [out] ICorDebugTypeEnum **ppTyParEnum +); +``` + +## Parameters + + `ppTyParEnum` + [out] A pointer to the address of an `ICorDebugTypeEnum` that contains the parameters of the type. + +## Remarks + + You can use `EnumerateTypeParameters` if the CorElementType value returned by [ICorDebugType::GetType](icordebugtype-gettype-method.md) is ELEMENT_TYPE_CLASS, ELEMENT_TYPE_VALUETYPE, ELEMENT_TYPE_ARRAY, ELEMENT_TYPE_SZARRAY, ELEMENT_TYPE_BYREF, ELEMENT_TYPE_PTR, or ELEMENT_TYPE_FNPTR. The number of parameters and their order depends on the type: + +- ELEMENT_TYPE_CLASS or ELEMENT_TYPE_VALUETYPE: The number of type parameters contained in the `ICorDebugTypeEnum` that this method returns, will depend on the number of formal type parameters for the corresponding class. For example, if the type is `class Dict`, then `EnumerateTypeParameters` will return an `ICorDebugTypeEnum` that contains objects representing `String` and `int32` in sequence. + +- ELEMENT_TYPE_FNPTR: The number of type parameters contained in the `ICorDebugTypeEnum` will be one greater than the number of arguments accepted by the function. The first type parameter contained in the `ICorDebugTypeEnum` is the return type for the function, and the subsequent type parameters are the function's parameters. + +- ELEMENT_TYPE_ARRAY, ELEMENT_TYPE_SZARRAY, ELEMENT_TYPE_BYREF, or ELEMENT_TYPE_PTR: One type parameter will be returned. For example, if the type is an array type such as `int32[]`,`EnumerateTypeParameters` will return an `ICorDebugTypeEnum` that contains an object representing `int32`. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugtype-getbase-method.md b/docs/framework/unmanaged-api/debugging/icordebugtype-getbase-method.md index dd00d8f7b48e8..6e87091cc2998 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugtype-getbase-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugtype-getbase-method.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugType::GetBase Method" title: "ICorDebugType::GetBase Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugType.GetBase" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugType::GetBase" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugType::GetBase method [.NET Framework debugging]" - "GetBase method [.NET Framework debugging]" ms.assetid: f24e1af9-c220-4f79-ae62-4153ec17ea81 -topic_type: +topic_type: - "apiref" --- # ICorDebugType::GetBase Method -Gets an interface pointer to an ICorDebugType that represents the base type, if one exists, of the type represented by this `ICorDebugType`. - -## Syntax - -```cpp -HRESULT GetBase ( - [out] ICorDebugType **pBase -); -``` - -## Parameters - - `pBase` - [out] A pointer to the address of an `ICorDebugType` object that represents the base type. - -## Remarks - - Looking up the base type for a type is useful to implement common debugger functionality, such as printing out all the fields of an object or its parent classes. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets an interface pointer to an ICorDebugType that represents the base type, if one exists, of the type represented by this `ICorDebugType`. + +## Syntax + +```cpp +HRESULT GetBase ( + [out] ICorDebugType **pBase +); +``` + +## Parameters + + `pBase` + [out] A pointer to the address of an `ICorDebugType` object that represents the base type. + +## Remarks + + Looking up the base type for a type is useful to implement common debugger functionality, such as printing out all the fields of an object or its parent classes. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugtype-getclass-method.md b/docs/framework/unmanaged-api/debugging/icordebugtype-getclass-method.md index 11f311a74ba64..ad8653d9e6c9e 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugtype-getclass-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugtype-getclass-method.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugType::GetClass Method" title: "ICorDebugType::GetClass Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugType.GetClass" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugType::GetClass" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugType::GetClass method [.NET Framework debugging]" - "GetClass method, ICorDebugType interface [.NET Framework debugging]" ms.assetid: 2644f48b-db3c-429f-ae62-76f1c98a1af5 -topic_type: +topic_type: - "apiref" --- # ICorDebugType::GetClass Method -Gets an interface pointer to an ICorDebugClass that represents the uninstantiated generic type. - -## Syntax - -```cpp -HRESULT GetClass ( - [out] ICorDebugClass **ppClass -); -``` - -## Parameters - - `ppClass` - [out] A pointer to the address of an `ICorDebugClass` interface that represents the uninstantiated generic type. - -## Remarks - - `GetClass` can be called only under certain conditions. Call [ICorDebugType::GetType](icordebugtype-gettype-method.md) before calling `GetClass`. If `ICorDebugType::GetType` returns a CorElementType value that is ELEMENT_TYPE_CLASS or ELEMENT_TYPE_VALUETYPE, `GetClass` can be called to get the uninstantiated type for a generic type. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets an interface pointer to an ICorDebugClass that represents the uninstantiated generic type. + +## Syntax + +```cpp +HRESULT GetClass ( + [out] ICorDebugClass **ppClass +); +``` + +## Parameters + + `ppClass` + [out] A pointer to the address of an `ICorDebugClass` interface that represents the uninstantiated generic type. + +## Remarks + + `GetClass` can be called only under certain conditions. Call [ICorDebugType::GetType](icordebugtype-gettype-method.md) before calling `GetClass`. If `ICorDebugType::GetType` returns a CorElementType value that is ELEMENT_TYPE_CLASS or ELEMENT_TYPE_VALUETYPE, `GetClass` can be called to get the uninstantiated type for a generic type. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugtype-getfirsttypeparameter-method.md b/docs/framework/unmanaged-api/debugging/icordebugtype-getfirsttypeparameter-method.md index 2bb9f7b803456..2decd090aa0f9 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugtype-getfirsttypeparameter-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugtype-getfirsttypeparameter-method.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugType::GetFirstTypeParameter Method" title: "ICorDebugType::GetFirstTypeParameter Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugType.GetFirstTypeParameter" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugType::GetFirstTypeParameter" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugType::GetFirstTypeParameter method [.NET Framework debugging]" - "GetFirstTypeParameter method [.NET Framework debugging]" ms.assetid: 35bb594f-af6a-4349-83fe-e98702674e03 -topic_type: +topic_type: - "apiref" --- # ICorDebugType::GetFirstTypeParameter Method -Gets an interface pointer to an ICorDebugType that represents the first parameter of the type represented by this `ICorDebugType`. - -## Syntax - -```cpp -HRESULT GetFirstTypeParameter ( - [out] ICorDebugType **value -); -``` - -## Parameters - - `value` - [out] A pointer to the address of an `ICorDebugType` object that represents the first parameter. - -## Remarks - - `GetFirstTypeParameter` can be called in cases where the additional information about the type involves, at most, one type parameter. In particular, it can be used if the type is an ELEMENT_TYPE_ARRAY, ELEMENT_TYPE_SZARRAY, ELEMENT_TYPE_BYREF, or ELEMENT_TYPE_PTR, as indicated by the [ICorDebugType::GetType](icordebugtype-gettype-method.md) method. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets an interface pointer to an ICorDebugType that represents the first parameter of the type represented by this `ICorDebugType`. + +## Syntax + +```cpp +HRESULT GetFirstTypeParameter ( + [out] ICorDebugType **value +); +``` + +## Parameters + + `value` + [out] A pointer to the address of an `ICorDebugType` object that represents the first parameter. + +## Remarks + + `GetFirstTypeParameter` can be called in cases where the additional information about the type involves, at most, one type parameter. In particular, it can be used if the type is an ELEMENT_TYPE_ARRAY, ELEMENT_TYPE_SZARRAY, ELEMENT_TYPE_BYREF, or ELEMENT_TYPE_PTR, as indicated by the [ICorDebugType::GetType](icordebugtype-gettype-method.md) method. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugtype-getstaticfieldvalue-method.md b/docs/framework/unmanaged-api/debugging/icordebugtype-getstaticfieldvalue-method.md index cf9ec42c75d19..8925915f008c1 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugtype-getstaticfieldvalue-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugtype-getstaticfieldvalue-method.md @@ -2,62 +2,62 @@ description: "Learn more about: ICorDebugType::GetStaticFieldValue Method" title: "ICorDebugType::GetStaticFieldValue Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugType.GetStaticFieldValue" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugType::GetStaticFieldValue" -helpviewer_keywords: +helpviewer_keywords: - "GetStaticFieldValue method, ICorDebugType interface [.NET Framework debugging]" - "ICorDebugType::GetStaticFieldValue method [.NET Framework debugging]" ms.assetid: 62eb5d55-53ee-4fb3-8d47-7b6c96808f9e -topic_type: +topic_type: - "apiref" --- # ICorDebugType::GetStaticFieldValue Method -Gets an interface pointer to an ICorDebugValue object that contains the value of the static field referenced by the specified field token in the specified stack frame. - -## Syntax - -```cpp -HRESULT GetStaticFieldValue ( - [in] mdFieldDef fieldDef, - [in] ICorDebugFrame *pFrame, - [out] ICorDebugValue **ppValue -); -``` - -## Parameters - - `fieldDef` - [in] An `mdFieldDef` token that specifies the static field. - - `pFrame` - [in] A pointer to an ICorDebugFrame that represents the stack frame. - - `ppValue` - [out] A pointer to the address of an `ICorDebugValue` that contains the value of the static field. - -## Remarks - - The `GetStaticFieldValue` method may be used only if the type is ELEMENT_TYPE_CLASS or ELEMENT_TYPE_VALUETYPE, as indicated by the [ICorDebugType::GetType](icordebugtype-gettype-method.md) method. - - For non-generic types, the operation performed by `GetStaticFieldValue` is identical to calling [ICorDebugClass::GetStaticFieldValue](icordebugclass-getstaticfieldvalue-method.md) on the ICorDebugClass object that is returned by [ICorDebugType::GetClass](icordebugtype-getclass-method.md). - +Gets an interface pointer to an ICorDebugValue object that contains the value of the static field referenced by the specified field token in the specified stack frame. + +## Syntax + +```cpp +HRESULT GetStaticFieldValue ( + [in] mdFieldDef fieldDef, + [in] ICorDebugFrame *pFrame, + [out] ICorDebugValue **ppValue +); +``` + +## Parameters + + `fieldDef` + [in] An `mdFieldDef` token that specifies the static field. + + `pFrame` + [in] A pointer to an ICorDebugFrame that represents the stack frame. + + `ppValue` + [out] A pointer to the address of an `ICorDebugValue` that contains the value of the static field. + +## Remarks + + The `GetStaticFieldValue` method may be used only if the type is ELEMENT_TYPE_CLASS or ELEMENT_TYPE_VALUETYPE, as indicated by the [ICorDebugType::GetType](icordebugtype-gettype-method.md) method. + + For non-generic types, the operation performed by `GetStaticFieldValue` is identical to calling [ICorDebugClass::GetStaticFieldValue](icordebugclass-getstaticfieldvalue-method.md) on the ICorDebugClass object that is returned by [ICorDebugType::GetClass](icordebugtype-getclass-method.md). + For generic types, a static field value will be relative to a particular instantiation. Also, if the static field could possibly be relative to a thread, a context, or an application domain, then the stack frame will help the debugger determine the proper value. - `GetStaticFieldValue` can be used only when a call to `ICorDebugType::GetType` returns a value of ELEMENT_TYPE_CLASS or ELEMENT_TYPE_VALUETYPE. - -## Requirements + `GetStaticFieldValue` can be used only when a call to `ICorDebugType::GetType` returns a value of ELEMENT_TYPE_CLASS or ELEMENT_TYPE_VALUETYPE. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugtype-gettype-method.md b/docs/framework/unmanaged-api/debugging/icordebugtype-gettype-method.md index e8685e079ce2c..1c82ebba89593 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugtype-gettype-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugtype-gettype-method.md @@ -2,48 +2,48 @@ description: "Learn more about: ICorDebugType::GetType Method" title: "ICorDebugType::GetType Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugType.GetType" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugType::GetType" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugType::GetType method [.NET Framework debugging]" - "GetType method, ICorDebugType interface [.NET Framework debugging]" ms.assetid: d6e64534-4d47-4ad0-a340-7590e07e2b4a -topic_type: +topic_type: - "apiref" --- # ICorDebugType::GetType Method -Gets a CorElementType value that describes the native type of the common language runtime (CLR) represented by this ICorDebugType. - -## Syntax - -```cpp -HRESULT GetType ( - [out] CorElementType *ty -); -``` - -## Parameters - - `ty` - [out] A pointer to a value of the `CorElementType` enumeration that indicates the CLR that this `ICorDebugType` represents. - -## Remarks - - If the value of `ty` is either ELEMENT_TYPE_CLASS or ELEMENT_TYPE_VALUETYPE, the [ICorDebugType::GetClass](icordebugtype-getclass-method.md) method may be called to get the uninstantiated type for a generic type; otherwise, do not call `ICorDebugType::GetClass`. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - +Gets a CorElementType value that describes the native type of the common language runtime (CLR) represented by this ICorDebugType. + +## Syntax + +```cpp +HRESULT GetType ( + [out] CorElementType *ty +); +``` + +## Parameters + + `ty` + [out] A pointer to a value of the `CorElementType` enumeration that indicates the CLR that this `ICorDebugType` represents. + +## Remarks + + If the value of `ty` is either ELEMENT_TYPE_CLASS or ELEMENT_TYPE_VALUETYPE, the [ICorDebugType::GetClass](icordebugtype-getclass-method.md) method may be called to get the uninstantiated type for a generic type; otherwise, do not call `ICorDebugType::GetClass`. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] diff --git a/docs/framework/unmanaged-api/debugging/icordebugtype-interface.md b/docs/framework/unmanaged-api/debugging/icordebugtype-interface.md index bd898f72aab49..4cdb003672806 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugtype-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugtype-interface.md @@ -2,55 +2,55 @@ description: "Learn more about: ICorDebugType Interface" title: "ICorDebugType Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugType" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugType" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugType interface [.NET Framework debugging]" ms.assetid: 94e02e31-67ea-4b00-8148-a46740a4571d -topic_type: +topic_type: - "apiref" --- # ICorDebugType Interface -Represents a type, either basic or complex (that is, user-defined). If the type is generic, `ICorDebugType` represents the instantiated generic type. - -## Methods - -|Method|Description| -|------------|-----------------| -|[EnumerateTypeParameters Method](icordebugtype-enumeratetypeparameters-method.md)|Gets an interface pointer to an ICorDebugTypeEnum that references the generic parameters of the class referenced by this `ICorDebugType`.| -|[GetBase Method](icordebugtype-getbase-method.md)|Gets an interface pointer to an `ICorDebugType` that references the base class of the class referenced by this `ICorDebugType`, if one exists.| -|[GetClass Method](icordebugtype-getclass-method.md)|Gets an interface pointer to an ICorDebugClass that references the typed constructor of this `ICorDebugType`.| -|[GetFirstTypeParameter Method](icordebugtype-getfirsttypeparameter-method.md)|Gets an interface pointer to an `ICorDebugType` that references the first generic parameter for the constructor of the class referenced by this `ICorDebugType`.| -|[GetRank Method](icordebugtype-getrank-method.md)|Gets the number of dimensions in an array type.| -|[GetStaticFieldValue Method](icordebugtype-getstaticfieldvalue-method.md)|Gets an interface pointer to an ICorDebugValue that contains the value of the static field referenced by the specified field token in the specified stack frame.| -|[GetType Method](icordebugtype-gettype-method.md)|Gets a CorElementType value that describes the native type of the common language runtime referenced by this `ICorDebugType`.| - -## Remarks - - If the type is generic, `ICorDebugClass` represents the uninstantiated type. The `ICorDebugType` interface represents an instantiated generic type. For example, Hashtable\ would be represented by `ICorDebugClass`, whereas Hashtable\ would be represented by `ICorDebugType`. - - Non-generic types are represented by both `ICorDebugClass` and `ICorDebugType`. The latter interface was introduced in the .NET Framework version 2.0 to deal with type instantiation. - +Represents a type, either basic or complex (that is, user-defined). If the type is generic, `ICorDebugType` represents the instantiated generic type. + +## Methods + +|Method|Description| +|------------|-----------------| +|[EnumerateTypeParameters Method](icordebugtype-enumeratetypeparameters-method.md)|Gets an interface pointer to an ICorDebugTypeEnum that references the generic parameters of the class referenced by this `ICorDebugType`.| +|[GetBase Method](icordebugtype-getbase-method.md)|Gets an interface pointer to an `ICorDebugType` that references the base class of the class referenced by this `ICorDebugType`, if one exists.| +|[GetClass Method](icordebugtype-getclass-method.md)|Gets an interface pointer to an ICorDebugClass that references the typed constructor of this `ICorDebugType`.| +|[GetFirstTypeParameter Method](icordebugtype-getfirsttypeparameter-method.md)|Gets an interface pointer to an `ICorDebugType` that references the first generic parameter for the constructor of the class referenced by this `ICorDebugType`.| +|[GetRank Method](icordebugtype-getrank-method.md)|Gets the number of dimensions in an array type.| +|[GetStaticFieldValue Method](icordebugtype-getstaticfieldvalue-method.md)|Gets an interface pointer to an ICorDebugValue that contains the value of the static field referenced by the specified field token in the specified stack frame.| +|[GetType Method](icordebugtype-gettype-method.md)|Gets a CorElementType value that describes the native type of the common language runtime referenced by this `ICorDebugType`.| + +## Remarks + + If the type is generic, `ICorDebugClass` represents the uninstantiated type. The `ICorDebugType` interface represents an instantiated generic type. For example, Hashtable\ would be represented by `ICorDebugClass`, whereas Hashtable\ would be represented by `ICorDebugType`. + + Non-generic types are represented by both `ICorDebugClass` and `ICorDebugType`. The latter interface was introduced in the .NET Framework version 2.0 to deal with type instantiation. + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugtype2-gettypeid-method.md b/docs/framework/unmanaged-api/debugging/icordebugtype2-gettypeid-method.md index 328cb43a65489..750907727859a 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugtype2-gettypeid-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugtype2-gettypeid-method.md @@ -2,64 +2,64 @@ description: "Learn more about: ICorDebugType2::GetTypeID Method" title: "ICorDebugType2::GetTypeID Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugType2.GetTypeID" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugType::GetTypeID" -helpviewer_keywords: +helpviewer_keywords: - "GetTypeID method, ICorDebugType2 interface [.NET Framework debugging]" - "ICorDebugType2.GetTypeID method [.NET Framework debugging]" ms.assetid: 0b933686-226e-4373-92b7-fac579ee7b1a -topic_type: +topic_type: - "apiref" --- # ICorDebugType2::GetTypeID Method -Gets a [COR_TYPEID](cor-typeid-structure.md) for this type. - -## Syntax - -```cpp -HRESULT GetTypeID( - ([out] COR_TYPEID *id -); -``` - -## Parameters - - `id` - [out] A pointer to the [COR_TYPEID](cor-typeid-structure.md) for this ICorDebugType. - -## Return Value - - The return value is `S_OK` on success, or a failure `HRESULT` code on failure. The `HRESULT` codes include the following: - -|Return code|Description| -|-----------------|-----------------| -|`S_OK`|Method succeeded. The method has retrieved a valid [COR_TYPEID](cor-typeid-structure.md).| -|`CORDBG_E_CLASS_NOT_LOADED`|The type has not been loaded.| -|`CORDBG_E_UNSUPPORTED`|The type is not supported.| - -## Remarks - - This method provides a mapping from the ICorDebugType, which represents a type that may or may not have been loaded into the runtime, to a [COR_TYPEID](cor-typeid-structure.md), which serves as an opaque handle that identifies a type loaded into the runtime. - - When the type that the ICorDebugType represents has not yet been loaded, this method returns `CORDBG_E_CLASS_NOT_LOADED`. If the type is not supported, it returns `CORDBG_E_UNSUPPORTED`. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v462plus](../../../../includes/net-current-v462plus-md.md)] - +Gets a [COR_TYPEID](cor-typeid-structure.md) for this type. + +## Syntax + +```cpp +HRESULT GetTypeID( + ([out] COR_TYPEID *id +); +``` + +## Parameters + + `id` + [out] A pointer to the [COR_TYPEID](cor-typeid-structure.md) for this ICorDebugType. + +## Return Value + + The return value is `S_OK` on success, or a failure `HRESULT` code on failure. The `HRESULT` codes include the following: + +|Return code|Description| +|-----------------|-----------------| +|`S_OK`|Method succeeded. The method has retrieved a valid [COR_TYPEID](cor-typeid-structure.md).| +|`CORDBG_E_CLASS_NOT_LOADED`|The type has not been loaded.| +|`CORDBG_E_UNSUPPORTED`|The type is not supported.| + +## Remarks + + This method provides a mapping from the ICorDebugType, which represents a type that may or may not have been loaded into the runtime, to a [COR_TYPEID](cor-typeid-structure.md), which serves as an opaque handle that identifies a type loaded into the runtime. + + When the type that the ICorDebugType represents has not yet been loaded, this method returns `CORDBG_E_CLASS_NOT_LOADED`. If the type is not supported, it returns `CORDBG_E_UNSUPPORTED`. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v462plus](../../../../includes/net-current-v462plus-md.md)] + ## See also - [ICorDebugType2 Interface](icordebugtype2-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugtype2-interface.md b/docs/framework/unmanaged-api/debugging/icordebugtype2-interface.md index a5fce18076cac..bd94a38bc969e 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugtype2-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugtype2-interface.md @@ -2,64 +2,64 @@ description: "Learn more about: ICorDebugType2 Interface" title: "ICorDebugType2 Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugType2" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugType2" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugType2 interface" ms.assetid: 376fb03f-f1ef-4107-baa4-4d9d55884862 -topic_type: +topic_type: - "apiref" --- # ICorDebugType2 Interface -Extends the ICorDebugType interface to retrieve the type identifier of a base type or complex (user-defined) type. - -## Methods - +Extends the ICorDebugType interface to retrieve the type identifier of a base type or complex (user-defined) type. + +## Methods + | Method | Description | | ------------------------------------------------------ | ----------------------------------------------------------- | | [GetTypeID Method](icordebugtype2-gettypeid-method.md) | Gets a [COR_TYPEID](cor-typeid-structure.md) for this type. | - -## Remarks - This interface is a logical extension of the ICorDebugType interface. - +## Remarks + + This interface is a logical extension of the ICorDebugType interface. + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Example - - The following code fragment illustrates the use of the [ICorDebugType2::GetTypeID](icordebugtype2-gettypeid-method.md) method. - -```cpp -// (error checking omitted for brevity) -// given an ICorDebugType *pType - -ICorDebugType2 *pType2 = NULL; -pType->QueryInterface(IID_ICorDebugType2, &pType); - -COR_TYPEID id; -pType2->GetTypeID(&id); - -// now we can use existing APIs to get information about this COR_TYPEID -``` - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v462plus](../../../../includes/net-current-v462plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Example + + The following code fragment illustrates the use of the [ICorDebugType2::GetTypeID](icordebugtype2-gettypeid-method.md) method. + +```cpp +// (error checking omitted for brevity) +// given an ICorDebugType *pType + +ICorDebugType2 *pType2 = NULL; +pType->QueryInterface(IID_ICorDebugType2, &pType); + +COR_TYPEID id; +pType2->GetTypeID(&id); + +// now we can use existing APIs to get information about this COR_TYPEID +``` + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v462plus](../../../../includes/net-current-v462plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugtypeenum-interface.md b/docs/framework/unmanaged-api/debugging/icordebugtypeenum-interface.md index 5dd087e20c045..b207849838ad6 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugtypeenum-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugtypeenum-interface.md @@ -2,45 +2,45 @@ description: "Learn more about: ICorDebugTypeEnum Interface" title: "ICorDebugTypeEnum Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugTypeEnum" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugTypeEnum" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugTypeEnum interface [.NET Framework debugging]" ms.assetid: 159ccfcf-b37c-4ad9-8e0d-a9a443262472 -topic_type: +topic_type: - "apiref" --- # ICorDebugTypeEnum Interface -Implements "ICorDebugEnum" methods and enumerates "ICorDebugType" arrays. - -## Methods - -|Method|Description| -|------------|-----------------| -|[Next Method](icordebugtypeenum-next-method.md)|Gets the specified number of `ICorDebugType` instances from the enumeration, starting at the current position.| - -## Remarks - +Implements "ICorDebugEnum" methods and enumerates "ICorDebugType" arrays. + +## Methods + +|Method|Description| +|------------|-----------------| +|[Next Method](icordebugtypeenum-next-method.md)|Gets the specified number of `ICorDebugType` instances from the enumeration, starting at the current position.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugunmanagedcallback-debugevent-method.md b/docs/framework/unmanaged-api/debugging/icordebugunmanagedcallback-debugevent-method.md index c92b63fb02bba..6e7dc93368dd5 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugunmanagedcallback-debugevent-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugunmanagedcallback-debugevent-method.md @@ -2,62 +2,62 @@ description: "Learn more about: ICorDebugUnmanagedCallback::DebugEvent Method" title: "ICorDebugUnmanagedCallback::DebugEvent Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugUnmanagedCallback.DebugEvent" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugUnmanagedCallback::DebugEvent" -helpviewer_keywords: +helpviewer_keywords: - "DebugEvent method [.NET Framework debugging]" - "ICorDebugUnmanagedCallback::DebugEvent method [.NET Framework debugging]" ms.assetid: be9cab04-65ec-44d5-a39a-f90709fdd043 -topic_type: +topic_type: - "apiref" --- # ICorDebugUnmanagedCallback::DebugEvent Method -Notifies the debugger that a native event has been fired. - -## Syntax - -```cpp -HRESULT DebugEvent ( - [in] LPDEBUG_EVENT pDebugEvent, - [in] BOOL fOutOfBand -); -``` - -## Parameters - - `pDebugEvent` - [in] A pointer to the native event. - - `fOutOfBand` - [in] `true`, if interaction with the managed process state is impossible after an unmanaged event occurs, until the debugger calls [ICorDebugController::Continue](icordebugcontroller-continue-method.md); otherwise, `false`. - -## Remarks - - If the thread being debugged is a Win32 thread, do not use any members of the Win32 debugging interface. You can call `ICorDebugController::Continue` only on a Win32 thread and only when continuing past an out-of-band event. - - The `DebugEvent` callback does not follow the standard rules for callbacks. When you call `DebugEvent`, the process will be in the raw, OS-debug stopped state. The process will not be synchronized. It will automatically enter the synchronized state when necessary to satisfy requests for information about managed code, which may result in other nested `DebugEvent` callbacks. - - Call [ICorDebugProcess::ClearCurrentException](icordebugprocess-clearcurrentexception-method.md) on the process to ignore an exception event before continuing the process. Calling this method sends DBG_CONTINUE instead of DBG_EXCEPTION_NOT_HANDLED on the continue request, and automatically clears out-of-band breakpoints and single-step exceptions. Out-of-band events can come at any time, even when the application being debugged appears stopped and when an outstanding in-band event already exists. - - In .NET Framework version 2.0, the debugger should immediately continue past an out-of-band breakpoint event. The debugger should be using the [ICorDebugProcess2::SetUnmanagedBreakpoint](icordebugprocess2-setunmanagedbreakpoint-method.md) and [ICorDebugProcess2::ClearUnmanagedBreakpoint](icordebugprocess2-clearunmanagedbreakpoint-method.md) methods to add and remove breakpoints. These methods will skip over any out-of-band breakpoints automatically. Thus, the only out-of-band breakpoints that get dispatched should be raw breakpoints that are already in the instruction stream, such as a call to the Win32 `DebugBreak` function. Do not try to use `ICorDebugProcess::ClearCurrentException`, [ICorDebugProcess::GetThreadContext](icordebugprocess-getthreadcontext-method.md), [ICorDebugProcess::SetThreadContext](icordebugprocess-setthreadcontext-method.md), or any other member of the [debugging API](index.md). - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Notifies the debugger that a native event has been fired. + +## Syntax + +```cpp +HRESULT DebugEvent ( + [in] LPDEBUG_EVENT pDebugEvent, + [in] BOOL fOutOfBand +); +``` + +## Parameters + + `pDebugEvent` + [in] A pointer to the native event. + + `fOutOfBand` + [in] `true`, if interaction with the managed process state is impossible after an unmanaged event occurs, until the debugger calls [ICorDebugController::Continue](icordebugcontroller-continue-method.md); otherwise, `false`. + +## Remarks + + If the thread being debugged is a Win32 thread, do not use any members of the Win32 debugging interface. You can call `ICorDebugController::Continue` only on a Win32 thread and only when continuing past an out-of-band event. + + The `DebugEvent` callback does not follow the standard rules for callbacks. When you call `DebugEvent`, the process will be in the raw, OS-debug stopped state. The process will not be synchronized. It will automatically enter the synchronized state when necessary to satisfy requests for information about managed code, which may result in other nested `DebugEvent` callbacks. + + Call [ICorDebugProcess::ClearCurrentException](icordebugprocess-clearcurrentexception-method.md) on the process to ignore an exception event before continuing the process. Calling this method sends DBG_CONTINUE instead of DBG_EXCEPTION_NOT_HANDLED on the continue request, and automatically clears out-of-band breakpoints and single-step exceptions. Out-of-band events can come at any time, even when the application being debugged appears stopped and when an outstanding in-band event already exists. + + In .NET Framework version 2.0, the debugger should immediately continue past an out-of-band breakpoint event. The debugger should be using the [ICorDebugProcess2::SetUnmanagedBreakpoint](icordebugprocess2-setunmanagedbreakpoint-method.md) and [ICorDebugProcess2::ClearUnmanagedBreakpoint](icordebugprocess2-clearunmanagedbreakpoint-method.md) methods to add and remove breakpoints. These methods will skip over any out-of-band breakpoints automatically. Thus, the only out-of-band breakpoints that get dispatched should be raw breakpoints that are already in the instruction stream, such as a call to the Win32 `DebugBreak` function. Do not try to use `ICorDebugProcess::ClearCurrentException`, [ICorDebugProcess::GetThreadContext](icordebugprocess-getthreadcontext-method.md), [ICorDebugProcess::SetThreadContext](icordebugprocess-setthreadcontext-method.md), or any other member of the [debugging API](index.md). + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [ICorDebugUnmanagedCallback Interface](icordebugunmanagedcallback-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugunmanagedcallback-interface.md b/docs/framework/unmanaged-api/debugging/icordebugunmanagedcallback-interface.md index cbd8c08ef6bb4..712a9fed19ff3 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugunmanagedcallback-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugunmanagedcallback-interface.md @@ -2,45 +2,45 @@ description: "Learn more about: ICorDebugUnmanagedCallback Interface" title: "ICorDebugUnmanagedCallback Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugUnmanagedCallback" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugUnmanagedCallback" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugUnmanagedCallback interface [.NET Framework debugging]" ms.assetid: bc71cbca-7d73-40e5-84dd-2109fade3c2a -topic_type: +topic_type: - "apiref" --- # ICorDebugUnmanagedCallback Interface -Provides notification of native events that are not directly related to the common language runtime (CLR). - -## Methods - -|Method|Description| -|------------|-----------------| -|[DebugEvent Method](icordebugunmanagedcallback-debugevent-method.md)|Notifies the debugger that a native event has been fired.| - -## Remarks - +Provides notification of native events that are not directly related to the common language runtime (CLR). + +## Methods + +|Method|Description| +|------------|-----------------| +|[DebugEvent Method](icordebugunmanagedcallback-debugevent-method.md)|Notifies the debugger that a native event has been fired.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugvalue-getaddress-method.md b/docs/framework/unmanaged-api/debugging/icordebugvalue-getaddress-method.md index dba963c23acdf..964cd83315268 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugvalue-getaddress-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugvalue-getaddress-method.md @@ -2,50 +2,50 @@ description: "Learn more about: ICorDebugValue::GetAddress Method" title: "ICorDebugValue::GetAddress Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugValue.GetAddress" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugValue::GetAddress" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugValue::GetAddress method [.NET Framework debugging]" - "GetAddress method, ICorDebugValue interface [.NET Framework debugging]" ms.assetid: a247c792-45e1-4538-9e1f-b46acca4a463 -topic_type: +topic_type: - "apiref" --- # ICorDebugValue::GetAddress Method -Gets the address of this "ICorDebugValue" object, which is in the process of being debugged. - -## Syntax - -```cpp -HRESULT GetAddress ( - [out] CORDB_ADDRESS *pAddress -); -``` - -## Parameters - - `pAddress` - [out] Pointer to a `CORDB_ADDRESS` object that specifies the address of this value object. - -## Remarks - - If the value is unavailable, 0 (zero) is returned. This could happen if the value is at least partly in registers or stored in a garbage collector handle (`GCHandle`). - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Gets the address of this "ICorDebugValue" object, which is in the process of being debugged. + +## Syntax + +```cpp +HRESULT GetAddress ( + [out] CORDB_ADDRESS *pAddress +); +``` + +## Parameters + + `pAddress` + [out] Pointer to a `CORDB_ADDRESS` object that specifies the address of this value object. + +## Remarks + + If the value is unavailable, 0 (zero) is returned. This could happen if the value is at least partly in registers or stored in a garbage collector handle (`GCHandle`). + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also diff --git a/docs/framework/unmanaged-api/debugging/icordebugvalue-getsize-method.md b/docs/framework/unmanaged-api/debugging/icordebugvalue-getsize-method.md index 010955242da1d..e225f14d470b3 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugvalue-getsize-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugvalue-getsize-method.md @@ -2,54 +2,54 @@ description: "Learn more about: ICorDebugValue::GetSize Method" title: "ICorDebugValue::GetSize Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugValue.GetSize" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugValue::GetSize" -helpviewer_keywords: +helpviewer_keywords: - "GetSize method, ICorDebugValue interface [.NET Framework debugging]" - "ICorDebugValue::GetSize method [.NET Framework debugging]" ms.assetid: 445a9ee3-e050-4f3a-931a-96b0efb00110 -topic_type: +topic_type: - "apiref" --- # ICorDebugValue::GetSize Method -Gets the size, in bytes, of this "ICorDebugValue" object. - -## Syntax - -```cpp -HRESULT GetSize ( - [out] ULONG32 *pSize -); -``` - -## Parameters - - `pSize` - [out] The size, in bytes, of this value object. - -## Remarks - - If the value's type is a reference type, this method returns the size of the pointer rather than the size of the object. - - The `ICorDebugValue::GetSize` method returns `COR_E_OVERFLOW` for objects that are larger than 4 GB on 64-bit platforms. Use the [ICorDebugValue3::GetSize64](icordebugvalue3-getsize64-method.md) method instead for objects that are larger than 4 GB. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Gets the size, in bytes, of this "ICorDebugValue" object. + +## Syntax + +```cpp +HRESULT GetSize ( + [out] ULONG32 *pSize +); +``` + +## Parameters + + `pSize` + [out] The size, in bytes, of this value object. + +## Remarks + + If the value's type is a reference type, this method returns the size of the pointer rather than the size of the object. + + The `ICorDebugValue::GetSize` method returns `COR_E_OVERFLOW` for objects that are larger than 4 GB on 64-bit platforms. Use the [ICorDebugValue3::GetSize64](icordebugvalue3-getsize64-method.md) method instead for objects that are larger than 4 GB. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [GetSize64 Method](icordebugvalue3-getsize64-method.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugvalue-gettype-method.md b/docs/framework/unmanaged-api/debugging/icordebugvalue-gettype-method.md index 963eac1b9e907..d219c39a8e163 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugvalue-gettype-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugvalue-gettype-method.md @@ -2,52 +2,52 @@ description: "Learn more about: ICorDebugValue::GetType Method" title: "ICorDebugValue::GetType Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugValue.GetType" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugValue::GetType" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugValue::GetType method [.NET Framework debugging]" - "GetType method, ICorDebugValue interface [.NET Framework debugging]" ms.assetid: 41e2d503-e1f1-407b-abe0-6a29adb3e0d1 -topic_type: +topic_type: - "apiref" --- # ICorDebugValue::GetType Method -Gets the primitive type of this "ICorDebugValue" object. - -## Syntax - -```cpp -HRESULT GetType ( - [out] CorElementType *pType -); -``` - -## Parameters - - `pType` - [out] A pointer to a value of the "CorElementType" enumeration that indicates the value's type. - -## Remarks - - If the object is a complex run-time type, that type may be examined through the appropriate subclasses of the `ICorDebugValue` interface. For example, "ICorDebugObjectValue", which inherits from `ICorDebugValue`, represents a complex type. - - The `GetType` and [ICorDebugObjectValue::GetClass](icordebugobjectvalue-getclass-method.md) methods each return information about the type of a value. They are both superseded by the generics-aware [ICorDebugValue2::GetExactType](icordebugvalue2-getexacttype-method.md) method. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Gets the primitive type of this "ICorDebugValue" object. + +## Syntax + +```cpp +HRESULT GetType ( + [out] CorElementType *pType +); +``` + +## Parameters + + `pType` + [out] A pointer to a value of the "CorElementType" enumeration that indicates the value's type. + +## Remarks + + If the object is a complex run-time type, that type may be examined through the appropriate subclasses of the `ICorDebugValue` interface. For example, "ICorDebugObjectValue", which inherits from `ICorDebugValue`, represents a complex type. + + The `GetType` and [ICorDebugObjectValue::GetClass](icordebugobjectvalue-getclass-method.md) methods each return information about the type of a value. They are both superseded by the generics-aware [ICorDebugValue2::GetExactType](icordebugvalue2-getexacttype-method.md) method. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also diff --git a/docs/framework/unmanaged-api/debugging/icordebugvalue-interface.md b/docs/framework/unmanaged-api/debugging/icordebugvalue-interface.md index 0e566968d05c1..9e4375d0abff4 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugvalue-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugvalue-interface.md @@ -2,52 +2,52 @@ description: "Learn more about: ICorDebugValue Interface" title: "ICorDebugValue Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugValue" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugValue" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugValue interface [.NET Framework debugging]" ms.assetid: b2f7007f-c446-4b18-aed1-a25cff8aee31 -topic_type: +topic_type: - "apiref" --- # ICorDebugValue Interface -Represents a value in the process being debugged. The value can be a read or a write value. - -## Methods - -|Method|Description| -|------------|-----------------| -|[CreateBreakpoint Method](icordebugvalue-createbreakpoint-method.md)|This method is not currently implemented.| -|[GetAddress Method](icordebugvalue-getaddress-method.md)|Gets the address of this `ICorDebugValue` object, which is in the process of being debugged.| -|[GetSize Method](icordebugvalue-getsize-method.md)|Gets the size, in bytes, of this `ICorDebugValue` object.| -|[GetType Method](icordebugvalue-gettype-method.md)|Gets the primitive type of this `ICorDebugValue` object.| - -## Remarks - - In general, ownership of a value object is passed when it is returned. The recipient is responsible for removing a reference from the object when it is finished with the object. - - Depending on where the value was retrieved from, the value may not remain valid after the process is resumed. So, in general, the value shouldn't be held across a call of the [ICorDebugController::Continue](icordebugcontroller-continue-method.md) method. - +Represents a value in the process being debugged. The value can be a read or a write value. + +## Methods + +|Method|Description| +|------------|-----------------| +|[CreateBreakpoint Method](icordebugvalue-createbreakpoint-method.md)|This method is not currently implemented.| +|[GetAddress Method](icordebugvalue-getaddress-method.md)|Gets the address of this `ICorDebugValue` object, which is in the process of being debugged.| +|[GetSize Method](icordebugvalue-getsize-method.md)|Gets the size, in bytes, of this `ICorDebugValue` object.| +|[GetType Method](icordebugvalue-gettype-method.md)|Gets the primitive type of this `ICorDebugValue` object.| + +## Remarks + + In general, ownership of a value object is passed when it is returned. The recipient is responsible for removing a reference from the object when it is finished with the object. + + Depending on where the value was retrieved from, the value may not remain valid after the process is resumed. So, in general, the value shouldn't be held across a call of the [ICorDebugController::Continue](icordebugcontroller-continue-method.md) method. + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [ICorDebugValue3 Interface](icordebugvalue3-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugvalue2-getexacttype-method.md b/docs/framework/unmanaged-api/debugging/icordebugvalue2-getexacttype-method.md index 3f07a9f7ce8e3..a4e6a68c9c3ec 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugvalue2-getexacttype-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugvalue2-getexacttype-method.md @@ -2,50 +2,50 @@ description: "Learn more about: ICorDebugValue2::GetExactType Method" title: "ICorDebugValue2::GetExactType Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugValue2.GetExactType" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugValue2::GetExactType" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugValue2::GetExactType method [.NET Framework debugging]" - "GetExactType method [.NET Framework debugging]" ms.assetid: 8e9aae1b-d1b7-4b6e-b577-6faf36dcec85 -topic_type: +topic_type: - "apiref" --- # ICorDebugValue2::GetExactType Method -Gets an interface pointer to an "ICorDebugType" object that represents the of this value. - -## Syntax - -```cpp -HRESULT GetExactType ( - [out] ICorDebugType **ppType -); -``` - -## Parameters - - `ppType` - [out] A pointer to the address of an `ICorDebugType` object that represents the of the value represented by this "ICorDebugValue2" object. - -## Remarks - - The generics-aware `GetExactType` method supersedes both the [ICorDebugObjectValue::GetClass](icordebugobjectvalue-getclass-method.md) and the [ICorDebugValue::GetType](icordebugvalue-gettype-method.md) methods, each of which return information about the type of a value. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +Gets an interface pointer to an "ICorDebugType" object that represents the of this value. + +## Syntax + +```cpp +HRESULT GetExactType ( + [out] ICorDebugType **ppType +); +``` + +## Parameters + + `ppType` + [out] A pointer to the address of an `ICorDebugType` object that represents the of the value represented by this "ICorDebugValue2" object. + +## Remarks + + The generics-aware `GetExactType` method supersedes both the [ICorDebugObjectValue::GetClass](icordebugobjectvalue-getclass-method.md) and the [ICorDebugValue::GetType](icordebugvalue-gettype-method.md) methods, each of which return information about the type of a value. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also diff --git a/docs/framework/unmanaged-api/debugging/icordebugvalue2-interface.md b/docs/framework/unmanaged-api/debugging/icordebugvalue2-interface.md index 222307983e443..c599cf0a000e1 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugvalue2-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugvalue2-interface.md @@ -2,45 +2,45 @@ description: "Learn more about: ICorDebugValue2 Interface" title: "ICorDebugValue2 Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugValue2" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugValue2" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugValue2 interface [.NET Framework debugging]" ms.assetid: 3ff2ad2a-da5a-461b-8627-1a8eba49df9c -topic_type: +topic_type: - "apiref" --- # ICorDebugValue2 Interface -Extends the "ICorDebugValue" interface to provide support for "ICorDebugType" objects. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetExactType Method](icordebugvalue2-getexacttype-method.md)|Gets an interface pointer to an `ICorDebugType` object that represents the of this value.| - -## Remarks - +Extends the "ICorDebugValue" interface to provide support for "ICorDebugType" objects. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetExactType Method](icordebugvalue2-getexacttype-method.md)|Gets an interface pointer to an `ICorDebugType` object that represents the of this value.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugvalue3-getsize64-method.md b/docs/framework/unmanaged-api/debugging/icordebugvalue3-getsize64-method.md index ecd2048d232d9..7be68ca35cb16 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugvalue3-getsize64-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugvalue3-getsize64-method.md @@ -2,54 +2,54 @@ description: "Learn more about: ICorDebugValue3::GetSize64 Method" title: "ICorDebugValue3::GetSize64 Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugValue3::GetSize64" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugValue3::GetSize64" -helpviewer_keywords: +helpviewer_keywords: - "GetSize64 method, ICorDebugValue3 interface [.NET Framework debugging]" - "ICorDebugValue3::GetSize64 method [.NET Framework debugging]" ms.assetid: fee56a29-3154-4192-958d-71da2ced3740 -topic_type: +topic_type: - "apiref" --- # ICorDebugValue3::GetSize64 Method -Gets the size, in bytes, of this [ICorDebugValue3](icordebugvalue3-interface.md) object. - -## Syntax - -```cpp -HRESULT GetSize64( - [out] ULONG64 *pSize -); -``` - -## Parameters - - pSize - [out] A pointer to the size, in bytes, of this object. - -## Remarks - - If this value's type is a reference type, this method returns the size of the pointer rather than the size of the object. - - The `ICorDebugValue3::GetSize` method differs from the [ICorDebugValue::GetSize](icordebugvalue-getsize-method.md) method in the type of its output parameter. In [ICorDebugValue::GetSize](icordebugvalue-getsize-method.md), the output parameter is a `ULONG32`; in `ICorDebugValue3::GetSize`, it is a `ULONG64`. This enables the [ICorDebugValue3](icordebugvalue3-interface.md) interface to report the size of arrays that exceed 2GB. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - +Gets the size, in bytes, of this [ICorDebugValue3](icordebugvalue3-interface.md) object. + +## Syntax + +```cpp +HRESULT GetSize64( + [out] ULONG64 *pSize +); +``` + +## Parameters + + pSize + [out] A pointer to the size, in bytes, of this object. + +## Remarks + + If this value's type is a reference type, this method returns the size of the pointer rather than the size of the object. + + The `ICorDebugValue3::GetSize` method differs from the [ICorDebugValue::GetSize](icordebugvalue-getsize-method.md) method in the type of its output parameter. In [ICorDebugValue::GetSize](icordebugvalue-getsize-method.md), the output parameter is a `ULONG32`; in `ICorDebugValue3::GetSize`, it is a `ULONG64`. This enables the [ICorDebugValue3](icordebugvalue3-interface.md) interface to report the size of arrays that exceed 2GB. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [ICorDebugValue3 Interface](icordebugvalue3-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugvalue3-interface.md b/docs/framework/unmanaged-api/debugging/icordebugvalue3-interface.md index 27d9995ae3e6b..05a665b1aaa9b 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugvalue3-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugvalue3-interface.md @@ -2,44 +2,44 @@ description: "Learn more about: ICorDebugValue3 Interface" title: "ICorDebugValue3 Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugValue3" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugValue3" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugValue3 interface [.NET Framework debugging]" ms.assetid: 7d5385d3-f4a5-47c4-8478-a3513b5e9406 -topic_type: +topic_type: - "apiref" --- # ICorDebugValue3 Interface -Extends the "ICorDebugValue" and "ICorDebugValue2" interfaces to provide support for arrays that are larger than 2 GB. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetSize64 Method](icordebugvalue3-getsize64-method.md)|Gets the size, in bytes, of this `ICorDebugValue3` object.| - -## Remarks - - The [ICorDebugValue::GetSize](icordebugvalue3-getsize64-method.md) method returns an object size that ranges from 0 to 2,147,483,647 bytes. In .NET Framework 4.5, the size of arrays can exceed 2 GB. The `ICorDebugValue3` interface enables you to determine the size of these arrays. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] - +Extends the "ICorDebugValue" and "ICorDebugValue2" interfaces to provide support for arrays that are larger than 2 GB. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetSize64 Method](icordebugvalue3-getsize64-method.md)|Gets the size, in bytes, of this `ICorDebugValue3` object.| + +## Remarks + + The [ICorDebugValue::GetSize](icordebugvalue3-getsize64-method.md) method returns an object size that ranges from 0 to 2,147,483,647 bytes. In .NET Framework 4.5, the size of arrays can exceed 2 GB. The `ICorDebugValue3` interface enables you to determine the size of these arrays. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v45plus](../../../../includes/net-current-v45plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugvaluebreakpoint-interface.md b/docs/framework/unmanaged-api/debugging/icordebugvaluebreakpoint-interface.md index 9207b434aad29..d327f2ffb11b6 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugvaluebreakpoint-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugvaluebreakpoint-interface.md @@ -2,45 +2,45 @@ description: "Learn more about: ICorDebugValueBreakpoint Interface" title: "ICorDebugValueBreakpoint Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugValueBreakpoint" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugValueBreakpoint" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugValueBreakpoint interface [.NET Framework debugging]" ms.assetid: c02338fe-da6c-467f-9567-70ebb387e901 -topic_type: +topic_type: - "apiref" --- # ICorDebugValueBreakpoint Interface -Extends the ICorDebugBreakpoint interface to provide access to specific values. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetValue Method](icordebugvaluebreakpoint-getvalue-method.md)|Gets an interface pointer to an ICorDebugValue object that represents the value of the object upon which the breakpoint is set.| - -## Remarks - +Extends the ICorDebugBreakpoint interface to provide access to specific values. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetValue Method](icordebugvaluebreakpoint-getvalue-method.md)|Gets an interface pointer to an ICorDebugValue object that represents the value of the object upon which the breakpoint is set.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugvalueenum-interface.md b/docs/framework/unmanaged-api/debugging/icordebugvalueenum-interface.md index 34c3671f03510..9b15112e887a7 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugvalueenum-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugvalueenum-interface.md @@ -2,45 +2,45 @@ description: "Learn more about: ICorDebugValueEnum Interface" title: "ICorDebugValueEnum Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugValueEnum" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugValueEnum" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugValueEnum interface [.NET Framework debugging]" ms.assetid: 88989482-a09f-4bd0-9adb-16f47b0291fd -topic_type: +topic_type: - "apiref" --- # ICorDebugValueEnum Interface -Implements "ICorDebugEnum" methods and enumerates "ICorDebugValue" arrays. - -## Methods - -|Method|Description| -|------------|-----------------| -|[Next Method](icordebugvalueenum-next-method.md)|Gets the specified number of `ICorDebugValue` instances from the enumeration, starting at the current position.| - -## Remarks - +Implements "ICorDebugEnum" methods and enumerates "ICorDebugValue" arrays. + +## Methods + +|Method|Description| +|------------|-----------------| +|[Next Method](icordebugvalueenum-next-method.md)|Gets the specified number of `ICorDebugValue` instances from the enumeration, starting at the current position.| + +## Remarks + > [!NOTE] -> This interface does not support being called remotely, either cross-machine or cross-process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +> This interface does not support being called remotely, either cross-machine or cross-process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugvariablehome-getslotindex-method.md b/docs/framework/unmanaged-api/debugging/icordebugvariablehome-getslotindex-method.md index bb623a18abe96..7cc6769588f16 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugvariablehome-getslotindex-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugvariablehome-getslotindex-method.md @@ -2,61 +2,61 @@ description: "Learn more about: ICorDebugVariableHome::GetSlotIndex Method" title: "ICorDebugVariableHome::GetSlotIndex Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugVariableHome.GetSlotIndex" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugVariableHome::GetSlotIndex" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugVariableHome::GetSlotIndex method [.NET Framework debugging]" - "GetSlotIndex method, ICorDebugVariableHome interface [.NET Framework debugging]" ms.assetid: 966da50d-5665-4fff-bf7b-1c72bbadd9a4 -topic_type: +topic_type: - "apiref" --- # ICorDebugVariableHome::GetSlotIndex Method -Gets the managed slot-index of a local variable. - -## Syntax - -```cpp -HRESULT GetSlotIndex( - [out] ULONG32 *pSlotIndex -); -``` - -## Parameters - - `pSlotIndex` - [out] A pointer to the slot-index of a local variable. - -## Return Value - - The method returns the following values. - -|Value|Description| -|-----------|-----------------| -|`S_OK`|The method call returned a slot-index value in `pSlotIndex`.| -|`E_FAIL`|The current [ICorDebugVariableHome](icordebugvariablehome-interface.md) instance represents a function argument.| - -## Remarks - - The slot-index can be used to retrieve the metadata for this local variable. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v462plus](../../../../includes/net-current-v462plus-md.md)] - +Gets the managed slot-index of a local variable. + +## Syntax + +```cpp +HRESULT GetSlotIndex( + [out] ULONG32 *pSlotIndex +); +``` + +## Parameters + + `pSlotIndex` + [out] A pointer to the slot-index of a local variable. + +## Return Value + + The method returns the following values. + +|Value|Description| +|-----------|-----------------| +|`S_OK`|The method call returned a slot-index value in `pSlotIndex`.| +|`E_FAIL`|The current [ICorDebugVariableHome](icordebugvariablehome-interface.md) instance represents a function argument.| + +## Remarks + + The slot-index can be used to retrieve the metadata for this local variable. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v462plus](../../../../includes/net-current-v462plus-md.md)] + ## See also - [ICorDebugVariableHome Interface](icordebugvariablehome-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugvariablehomeenum-interface.md b/docs/framework/unmanaged-api/debugging/icordebugvariablehomeenum-interface.md index 7ac44d1285acf..661add69bb7c9 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugvariablehomeenum-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugvariablehomeenum-interface.md @@ -2,46 +2,46 @@ description: "Learn more about: ICorDebugVariableHomeEnum Interface" title: "ICorDebugVariableHomeEnum Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugVariableHomeEnum" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugVariableHomeEnum" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugVariableHomeEnum interface [.NET Framework debugging]" ms.assetid: c312ae6d-c8dc-48d6-9f1e-ead515c88fdf -topic_type: +topic_type: - "apiref" --- # ICorDebugVariableHomeEnum Interface -Provides an enumerator to the local variables and arguments in a function. - -## Methods - -|Method|Description| -|------------|-----------------| -|[Next Method](icordebugvariablehomeenum-next-method.md)|Gets the specified number of [ICorDebugVariableHome](icordebugvariablehome-interface.md) instances that contain information about the local variables and arguments in a function.| - -## Remarks - - The `ICorDebugVariableHomeEnum` interface implements the ICorDebugEnum interface. - - An `ICorDebugVariableHomeEnum` instance is populated with [ICorDebugVariableHome](icordebugvariablehome-interface.md) instances by calling the [ICorDebugCode4::EnumerateVariableHomes](icordebugcode4-enumeratevariablehomes-method.md) method. Each [ICorDebugVariableHome](icordebugvariablehome-interface.md) instance in the collection represents a local variable or argument in a function. The [ICorDebugVariableHome](icordebugvariablehome-interface.md) objects in the collection can be enumerated by calling the [ICorDebugVariableHomeEnum::Next](icordebugvariablehomeenum-next-method.md) method. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v462plus](../../../../includes/net-current-v462plus-md.md)] - +Provides an enumerator to the local variables and arguments in a function. + +## Methods + +|Method|Description| +|------------|-----------------| +|[Next Method](icordebugvariablehomeenum-next-method.md)|Gets the specified number of [ICorDebugVariableHome](icordebugvariablehome-interface.md) instances that contain information about the local variables and arguments in a function.| + +## Remarks + + The `ICorDebugVariableHomeEnum` interface implements the ICorDebugEnum interface. + + An `ICorDebugVariableHomeEnum` instance is populated with [ICorDebugVariableHome](icordebugvariablehome-interface.md) instances by calling the [ICorDebugCode4::EnumerateVariableHomes](icordebugcode4-enumeratevariablehomes-method.md) method. Each [ICorDebugVariableHome](icordebugvariablehome-interface.md) instance in the collection represents a local variable or argument in a function. The [ICorDebugVariableHome](icordebugvariablehome-interface.md) objects in the collection can be enumerated by calling the [ICorDebugVariableHomeEnum::Next](icordebugvariablehomeenum-next-method.md) method. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v462plus](../../../../includes/net-current-v462plus-md.md)] + ## See also - [ICorDebugVariableHome Interface](icordebugvariablehome-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugvariablehomeenum-next-method.md b/docs/framework/unmanaged-api/debugging/icordebugvariablehomeenum-next-method.md index 16ffad2fc0f1f..e77c5b99d18c9 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugvariablehomeenum-next-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugvariablehomeenum-next-method.md @@ -2,69 +2,69 @@ description: "Learn more about: ICorDebugVariableHomeEnum::Next Method" title: "ICorDebugVariableHomeEnum::Next Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorDebugVariableHomeEnum.Next" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorDebugVariableHomeEnum::Next" -helpviewer_keywords: +helpviewer_keywords: - "ICorDebugVariableHomeEnum::Next method [.NET Framework debugging]" - "Next method, ICorDebugVariableHomeEnum interface [.NET Framework debugging]" ms.assetid: eb9ea96c-5b58-4655-8104-094fc8b393b8 -topic_type: +topic_type: - "apiref" --- # ICorDebugVariableHomeEnum::Next Method -Gets the specified number of [ICorDebugVariableHome](icordebugvariablehome-interface.md) instances that contain information about the local variables and arguments in a function. - -## Syntax - -```cpp -HRESULT Next( - [in] ULONG celt, - [out, size_is(celt), length_is(*pceltFetched)] ICorDebugVariableHome *homes[], - [out] ULONG *pceltFetched -); -``` - -## Parameters - - `celt` - [in] The number of objects to be retrieved. - - `homes` - An array of pointers, each of which points to a [ICorDebugVariableHome](icordebugvariablehome-interface.md) object that provides information about a local variable or argument of a function. - - `pceltFetched` - [out] The number of instances actually returned in objects. - -## Return Value - - The method returns the following values. - -|HRESULT|Description| -|-------------|-----------------| -|`S_OK`|The method completed successfully.| -|`S_FALSE`|The actual number of instances retrieved, as reflected in `pceltFetched`, is less than the number of instances requested.| - -## Remarks - - The [ICorDebugVariableHomeEnum::Next](icordebugvariablehomeenum-next-method.md) method retrieves a maximum of `celt` objects starting at the current position of the enumerator. When the method returns, `pceltFetched` contains the actual number of objects retrieved. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v462plus](../../../../includes/net-current-v462plus-md.md)] - +Gets the specified number of [ICorDebugVariableHome](icordebugvariablehome-interface.md) instances that contain information about the local variables and arguments in a function. + +## Syntax + +```cpp +HRESULT Next( + [in] ULONG celt, + [out, size_is(celt), length_is(*pceltFetched)] ICorDebugVariableHome *homes[], + [out] ULONG *pceltFetched +); +``` + +## Parameters + + `celt` + [in] The number of objects to be retrieved. + + `homes` + An array of pointers, each of which points to a [ICorDebugVariableHome](icordebugvariablehome-interface.md) object that provides information about a local variable or argument of a function. + + `pceltFetched` + [out] The number of instances actually returned in objects. + +## Return Value + + The method returns the following values. + +|HRESULT|Description| +|-------------|-----------------| +|`S_OK`|The method completed successfully.| +|`S_FALSE`|The actual number of instances retrieved, as reflected in `pceltFetched`, is less than the number of instances requested.| + +## Remarks + + The [ICorDebugVariableHomeEnum::Next](icordebugvariablehomeenum-next-method.md) method retrieves a maximum of `celt` objects starting at the current position of the enumerator. When the method returns, `pceltFetched` contains the actual number of objects retrieved. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v462plus](../../../../includes/net-current-v462plus-md.md)] + ## See also - [ICorDebugVariableHomeEnum Interface](icordebugvariablehomeenum-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugvariablesymbol-getname-method.md b/docs/framework/unmanaged-api/debugging/icordebugvariablesymbol-getname-method.md index 5172151396dd8..291ea5002ad8f 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugvariablesymbol-getname-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugvariablesymbol-getname-method.md @@ -6,44 +6,44 @@ ms.assetid: c922b7d4-44e5-45e4-aef3-cc9c35a0be80 --- # ICorDebugVariableSymbol::GetName Method -Gets the name of a variable. - -## Syntax - -```cpp -HRESULT GetName( +Gets the name of a variable. + +## Syntax + +```cpp +HRESULT GetName( [in] ULONG32 cchName, [out] ULONG32 *pcchName, - [out, size_is(cchName), length_is(*pcchName)] WCHAR szName[] -); -``` - -## Parameters - - `cchName` - [in] The number of characters in the `szName` buffer. - - `pcchName` - [out] A pointer to the number of characters actually written to the `szName` buffer. - - `szName` - A pointer to a character array that contains the variable name. - -## Remarks - + [out, size_is(cchName), length_is(*pcchName)] WCHAR szName[] +); +``` + +## Parameters + + `cchName` + [in] The number of characters in the `szName` buffer. + + `pcchName` + [out] A pointer to the number of characters actually written to the `szName` buffer. + + `szName` + A pointer to a character array that contains the variable name. + +## Remarks + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugVariableSymbol Interface](icordebugvariablesymbol-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugvariablesymbol-getsize-method.md b/docs/framework/unmanaged-api/debugging/icordebugvariablesymbol-getsize-method.md index 9a63c6c7827f5..928385e29aa22 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugvariablesymbol-getsize-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugvariablesymbol-getsize-method.md @@ -6,36 +6,36 @@ ms.assetid: add0cd9d-9a29-49b1-ae07-d9d3786b4ccd --- # ICorDebugVariableSymbol::GetSize Method -Gets the size of a variable in bytes. - -## Syntax - -```cpp -HRESULT GetSize( - [out] ULONG32 *pcbValue -); -``` - -## Parameters - - `pcbValue` - A pointer to a 32-bit unsigned integer containing the size of the variable. - -## Remarks - +Gets the size of a variable in bytes. + +## Syntax + +```cpp +HRESULT GetSize( + [out] ULONG32 *pcbValue +); +``` + +## Parameters + + `pcbValue` + A pointer to a 32-bit unsigned integer containing the size of the variable. + +## Remarks + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugVariableSymbol Interface](icordebugvariablesymbol-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugvariablesymbol-getslotindex-method.md b/docs/framework/unmanaged-api/debugging/icordebugvariablesymbol-getslotindex-method.md index cbd1ced4cd9c2..bd8e2f193315c 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugvariablesymbol-getslotindex-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugvariablesymbol-getslotindex-method.md @@ -6,42 +6,42 @@ ms.assetid: 09c19f5f-afc4-4e0c-bffe-cd7147bc7a43 --- # ICorDebugVariableSymbol::GetSlotIndex Method -Gets the managed slot index of a local variable. - -## Syntax - -```cpp -HRESULT GetSlotIndex( - [out] ULONG32 *pSlotIndex -); -``` - -## Parameters - - `pSlotIndex` - [out] A pointer to the local variable's slot index. - -## Return Value - - `S_OK` if successful. `E_FAIL` if the variable is a function argument. - -## Remarks - - The managed slot index of a local variable can be used to retrieve the variable's metadata information - +Gets the managed slot index of a local variable. + +## Syntax + +```cpp +HRESULT GetSlotIndex( + [out] ULONG32 *pSlotIndex +); +``` + +## Parameters + + `pSlotIndex` + [out] A pointer to the local variable's slot index. + +## Return Value + + `S_OK` if successful. `E_FAIL` if the variable is a function argument. + +## Remarks + + The managed slot index of a local variable can be used to retrieve the variable's metadata information + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugVariableSymbol Interface](icordebugvariablesymbol-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugvariablesymbol-getvalue-method.md b/docs/framework/unmanaged-api/debugging/icordebugvariablesymbol-getvalue-method.md index 3552782e38425..030f9790af46e 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugvariablesymbol-getvalue-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugvariablesymbol-getvalue-method.md @@ -6,56 +6,56 @@ ms.assetid: 90abece1-392e-4ade-94a1-30c75b0f7074 --- # ICorDebugVariableSymbol::GetValue Method -Gets the value of a variable as a byte array. - -## Syntax - -```cpp -HRESULT GetValue( - [in] ULONG32 offset, - [in] ULONG32 cbContext, - [in, size_is(cbContext)] BYTE context[], - [in] ULONG32 cbValue, - [out] ULONG32 *pcbValue, - [out, size_is(cbValue), length_is(*pcbValue)] BYTE pValue[] -); -``` - -## Parameters - - `offset` - [in] The starting offset in the variable from which to read the value. This parameter is used when reading member fields in an object. - - `cbContext` - [in] The size in bytes of the `context` argument. - - `context` - [in] The thread context used to read the value. - - `cbValue` - [in] The size in bytes of the `pValue` buffer. - - `pcbValue` - [out] The number of bytes actually written to the `pValue` buffer. - - `pValue` - [out] A byte array that contains the value of the variable. - -## Remarks - +Gets the value of a variable as a byte array. + +## Syntax + +```cpp +HRESULT GetValue( + [in] ULONG32 offset, + [in] ULONG32 cbContext, + [in, size_is(cbContext)] BYTE context[], + [in] ULONG32 cbValue, + [out] ULONG32 *pcbValue, + [out, size_is(cbValue), length_is(*pcbValue)] BYTE pValue[] +); +``` + +## Parameters + + `offset` + [in] The starting offset in the variable from which to read the value. This parameter is used when reading member fields in an object. + + `cbContext` + [in] The size in bytes of the `context` argument. + + `context` + [in] The thread context used to read the value. + + `cbValue` + [in] The size in bytes of the `pValue` buffer. + + `pcbValue` + [out] The number of bytes actually written to the `pValue` buffer. + + `pValue` + [out] A byte array that contains the value of the variable. + +## Remarks + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugVariableSymbol Interface](icordebugvariablesymbol-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugvariablesymbol-interface.md b/docs/framework/unmanaged-api/debugging/icordebugvariablesymbol-interface.md index 68ddcb0fe1791..f7ea1cd1e91b9 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugvariablesymbol-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugvariablesymbol-interface.md @@ -6,33 +6,33 @@ ms.assetid: 0e58b85e-69bd-41ff-bedb-8cdc8be6a7a2 --- # ICorDebugVariableSymbol Interface -Retrieves the debug symbol information for a variable. - -## Methods - -|Method|Description| -|------------|-----------------| -|[GetName Method](icordebugvariablesymbol-getname-method.md)|Gets the name of a variable.| -|[GetSize Method](icordebugvariablesymbol-getsize-method.md)|Gets the size of a variable in bytes.| -|[GetSlotIndex Method](icordebugvariablesymbol-getslotindex-method.md)|Gets the managed slot index of a local variable.| -|[GetValue Method](icordebugvariablesymbol-getvalue-method.md)|Gets the value of a variable as a byte array.| -|[SetValue Method](icordebugvariablesymbol-setvalue-method.md)|Assigns the value of a byte array to a variable.| - -## Remarks - +Retrieves the debug symbol information for a variable. + +## Methods + +|Method|Description| +|------------|-----------------| +|[GetName Method](icordebugvariablesymbol-getname-method.md)|Gets the name of a variable.| +|[GetSize Method](icordebugvariablesymbol-getsize-method.md)|Gets the size of a variable in bytes.| +|[GetSlotIndex Method](icordebugvariablesymbol-getslotindex-method.md)|Gets the managed slot index of a local variable.| +|[GetValue Method](icordebugvariablesymbol-getvalue-method.md)|Gets the value of a variable as a byte array.| +|[SetValue Method](icordebugvariablesymbol-setvalue-method.md)|Assigns the value of a byte array to a variable.| + +## Remarks + > [!NOTE] -> This interface is available with .NET Native only. If you implement this interface for ICorDebug scenarios outside of .NET Native, the common language runtime will ignore this interface. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This interface is available with .NET Native only. If you implement this interface for ICorDebug scenarios outside of .NET Native, the common language runtime will ignore this interface. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugvariablesymbol-setvalue-method.md b/docs/framework/unmanaged-api/debugging/icordebugvariablesymbol-setvalue-method.md index f92abdc4cf15e..4484d891e0d50 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugvariablesymbol-setvalue-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugvariablesymbol-setvalue-method.md @@ -6,56 +6,56 @@ ms.assetid: 4609418d-71fa-44bc-9618-4d529d25cabb --- # ICorDebugVariableSymbol::SetValue Method -Assigns the value of a byte array to a variable. - -## Syntax - -```cpp -HRESULT SetValue( - [in] ULONG32 offset, - [in] DWORD threadID, - [in] ULONG32 cbContext, - [in, size_is(cbContext)] BYTE context[], - [in] ULONG32 cbValue, - [in, size_is(cbValue)] BYTE pValue[] -); -``` - -## Parameters - - `offset` - [in] The starting offset in the variable at which to set the value. This parameter is used when writing to member fields in an object. - - `threadID` - [in] The thread identifier of the thread whose context must be updated to reflect the new value. - - `cbContext` - [in] The size in bytes of the thread context. - - `context` - [in] The thread context used to write the value. - - `cbValue` - [in] The size in bytes of the `pValue` buffer. - - `pValue` - [in] The buffer that contains the value to set. - -## Remarks - +Assigns the value of a byte array to a variable. + +## Syntax + +```cpp +HRESULT SetValue( + [in] ULONG32 offset, + [in] DWORD threadID, + [in] ULONG32 cbContext, + [in, size_is(cbContext)] BYTE context[], + [in] ULONG32 cbValue, + [in, size_is(cbValue)] BYTE pValue[] +); +``` + +## Parameters + + `offset` + [in] The starting offset in the variable at which to set the value. This parameter is used when writing to member fields in an object. + + `threadID` + [in] The thread identifier of the thread whose context must be updated to reflect the new value. + + `cbContext` + [in] The size in bytes of the thread context. + + `context` + [in] The thread context used to write the value. + + `cbValue` + [in] The size in bytes of the `pValue` buffer. + + `pValue` + [in] The buffer that contains the value to set. + +## Remarks + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugVariableSymbol Interface](icordebugvariablesymbol-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugvirtualunwinder-getcontext-method.md b/docs/framework/unmanaged-api/debugging/icordebugvirtualunwinder-getcontext-method.md index b5521c7d1e5ff..71f80370d7ca4 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugvirtualunwinder-getcontext-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugvirtualunwinder-getcontext-method.md @@ -6,56 +6,56 @@ ms.assetid: fe502a76-3068-47e5-a0a0-85ccb72dfac3 --- # ICorDebugVirtualUnwinder::GetContext Method -Gets the current context of this unwinder. - -## Syntax - -```cpp -HRESULT GetContext( - [in] ULONG32 contextFlags, - [in] ULONG32 cbContextBuf, - [out] ULONG32* contextSize, - [out, size_is(cbContextBuf)] BYTE contextBuf[] -); -``` - -## Parameters - - `contextFlags` - [in] Flags that specify which parts of the context to return (defined in WinNT.h). - - `cbContextBuf` - [in] The number of bytes in `contextBuf`. - - `contextSize` - [out] A pointer to the number of bytes actually written to `contextBuf`. - - `contextBuf` - [out] A byte array that contains the current context of this unwinder. - -## Return Value - - Any failing HRESULT value received by mscordbi is considered fatal and will cause ICorDebug APIs to return `CORDBG_E_DATA_TARGET_ERROR`. - -## Remarks - - You set the initial value of the `contextBuf` argument to the context buffer returned by calling the [ICorDebugStackWalk::GetContext](icordebugstackwalk-getcontext-method.md) method. - +Gets the current context of this unwinder. + +## Syntax + +```cpp +HRESULT GetContext( + [in] ULONG32 contextFlags, + [in] ULONG32 cbContextBuf, + [out] ULONG32* contextSize, + [out, size_is(cbContextBuf)] BYTE contextBuf[] +); +``` + +## Parameters + + `contextFlags` + [in] Flags that specify which parts of the context to return (defined in WinNT.h). + + `cbContextBuf` + [in] The number of bytes in `contextBuf`. + + `contextSize` + [out] A pointer to the number of bytes actually written to `contextBuf`. + + `contextBuf` + [out] A byte array that contains the current context of this unwinder. + +## Return Value + + Any failing HRESULT value received by mscordbi is considered fatal and will cause ICorDebug APIs to return `CORDBG_E_DATA_TARGET_ERROR`. + +## Remarks + + You set the initial value of the `contextBuf` argument to the context buffer returned by calling the [ICorDebugStackWalk::GetContext](icordebugstackwalk-getcontext-method.md) method. + > [!NOTE] -> This method is available with .NET Native only. - - Because unwinding may only restore a subset of the registers, such as the non-volatile registers only, the context may not exactly match the register state at the time of the actual method call. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + + Because unwinding may only restore a subset of the registers, such as the non-volatile registers only, the context may not exactly match the register state at the time of the actual method call. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugMemoryBuffer Interface](icordebugmemorybuffer-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugvirtualunwinder-interface.md b/docs/framework/unmanaged-api/debugging/icordebugvirtualunwinder-interface.md index 4acccfd337e99..efc717058ba68 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugvirtualunwinder-interface.md +++ b/docs/framework/unmanaged-api/debugging/icordebugvirtualunwinder-interface.md @@ -6,32 +6,32 @@ ms.assetid: a09e9ccc-0b37-43e3-95c1-bc5fa7ee5f42 --- # ICorDebugVirtualUnwinder Interface -Provides methods to help in stack unwinding. - -## Methods - -|Method|Name| -|------------|----------| -|[GetContext Method](icordebugvirtualunwinder-getcontext-method.md)|Gets the current context of this unwinder.| -|[Next Method](icordebugvirtualunwinder-next-method.md)|Advances to the caller's context.| - -## Remarks - - The members of the `ICorDebugVirtualUnwinder` interface are implemented by the debugger to help in stack unwinding. - +Provides methods to help in stack unwinding. + +## Methods + +|Method|Name| +|------------|----------| +|[GetContext Method](icordebugvirtualunwinder-getcontext-method.md)|Gets the current context of this unwinder.| +|[Next Method](icordebugvirtualunwinder-next-method.md)|Advances to the caller's context.| + +## Remarks + + The members of the `ICorDebugVirtualUnwinder` interface are implemented by the debugger to help in stack unwinding. + > [!NOTE] -> This interface is available with .NET Native only. If you implement this interface for ICorDebug scenarios outside of .NET Native, the common language runtime will ignore this interface. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This interface is available with .NET Native only. If you implement this interface for ICorDebug scenarios outside of .NET Native, the common language runtime will ignore this interface. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icordebugvirtualunwinder-next-method.md b/docs/framework/unmanaged-api/debugging/icordebugvirtualunwinder-next-method.md index 8ec2d2a9aa864..2329860277573 100644 --- a/docs/framework/unmanaged-api/debugging/icordebugvirtualunwinder-next-method.md +++ b/docs/framework/unmanaged-api/debugging/icordebugvirtualunwinder-next-method.md @@ -6,41 +6,41 @@ ms.assetid: 790e0426-e5cd-49fd-a792-f8c8635d72fe --- # ICorDebugVirtualUnwinder::Next Method -Advances to the caller's context. - -## Syntax - -```cpp -HRESULT Next(); -``` - -## Parameters - - None. - -## Return Value - - `S_OK` if the unwind occurred successfully, or `CORDBG_S_AT_END_OF_STACK` if the unwind cannot be completed because there are no more frames. - - If a failing HRESULT is returned, ICorDebug APIs will return `CORDBG_E_DATA_TARGET_ERROR`. - -## Remarks - - The stack walker should ensure that it makes forward progress, so that eventually a call to `Next` will return a failing HRESULT or `CORDBG_S_AT_END_OF_STACK`. Returning `S_OK` indefinitely may cause an infinite loop. - +Advances to the caller's context. + +## Syntax + +```cpp +HRESULT Next(); +``` + +## Parameters + + None. + +## Return Value + + `S_OK` if the unwind occurred successfully, or `CORDBG_S_AT_END_OF_STACK` if the unwind cannot be completed because there are no more frames. + + If a failing HRESULT is returned, ICorDebug APIs will return `CORDBG_E_DATA_TARGET_ERROR`. + +## Remarks + + The stack walker should ensure that it makes forward progress, so that eventually a call to `Next` will return a failing HRESULT or `CORDBG_S_AT_END_OF_STACK`. Returning `S_OK` indefinitely may cause an infinite loop. + > [!NOTE] -> This method is available with .NET Native only. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] - +> This method is available with .NET Native only. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_46_native](../../../../includes/net-46-native-md.md)] + ## See also - [ICorDebugMemoryBuffer Interface](icordebugmemorybuffer-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icoreclrdebugtarget-enumprocesses-method.md b/docs/framework/unmanaged-api/debugging/icoreclrdebugtarget-enumprocesses-method.md index 23a96bdb84e54..aa3b80a290481 100644 --- a/docs/framework/unmanaged-api/debugging/icoreclrdebugtarget-enumprocesses-method.md +++ b/docs/framework/unmanaged-api/debugging/icoreclrdebugtarget-enumprocesses-method.md @@ -2,69 +2,69 @@ description: "Learn more about: ICoreClrDebugTarget::EnumProcesses Method" title: "ICoreClrDebugTarget::EnumProcesses Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICoreClrDebugTarget.EnumProcesses" -api_location: +api_location: - "mscordbi_macx86.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICoreClrDebugTarget::EnumProcesses" -helpviewer_keywords: +helpviewer_keywords: - "remote debugging API [Silverlight]" - "EnumProcesses method, ICorClrDebugTarget interface [Silverlight debugging]" - "ICorClrDebugTarget::EnumProcesses method [Silverlight debugging]" - "Silverlight, remote debugging" ms.assetid: e00fd477-4f49-43d3-bd0e-3094824b1136 -topic_type: +topic_type: - "apiref" --- # ICoreClrDebugTarget::EnumProcesses Method -Enumerates the processes that are running on a remote computer. - -## Syntax - -```cpp -HRESULT EnumProcesses ( +Enumerates the processes that are running on a remote computer. + +## Syntax + +```cpp +HRESULT EnumProcesses ( [out] DWORD* pcProcs, - [out] CoreClrDebugProcInfo** ppProcs -); -``` - -## Parameters - - `pcProcs` - [out] The number of processes returned in `ppProcs`. This value can be 0 (zero). - - `ppProcs` - [out] An array of [CoreClrDebugProcInfo](coreclrdebugprocinfo-structure.md) structures that represent the processes running on the remote computer. - -## Return Value - - S_OK - Success. - - E_OUTOFMEMORY - Unable to allocate enough memory for `ppProcs`. - - E_FAIL (or other E_ return codes) - Other failures. - -## Remarks - - To free the memory that was allocated by this method, call the [ICoreClrDebugTarget::FreeMemory](icoreclrdebugtarget-freememory-method.md) method. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CoreClrRemoteDebuggingInterfaces.h - - **Library:** mscordbi_macx86.dll - - **.NET Framework Versions:** 3.5 SP1 - + [out] CoreClrDebugProcInfo** ppProcs +); +``` + +## Parameters + + `pcProcs` + [out] The number of processes returned in `ppProcs`. This value can be 0 (zero). + + `ppProcs` + [out] An array of [CoreClrDebugProcInfo](coreclrdebugprocinfo-structure.md) structures that represent the processes running on the remote computer. + +## Return Value + + S_OK + Success. + + E_OUTOFMEMORY + Unable to allocate enough memory for `ppProcs`. + + E_FAIL (or other E_ return codes) + Other failures. + +## Remarks + + To free the memory that was allocated by this method, call the [ICoreClrDebugTarget::FreeMemory](icoreclrdebugtarget-freememory-method.md) method. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CoreClrRemoteDebuggingInterfaces.h + + **Library:** mscordbi_macx86.dll + + **.NET Framework Versions:** 3.5 SP1 + ## See also - [ICoreClrDebugTarget Interface](icoreclrdebugtarget-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icoreclrdebugtarget-enumruntimes-method.md b/docs/framework/unmanaged-api/debugging/icoreclrdebugtarget-enumruntimes-method.md index 08721efe1622b..76e8e2cb37601 100644 --- a/docs/framework/unmanaged-api/debugging/icoreclrdebugtarget-enumruntimes-method.md +++ b/docs/framework/unmanaged-api/debugging/icoreclrdebugtarget-enumruntimes-method.md @@ -2,76 +2,76 @@ description: "Learn more about: ICoreClrDebugTarget::EnumRuntimes Method" title: "ICoreClrDebugTarget::EnumRuntimes Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICoreClrDebugTarget.EnumRuntimes" -api_location: +api_location: - "mscordbi_macx86.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICoreClrDebugTarget::EnumRuntimes" -helpviewer_keywords: +helpviewer_keywords: - "remote debugging API [Silverlight]" - "ICorClrDebugTarget::EnumRuntimes method [Silverlight debugging]" - "EnumRuntimes method, ICoreClrDebugTarget interface [Silverlight debugging]" - "Silverlight, remote debugging" ms.assetid: 316df866-442d-40cc-b049-45e8adcb65d1 -topic_type: +topic_type: - "apiref" --- # ICoreClrDebugTarget::EnumRuntimes Method -Enumerates the common language runtimes (CLRs) in the specified process that is running on a remote computer. - -## Syntax - -```cpp -HRESULT EnumRuntimes ( - [in] DWORD dwInternalProcessID, - [out] DWORD* pcRuntimes, - [out] CoreClrDebugRuntimeInfo** ppRuntimes - ); -``` - -## Parameters - - `dwInternalProcessID` - [in] The internal process ID of the process for which you want to enumerate runtimes. This will be `m_dwInternalID` from the corresponding [CoreClrDebugProcInfo](coreclrdebugprocinfo-structure.md). - - `pcRuntimes` - [out] The number of runtimes returned in `ppRuntimes`. This value can be 0 (zero). - - `ppRuntimes` - [out] An array of [CoreClrDebugRuntimeInfo](coreclrdebugruntimeinfo-structure.md) structures that represent the runtimes loaded in the remote target process. - -## Return Value - - S_OK - Success. - - S_FALSE - `dwInternalProcessID` does not match any process that is running on the computer, probably because the process was terminated. `pcRuntimes` and `ppRuntimes` will be null. - - E_OUTOFMEMORY - Unable to allocate enough memory for `ppRuntimes`. - - E_FAIL (or other E_ return codes) - Other failures. - -## Remarks - - To free the memory that was allocated by this method, call the [ICoreClrDebugTarget::FreeMemory](icoreclrdebugtarget-freememory-method.md) method. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CoreClrRemoteDebuggingInterfaces.h - - **Library:** mscordbi_macx86.dll - - **.NET Framework Versions:** 3.5 SP1 - +Enumerates the common language runtimes (CLRs) in the specified process that is running on a remote computer. + +## Syntax + +```cpp +HRESULT EnumRuntimes ( + [in] DWORD dwInternalProcessID, + [out] DWORD* pcRuntimes, + [out] CoreClrDebugRuntimeInfo** ppRuntimes + ); +``` + +## Parameters + + `dwInternalProcessID` + [in] The internal process ID of the process for which you want to enumerate runtimes. This will be `m_dwInternalID` from the corresponding [CoreClrDebugProcInfo](coreclrdebugprocinfo-structure.md). + + `pcRuntimes` + [out] The number of runtimes returned in `ppRuntimes`. This value can be 0 (zero). + + `ppRuntimes` + [out] An array of [CoreClrDebugRuntimeInfo](coreclrdebugruntimeinfo-structure.md) structures that represent the runtimes loaded in the remote target process. + +## Return Value + + S_OK + Success. + + S_FALSE + `dwInternalProcessID` does not match any process that is running on the computer, probably because the process was terminated. `pcRuntimes` and `ppRuntimes` will be null. + + E_OUTOFMEMORY + Unable to allocate enough memory for `ppRuntimes`. + + E_FAIL (or other E_ return codes) + Other failures. + +## Remarks + + To free the memory that was allocated by this method, call the [ICoreClrDebugTarget::FreeMemory](icoreclrdebugtarget-freememory-method.md) method. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CoreClrRemoteDebuggingInterfaces.h + + **Library:** mscordbi_macx86.dll + + **.NET Framework Versions:** 3.5 SP1 + ## See also - [ICoreClrDebugTarget Interface](icoreclrdebugtarget-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icoreclrdebugtarget-interface.md b/docs/framework/unmanaged-api/debugging/icoreclrdebugtarget-interface.md index 3f088afdc1cfd..79e260b91683e 100644 --- a/docs/framework/unmanaged-api/debugging/icoreclrdebugtarget-interface.md +++ b/docs/framework/unmanaged-api/debugging/icoreclrdebugtarget-interface.md @@ -2,69 +2,69 @@ description: "Learn more about: ICoreClrDebugTarget Interface" title: "ICoreClrDebugTarget Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICoreClrDebugTarget" -api_location: +api_location: - "mscordbi_macx86.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICoreClrDebugTarget" -helpviewer_keywords: +helpviewer_keywords: - "remote debugging API [Silverlight]" - "ICorClrDebugTarget interface" - "Silverlight, remote debugging" ms.assetid: 7cfaee76-e284-4a66-a431-8e33f0f60038 -topic_type: +topic_type: - "apiref" --- # ICoreClrDebugTarget Interface -Provides methods that control reference counts, enumerate processes, and free the memory associated with a debugger that is attached to a remote Macintosh Silverlight target. - -## Syntax - -```cpp -class ICoreClrDebugTarget { - HRESULT EnumProcesses ( - [out] DWORD* pcProcs, - [out] CoreClrDebugProcInfo** ppProcs - ); - - HRESULT EnumRuntimes ( - [in] DWORD dwInternalProcessID, - [out] DWORD* pcRuntimes, - [out] CoreClrDebugRuntimeInfo** ppRuntimes - ); - - void FreeMemory ( - [in] void* pMemory - ); -}; -``` - -## Methods - -|Method|Description| -|------------|-----------------| -|[ICoreClrDebugTarget::EnumProcesses Method](icoreclrdebugtarget-enumprocesses-method.md)|Enumerates the processes that are running on a remote computer.| -|[ICoreClrDebugTarget::EnumRuntimes Method](icoreclrdebugtarget-enumruntimes-method.md)|Enumerates the common language runtimes (CLRs) in the specified process on a remote computer.| -|[ICoreClrDebugTarget::FreeMemory Method](icoreclrdebugtarget-freememory-method.md)|Frees the memory that is allocated by the enumeration methods in this class.| - -## Remarks - - Currently, this functionality is supported only for debugging a Silverlight-based application target that is running on a remote Macintosh computer. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CoreClrRemoteDebuggingInterfaces.h - - **Library:** mscordbi_macx86.dll - - **.NET Framework Versions:** 3.5 SP1 - +Provides methods that control reference counts, enumerate processes, and free the memory associated with a debugger that is attached to a remote Macintosh Silverlight target. + +## Syntax + +```cpp +class ICoreClrDebugTarget { + HRESULT EnumProcesses ( + [out] DWORD* pcProcs, + [out] CoreClrDebugProcInfo** ppProcs + ); + + HRESULT EnumRuntimes ( + [in] DWORD dwInternalProcessID, + [out] DWORD* pcRuntimes, + [out] CoreClrDebugRuntimeInfo** ppRuntimes + ); + + void FreeMemory ( + [in] void* pMemory + ); +}; +``` + +## Methods + +|Method|Description| +|------------|-----------------| +|[ICoreClrDebugTarget::EnumProcesses Method](icoreclrdebugtarget-enumprocesses-method.md)|Enumerates the processes that are running on a remote computer.| +|[ICoreClrDebugTarget::EnumRuntimes Method](icoreclrdebugtarget-enumruntimes-method.md)|Enumerates the common language runtimes (CLRs) in the specified process on a remote computer.| +|[ICoreClrDebugTarget::FreeMemory Method](icoreclrdebugtarget-freememory-method.md)|Frees the memory that is allocated by the enumeration methods in this class.| + +## Remarks + + Currently, this functionality is supported only for debugging a Silverlight-based application target that is running on a remote Macintosh computer. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CoreClrRemoteDebuggingInterfaces.h + + **Library:** mscordbi_macx86.dll + + **.NET Framework Versions:** 3.5 SP1 + ## See also - [ICorDebugRemoteTarget Interface](icordebugremotetarget-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icorpublish-enumprocesses-method.md b/docs/framework/unmanaged-api/debugging/icorpublish-enumprocesses-method.md index aa4cf7ebd6d55..692085ed6652f 100644 --- a/docs/framework/unmanaged-api/debugging/icorpublish-enumprocesses-method.md +++ b/docs/framework/unmanaged-api/debugging/icorpublish-enumprocesses-method.md @@ -2,58 +2,58 @@ description: "Learn more about: ICorPublish::EnumProcesses Method" title: "ICorPublish::EnumProcesses Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorPublish.EnumProcesses" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorPublish::EnumProcesses" -helpviewer_keywords: +helpviewer_keywords: - "ICorPublish::EnumProcesses method [.NET Framework debugging]" - "EnumProcesses method [.NET Framework debugging]" ms.assetid: 4ae765f0-93b2-4b6f-aea1-7b0cf44e04a7 -topic_type: +topic_type: - "apiref" --- # ICorPublish::EnumProcesses Method -Gets an enumerator for the managed processes running on this computer. - -## Syntax - -```cpp -HRESULT EnumProcesses ( - [in] COR_PUB_ENUMPROCESS Type, - [out] ICorPublishProcessEnum **ppIEnum -); -``` - -## Parameters - - `Type` - A value of the [COR_PUB_ENUMPROCESS](cor-pub-enumprocess-enumeration.md) enumeration that specifies the type of process to be retrieved. In the current version, only COR_PUB_MANAGEDONLY is valid. - - `ppIEnum` - A pointer to the address of an [ICorPublishProcessEnum](icorpublishprocessenum-interface.md) instance that is the enumerator of the processes. - -## Remarks - - The enumerator's collection of processes is based on a snapshot of the processes that are running when the `EnumProcesses` method is called. The enumerator will not include any processes that terminate before or start after `EnumProcesses` is called. - - The `EnumProcesses` method may be called more than once on this [ICorPublish](icorpublish-interface.md) instance to create a new up-to-date collection of processes. Existing collections will not be affected by subsequent calls of the `EnumProcesses` method. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorPub.idl, CorPub.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Gets an enumerator for the managed processes running on this computer. + +## Syntax + +```cpp +HRESULT EnumProcesses ( + [in] COR_PUB_ENUMPROCESS Type, + [out] ICorPublishProcessEnum **ppIEnum +); +``` + +## Parameters + + `Type` + A value of the [COR_PUB_ENUMPROCESS](cor-pub-enumprocess-enumeration.md) enumeration that specifies the type of process to be retrieved. In the current version, only COR_PUB_MANAGEDONLY is valid. + + `ppIEnum` + A pointer to the address of an [ICorPublishProcessEnum](icorpublishprocessenum-interface.md) instance that is the enumerator of the processes. + +## Remarks + + The enumerator's collection of processes is based on a snapshot of the processes that are running when the `EnumProcesses` method is called. The enumerator will not include any processes that terminate before or start after `EnumProcesses` is called. + + The `EnumProcesses` method may be called more than once on this [ICorPublish](icorpublish-interface.md) instance to create a new up-to-date collection of processes. Existing collections will not be affected by subsequent calls of the `EnumProcesses` method. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorPub.idl, CorPub.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [ICorPublish Interface](icorpublish-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icorpublish-getprocess-method.md b/docs/framework/unmanaged-api/debugging/icorpublish-getprocess-method.md index f6a08925c7681..fa2447b806318 100644 --- a/docs/framework/unmanaged-api/debugging/icorpublish-getprocess-method.md +++ b/docs/framework/unmanaged-api/debugging/icorpublish-getprocess-method.md @@ -2,56 +2,56 @@ description: "Learn more about: ICorPublish::GetProcess Method" title: "ICorPublish::GetProcess Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorPublish.GetProcess" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorPublish::GetProcess" -helpviewer_keywords: +helpviewer_keywords: - "ICorPublish::GetProcess method [.NET Framework debugging]" - "GetProcess method, ICorPublish interface [.NET Framework debugging]" ms.assetid: c5143805-2eb7-45b8-85ed-c8fb34df1084 -topic_type: +topic_type: - "apiref" --- # ICorPublish::GetProcess Method -Gets an [ICorPublishProcess](icorpublishprocess-interface.md) instance that represents the process with the specified identifier. - -## Syntax - -```cpp -HRESULT GetProcess( +Gets an [ICorPublishProcess](icorpublishprocess-interface.md) instance that represents the process with the specified identifier. + +## Syntax + +```cpp +HRESULT GetProcess( [in] unsigned pid, - [out] ICorPublishProcess **ppProcess -); -``` - -## Parameters - - `pid` - [in] The identifier of the process. - - `ppProcess` - [out] A pointer to the address of an `ICorPublishProcess` instance that represents the process. - -## Remarks - - `GetProcess` fails if the process doesn't exist, or isn't a managed process that can be debugged by the current user. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorPub.idl, CorPub.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - + [out] ICorPublishProcess **ppProcess +); +``` + +## Parameters + + `pid` + [in] The identifier of the process. + + `ppProcess` + [out] A pointer to the address of an `ICorPublishProcess` instance that represents the process. + +## Remarks + + `GetProcess` fails if the process doesn't exist, or isn't a managed process that can be debugged by the current user. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorPub.idl, CorPub.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [ICorPublish Interface](icorpublish-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icorpublishappdomain-getid-method.md b/docs/framework/unmanaged-api/debugging/icorpublishappdomain-getid-method.md index 3a492e96b08b3..80afa845bde36 100644 --- a/docs/framework/unmanaged-api/debugging/icorpublishappdomain-getid-method.md +++ b/docs/framework/unmanaged-api/debugging/icorpublishappdomain-getid-method.md @@ -2,52 +2,52 @@ description: "Learn more about: ICorPublishAppDomain::GetID Method" title: "ICorPublishAppDomain::GetID Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorPublishAppDomain.GetID" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorPublishAppDomain::GetID" -helpviewer_keywords: +helpviewer_keywords: - "GetID method, ICorPublishAppDomain interface [.NET Framework debugging]" - "ICorPublishAppDomain::GetID method [.NET Framework debugging]" ms.assetid: 229437e3-1465-4bd8-8846-9804b2488133 -topic_type: +topic_type: - "apiref" --- # ICorPublishAppDomain::GetID Method -Gets the unique identifier for this [ICorPublishAppDomain](icorpublishappdomain-interface.md). - -## Syntax - -```cpp -HRESULT GetID ( - [out] ULONG32 *puId -); -``` - -## Parameters - - `puId` - [out] A pointer to the identifier of the application domain. - -## Remarks - - The identifier is unique only in the scope of the containing process. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorPub.idl, CorPub.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Gets the unique identifier for this [ICorPublishAppDomain](icorpublishappdomain-interface.md). + +## Syntax + +```cpp +HRESULT GetID ( + [out] ULONG32 *puId +); +``` + +## Parameters + + `puId` + [out] A pointer to the identifier of the application domain. + +## Remarks + + The identifier is unique only in the scope of the containing process. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorPub.idl, CorPub.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [ICorPublishAppDomain Interface](icorpublishappdomain-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icorpublishappdomain-getname-method.md b/docs/framework/unmanaged-api/debugging/icorpublishappdomain-getname-method.md index 153f6b3c0f0b4..ec19af9798985 100644 --- a/docs/framework/unmanaged-api/debugging/icorpublishappdomain-getname-method.md +++ b/docs/framework/unmanaged-api/debugging/icorpublishappdomain-getname-method.md @@ -2,63 +2,63 @@ description: "Learn more about: ICorPublishAppDomain::GetName Method" title: "ICorPublishAppDomain::GetName Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorPublishAppDomain.GetName" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorPublishAppDomain::GetName" -helpviewer_keywords: +helpviewer_keywords: - "GetName method, ICorPublishAppDomain interface [.NET Framework debugging]" - "ICorPublishAppDomain::GetName method [.NET Framework debugging]" ms.assetid: 6ef8ac9b-9803-4b65-8b13-25f3e0b1bc6b -topic_type: +topic_type: - "apiref" --- # ICorPublishAppDomain::GetName Method -Gets the name of the application domain that is represented by this [ICorPublishAppDomain](icorpublishappdomain-interface.md). - -## Syntax - -```cpp -HRESULT GetName ( +Gets the name of the application domain that is represented by this [ICorPublishAppDomain](icorpublishappdomain-interface.md). + +## Syntax + +```cpp +HRESULT GetName ( [in] ULONG32 cchName, - [out] ULONG32 *pcchName, + [out] ULONG32 *pcchName, [out, size_is(cchName), length_is(*pcchName)] - WCHAR *szName -); -``` - -## Parameters - - `cchName` - [in] The size of the `szName` array. - - `pcchName` - [out] A pointer to the number of wide characters, including the null character, returned in the `szName` array. - - `szName` - [out] An array in which to store the name. - -## Remarks - - If `szName` is non-null, the `GetName` method copies up to `cchName` characters (including the null terminator) into `szName`. If a non-null is returned in `pcchName`, the actual number of characters in the name (including the null terminator) is stored in the `szName` array. - - The `GetName` method returns an S_OK HRESULT regardless of how many characters were copied. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorPub.idl, CorPub.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - + WCHAR *szName +); +``` + +## Parameters + + `cchName` + [in] The size of the `szName` array. + + `pcchName` + [out] A pointer to the number of wide characters, including the null character, returned in the `szName` array. + + `szName` + [out] An array in which to store the name. + +## Remarks + + If `szName` is non-null, the `GetName` method copies up to `cchName` characters (including the null terminator) into `szName`. If a non-null is returned in `pcchName`, the actual number of characters in the name (including the null terminator) is stored in the `szName` array. + + The `GetName` method returns an S_OK HRESULT regardless of how many characters were copied. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorPub.idl, CorPub.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [ICorPublishAppDomain Interface](icorpublishappdomain-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icorpublishappdomainenum-interface.md b/docs/framework/unmanaged-api/debugging/icorpublishappdomainenum-interface.md index c692f11c43d11..42776553d1884 100644 --- a/docs/framework/unmanaged-api/debugging/icorpublishappdomainenum-interface.md +++ b/docs/framework/unmanaged-api/debugging/icorpublishappdomainenum-interface.md @@ -2,44 +2,44 @@ description: "Learn more about: ICorPublishAppDomainEnum Interface" title: "ICorPublishAppDomainEnum Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorPublishAppDomainEnum" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorPublishAppDomainEnum" -helpviewer_keywords: +helpviewer_keywords: - "ICorPublishAppDomainEnum interface [.NET Framework debugging]" ms.assetid: bb798c56-042e-475d-a245-b6fac36d0c07 -topic_type: +topic_type: - "apiref" --- # ICorPublishAppDomainEnum Interface -A subclass of the [ICorPublishEnum](icorpublishenum-interface.md) interface that provides methods to traverse a collection of [ICorPublishAppDomain](icorpublishappdomain-interface.md) objects that currently exist within a process. - -## Methods - -|Method|Description| -|------------|-----------------| -|[Next Method](icorpublishappdomainenum-next-method.md)|Gets the specified number of `ICorPublishAppDomain` instances from the collection, starting at the current position.| - -## Remarks - - The `ICorPublishAppDomainEnum` interface implements the methods of the abstract interface, [ICorPublishEnum](icorpublishenum-interface.md). - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorPub.idl, CorPub.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +A subclass of the [ICorPublishEnum](icorpublishenum-interface.md) interface that provides methods to traverse a collection of [ICorPublishAppDomain](icorpublishappdomain-interface.md) objects that currently exist within a process. + +## Methods + +|Method|Description| +|------------|-----------------| +|[Next Method](icorpublishappdomainenum-next-method.md)|Gets the specified number of `ICorPublishAppDomain` instances from the collection, starting at the current position.| + +## Remarks + + The `ICorPublishAppDomainEnum` interface implements the methods of the abstract interface, [ICorPublishEnum](icorpublishenum-interface.md). + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorPub.idl, CorPub.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/icorpublishenum-interface.md b/docs/framework/unmanaged-api/debugging/icorpublishenum-interface.md index 357cef85819ac..0e3ad1c554b34 100644 --- a/docs/framework/unmanaged-api/debugging/icorpublishenum-interface.md +++ b/docs/framework/unmanaged-api/debugging/icorpublishenum-interface.md @@ -2,51 +2,51 @@ description: "Learn more about: ICorPublishEnum Interface" title: "ICorPublishEnum Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorPublishEnum" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorPublishEnum" -helpviewer_keywords: +helpviewer_keywords: - "ICorPublishEnum interface [.NET Framework debugging]" ms.assetid: 76a136b5-e444-417a-8ade-f1596d597dc7 -topic_type: +topic_type: - "apiref" --- # ICorPublishEnum Interface -Serves as the abstract base interface for the enumerators that are used in the publishing of information about processes and application domains. - -## Methods - -|Method|Description| -|------------|-----------------| -|[Clone Method](icorpublishenum-clone-method.md)|Creates a copy of this `ICorPublishEnum` object.| -|[GetCount Method](icorpublishenum-getcount-method.md)|Gets the number of items in the enumeration.| -|[Reset Method](icorpublishenum-reset-method.md)|Moves the cursor of to the beginning of the enumeration.| -|[Skip Method](icorpublishenum-skip-method.md)|Moves the cursor forward in the enumeration by the specified number of items.| - -## Remarks - - The following enumerators derive from `ICorPublishEnum`: - -- [ICorPublishAppDomainEnum](icorpublishappdomainenum-interface.md) - -- [ICorPublishProcessEnum](icorpublishprocessenum-interface.md) - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorPub.idl, CorPub.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Serves as the abstract base interface for the enumerators that are used in the publishing of information about processes and application domains. + +## Methods + +|Method|Description| +|------------|-----------------| +|[Clone Method](icorpublishenum-clone-method.md)|Creates a copy of this `ICorPublishEnum` object.| +|[GetCount Method](icorpublishenum-getcount-method.md)|Gets the number of items in the enumeration.| +|[Reset Method](icorpublishenum-reset-method.md)|Moves the cursor of to the beginning of the enumeration.| +|[Skip Method](icorpublishenum-skip-method.md)|Moves the cursor forward in the enumeration by the specified number of items.| + +## Remarks + + The following enumerators derive from `ICorPublishEnum`: + +- [ICorPublishAppDomainEnum](icorpublishappdomainenum-interface.md) + +- [ICorPublishProcessEnum](icorpublishprocessenum-interface.md) + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorPub.idl, CorPub.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [CorpubPublish Coclass](corpubpublish-coclass.md) diff --git a/docs/framework/unmanaged-api/debugging/icorpublishprocess-enumappdomains-method.md b/docs/framework/unmanaged-api/debugging/icorpublishprocess-enumappdomains-method.md index b0221d77e3bbc..f113613c39941 100644 --- a/docs/framework/unmanaged-api/debugging/icorpublishprocess-enumappdomains-method.md +++ b/docs/framework/unmanaged-api/debugging/icorpublishprocess-enumappdomains-method.md @@ -2,54 +2,54 @@ description: "Learn more about: ICorPublishProcess::EnumAppDomains Method" title: "ICorPublishProcess::EnumAppDomains Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorPublishProcess.EnumAppDomains" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorPublishProcess::EnumAppDomains" -helpviewer_keywords: +helpviewer_keywords: - "EnumAppDomains method [.NET Framework debugging]" - "ICorPublishProcess::EnumAppDomains method [.NET Framework debugging]" ms.assetid: 7da621fc-e7d0-4c00-9439-5c93619d7414 -topic_type: +topic_type: - "apiref" --- # ICorPublishProcess::EnumAppDomains Method -Gets an enumerator for the application domains in the process that is referenced by this [ICorPublishProcess](icorpublishprocess-interface.md). - -## Syntax - -```cpp -HRESULT EnumAppDomains ( - [out] ICorPublishAppDomainEnum **ppEnum -); -``` - -## Parameters - - `ppEnum` - [out] A pointer to the address of an [ICorPublishAppDomainEnum](icorpublishappdomainenum-interface.md) instance that allows iteration through the collection of application domains in this process. - -## Remarks - - The list of application domains is based on a snapshot of the application domains that exist when the `EnumAppDomains` method is called. This method may be called more than once to create a new up-to-date list. Existing lists will not be affected by subsequent calls of this method. - - If the process has been terminated, `EnumAppDomains` will fail with an HRESULT value of CORDBG_E_PROCESS_TERMINATED. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorPub.idl, CorPub.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Gets an enumerator for the application domains in the process that is referenced by this [ICorPublishProcess](icorpublishprocess-interface.md). + +## Syntax + +```cpp +HRESULT EnumAppDomains ( + [out] ICorPublishAppDomainEnum **ppEnum +); +``` + +## Parameters + + `ppEnum` + [out] A pointer to the address of an [ICorPublishAppDomainEnum](icorpublishappdomainenum-interface.md) instance that allows iteration through the collection of application domains in this process. + +## Remarks + + The list of application domains is based on a snapshot of the application domains that exist when the `EnumAppDomains` method is called. This method may be called more than once to create a new up-to-date list. Existing lists will not be affected by subsequent calls of this method. + + If the process has been terminated, `EnumAppDomains` will fail with an HRESULT value of CORDBG_E_PROCESS_TERMINATED. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorPub.idl, CorPub.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [ICorPublishProcess Interface](icorpublishprocess-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icorpublishprocess-ismanaged-method.md b/docs/framework/unmanaged-api/debugging/icorpublishprocess-ismanaged-method.md index c7be301fc300d..0e9529c83d6ae 100644 --- a/docs/framework/unmanaged-api/debugging/icorpublishprocess-ismanaged-method.md +++ b/docs/framework/unmanaged-api/debugging/icorpublishprocess-ismanaged-method.md @@ -2,52 +2,52 @@ description: "Learn more about: ICorPublishProcess::IsManaged Method" title: "ICorPublishProcess::IsManaged Method" ms.date: "03/30/2017" -api_name: +api_name: - "ICorPublishProcess.IsManaged" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorPublishProcess::IsManaged" -helpviewer_keywords: +helpviewer_keywords: - "IsManaged method, ICorPublishProcess interface [.NET Framework debugging]" - "ICorPublishProcess::IsManaged method [.NET Framework debugging]" ms.assetid: 06b1f7cc-acdf-47a6-9d53-d9dec2424152 -topic_type: +topic_type: - "apiref" --- # ICorPublishProcess::IsManaged Method -Gets a value that indicates whether the process referenced by this [ICorPublishProcess](icorpublishprocess-interface.md) is known to have managed code. - -## Syntax - -```cpp -HRESULT IsManaged ( - [out] BOOL *pbManaged -); -``` - -## Parameters - - `pbManaged` - [out] A pointer to a Boolean value that indicates whether the process has managed code. The value is `true` if the process has managed code; otherwise, `false`. - -## Remarks - - Since the current version of `ICorPublishProcess` allows access only to processes that have managed code, `IsManaged` always returns `true`. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorPub.idl, CorPub.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +Gets a value that indicates whether the process referenced by this [ICorPublishProcess](icorpublishprocess-interface.md) is known to have managed code. + +## Syntax + +```cpp +HRESULT IsManaged ( + [out] BOOL *pbManaged +); +``` + +## Parameters + + `pbManaged` + [out] A pointer to a Boolean value that indicates whether the process has managed code. The value is `true` if the process has managed code; otherwise, `false`. + +## Remarks + + Since the current version of `ICorPublishProcess` allows access only to processes that have managed code, `IsManaged` always returns `true`. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorPub.idl, CorPub.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [ICorPublishProcess Interface](icorpublishprocess-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/icorpublishprocessenum-interface.md b/docs/framework/unmanaged-api/debugging/icorpublishprocessenum-interface.md index e378784a7726d..ebeca9db9933e 100644 --- a/docs/framework/unmanaged-api/debugging/icorpublishprocessenum-interface.md +++ b/docs/framework/unmanaged-api/debugging/icorpublishprocessenum-interface.md @@ -2,46 +2,46 @@ description: "Learn more about: ICorPublishProcessEnum Interface" title: "ICorPublishProcessEnum Interface" ms.date: "03/30/2017" -api_name: +api_name: - "ICorPublishProcessEnum" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "ICorPublishProcessEnum" -helpviewer_keywords: +helpviewer_keywords: - "ICorPublishProcessEnum interface [.NET Framework debugging]" ms.assetid: aac8fcf9-ac09-437c-bd5c-2fda14ae1007 -topic_type: +topic_type: - "apiref" --- # ICorPublishProcessEnum Interface -A subclass of the [ICorPublishEnum](icorpublishenum-interface.md) interface that provides methods to traverse a collection of [ICorPublishProcess](icorpublishprocess-interface.md) objects. - -## Methods - -|Method|Description| -|------------|-----------------| -|[Next Method](icorpublishprocessenum-next-method.md)|Gets the specified number of `ICorPublishProcess` instances from the collection, starting at the current position.| - -## Remarks - - The `ICorPublishProcessEnum` interface implements the methods of the abstract interface, [ICorPublishEnum](icorpublishenum-interface.md). - - An `ICorPublishProcessEnum` instance is created by the [ICorPublish::EnumProcesses](icorpublish-enumprocesses-method.md) method. The traversal of the collection of `ICorPublishProcess` objects is based on the filter criteria given at the time the `ICorPublishProcessEnum` instance was created. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorPub.idl, CorPub.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - +A subclass of the [ICorPublishEnum](icorpublishenum-interface.md) interface that provides methods to traverse a collection of [ICorPublishProcess](icorpublishprocess-interface.md) objects. + +## Methods + +|Method|Description| +|------------|-----------------| +|[Next Method](icorpublishprocessenum-next-method.md)|Gets the specified number of `ICorPublishProcess` instances from the collection, starting at the current position.| + +## Remarks + + The `ICorPublishProcessEnum` interface implements the methods of the abstract interface, [ICorPublishEnum](icorpublishenum-interface.md). + + An `ICorPublishProcessEnum` instance is created by the [ICorPublish::EnumProcesses](icorpublish-enumprocesses-method.md) method. The traversal of the collection of `ICorPublishProcess` objects is based on the filter criteria given at the time the `ICorPublishProcessEnum` instance was created. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorPub.idl, CorPub.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] + ## See also - [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/ilcodekind-enumeration.md b/docs/framework/unmanaged-api/debugging/ilcodekind-enumeration.md index 1a53153f25dfc..89636f4db0f8c 100644 --- a/docs/framework/unmanaged-api/debugging/ilcodekind-enumeration.md +++ b/docs/framework/unmanaged-api/debugging/ilcodekind-enumeration.md @@ -2,54 +2,54 @@ description: "Learn more about: ILCodeKind Enumeration" title: "ILCodeKind Enumeration" ms.date: "03/30/2017" -dev_langs: +dev_langs: - "cpp" -api_name: +api_name: - "ILCodeKind" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" ms.assetid: b91765e4-82db-46f9-a6dc-6b80610276af -topic_type: +topic_type: - "apiref" --- # ILCodeKind Enumeration -[Supported in the .NET Framework 4.5.2 and later versions] - - Provides values that specify whether the debugger is able to access local variables or code added in profiler ReJIT instrumentation. - -## Syntax - +[Supported in the .NET Framework 4.5.2 and later versions] + + Provides values that specify whether the debugger is able to access local variables or code added in profiler ReJIT instrumentation. + +## Syntax + ```cpp -typedef enum ILCodeKind { - ILCODE_ORIGINAL_IL = 0x1, - ILCODE_REJIT_IL = 0x2, -} ILCodeKind; -``` - -## Members - -|Member name|Description| -|-----------------|-----------------| -|`ILCODE_ORIGINAL_IL`|The debugger does not have access to information from ReJIT instrumentation.| -|`ILCODE_REJIT_IL`|The debugger has access to information from ReJIT instrumentation.| - -## Remarks - - A member of the `ILCodeKind` enumeration can be passed to the [EnumerateLocalVariablesEx](icordebugilframe4-enumeratelocalvariablesex-method.md) and [GetLocalVariableEx](icordebugilframe4-getlocalvariableex-method.md) methods to determine whether the debugger can access variables added in profiler ReJIT instrumentation, and to the [GetCodeEx](icordebugilframe4-getcodeex-method.md) method to determine whether the debugger can access instrumented IL. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v452plus](../../../../includes/net-current-v452plus-md.md)] - +typedef enum ILCodeKind { + ILCODE_ORIGINAL_IL = 0x1, + ILCODE_REJIT_IL = 0x2, +} ILCodeKind; +``` + +## Members + +|Member name|Description| +|-----------------|-----------------| +|`ILCODE_ORIGINAL_IL`|The debugger does not have access to information from ReJIT instrumentation.| +|`ILCODE_REJIT_IL`|The debugger has access to information from ReJIT instrumentation.| + +## Remarks + + A member of the `ILCodeKind` enumeration can be passed to the [EnumerateLocalVariablesEx](icordebugilframe4-enumeratelocalvariablesex-method.md) and [GetLocalVariableEx](icordebugilframe4-getlocalvariableex-method.md) methods to determine whether the debugger can access variables added in profiler ReJIT instrumentation, and to the [GetCodeEx](icordebugilframe4-getcodeex-method.md) method to determine whether the debugger can access instrumented IL. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v452plus](../../../../includes/net-current-v452plus-md.md)] + ## See also - [Debugging Enumerations](debugging-enumerations.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataappdomain-interface.md b/docs/framework/unmanaged-api/debugging/ixclrdataappdomain-interface.md new file mode 100644 index 0000000000000..8eaf38ce2c565 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataappdomain-interface.md @@ -0,0 +1,44 @@ +--- +description: "Learn more about: IXCLRDataAppDomain Interface" +title: "IXCLRDataAppDomain Interface" +ms.date: "07/03/2024" +api.name: + - "IXCLRDataAppDomain Interface" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataAppDomain Interface" +helpviewer.keywords: + - "IXCLRDataAppDomain Interface [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataAppDomain Interface + +A placeholder used to pass AppDomain information to various other IXCLRData* methods. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Methods + +None + +## Remarks + +This interface lives inside the runtime and is not exposed through any headers or library files. However, it's a COM interface that derives from `IUnknown` with GUID `7CA04601-C702-4670-A63C-FA44F7DA7BD5` that can be obtained through the usual COM mechanisms. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification-interface.md b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification-interface.md new file mode 100644 index 0000000000000..cd0a0a07e4e01 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification-interface.md @@ -0,0 +1,54 @@ +--- +description: "Learn more about: IXCLRDataExceptionNotification Interface" +title: "IXCLRDataExceptionNotification Interface" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataExceptionNotification Interface" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataExceptionNotification Interface" +helpviewer.keywords: + - "IXCLRDataExceptionNotification Interface [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataExceptionNotification Interface + +Caller provided interface which derives from IUnknown and includes callback methods for various CLR notifications which occur via system exceptions. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Methods + +| Method | Description | +|--------|-------------| +| [OnCodeGenerated](ixclrdataexceptionnotification-oncodegenerated-method.md) | Callback made if the exception represents the generation of code for a particular method instance. | +| [OnCodeDiscarded](ixclrdataexceptionnotification-oncodediscarded-method.md) | Callback made if the exception represents discarding of code for a particular method instance. | +| [OnProcessExecution](ixclrdataexceptionnotification-onprocessexecution-method.md) | Callback made if the exception represents the process reaching a desired execution state. | +| [OnTaskExecution](ixclrdataexceptionnotification-ontaskexecution-method.md) | Callback made if the exception represents a task reaching a desired execution state. | +| [OnModuleLoaded](ixclrdataexceptionnotification-onmoduleloaded-method.md) | Callback made if the exception represents a module being loaded. | +| [OnModuleUnloaded](ixclrdataexceptionnotification-onmoduleunloaded-method.md) | Callback made if the exception represents a module being unloaded. | +| [OnTypeLoaded](ixclrdataexceptionnotification-ontypeloaded-method.md) | Callback made if the exception represents a particular type instance being loaded. | +| [OnTypeUnloaded](ixclrdataexceptionnotification-ontypeunloaded-method.md) | Callback made if the exception represents a particular type instance being unloaded. | + +## Remarks + +This interface is implemented by users of the `IXCLRDataProcess::TranslateExceptionRecordToNotification` method. It is not exposed through any headers or library files. However, it's a COM interface that derives from `IUnknown` with GUID `2D95A079-42A1-4837-818F-0B97D7048E0E` and can be implemented through the usual COM mechanisms. The list of methods above is the complete list of non IUnknown methods on this interface and are in vtable order. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [Debugging Interfaces](debugging-interfaces.md) +- [IXCLRDataProcess::TranslateExceptionRecordToNotification Method](ixclrdataprocess-translateexceptionrecordtonotification-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification-oncodediscarded-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification-oncodediscarded-method.md new file mode 100644 index 0000000000000..214e485057683 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification-oncodediscarded-method.md @@ -0,0 +1,54 @@ +--- +description: "Learn more about: IXCLRDataExceptionNotification::OnCodeDiscarded Method" +title: "IXCLRDataExceptionNotification::OnCodeDiscarded Method" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataExceptionNotification::OnCodeDiscarded Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataExceptionNotification::OnCodeDiscarded Method" +helpviewer.keywords: + - "IXCLRDataExceptionNotification::OnCodeDiscarded Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataExceptionNotification::OnCodeDiscarded Method + +Client implemented callback which is made during a call to `IXCLRDataProcess::TranslateExceptionRecordToNotification` when a given exception represents discarding of code for a particular method instance. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT OnCodeDiscarded( + [in] IXCLRDataMethodInstance *method +); +``` + +## Parameters + +`method`\ +[in] The method instance for which code was discarded + +## Remarks + +The provided method is part of the `IXCLRDataExceptionNotification` interface and corresponds to the 5th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataProcess::TranslateExceptionRecordToNotification Method](ixclrdataprocess-translateexceptionrecordtonotification-method.md) +- [IXCLRDataMethodInstance Interface](ixclrdatamethodinstance-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification-oncodegenerated-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification-oncodegenerated-method.md new file mode 100644 index 0000000000000..3225855458e9d --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification-oncodegenerated-method.md @@ -0,0 +1,54 @@ +--- +description: "Learn more about: IXCLRDataExceptionNotification::OnCodeGenerated Method" +title: "IXCLRDataExceptionNotification::OnCodeGenerated Method" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataExceptionNotification::OnCodeGenerated Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataExceptionNotification::OnCodeGenerated Method" +helpviewer.keywords: + - "IXCLRDataExceptionNotification::OnCodeGenerated Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataExceptionNotification::OnCodeGenerated Method + +Client implemented callback which is made during a call to `IXCLRDataProcess::TranslateExceptionRecordToNotification` when a given exception represents the generation of code for a particular method instance. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT OnCodeGenerated( + [in] IXCLRDataMethodInstance *method +); +``` + +## Parameters + +`method`\ +[in] The method instance for which code was generated + +## Remarks + +The provided method is part of the `IXCLRDataExceptionNotification` interface and corresponds to the 4th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataProcess::TranslateExceptionRecordToNotification Method](ixclrdataprocess-translateexceptionrecordtonotification-method.md) +- [IXCLRDataMethodInstance Interface](ixclrdatamethodinstance-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification-onmoduleloaded-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification-onmoduleloaded-method.md new file mode 100644 index 0000000000000..a44a0509f4d0b --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification-onmoduleloaded-method.md @@ -0,0 +1,54 @@ +--- +description: "Learn more about: IXCLRDataExceptionNotification::OnModuleLoaded Method" +title: "IXCLRDataExceptionNotification::OnModuleLoaded Method" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataExceptionNotification::OnModuleLoaded Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataExceptionNotification::OnModuleLoaded Method" +helpviewer.keywords: + - "IXCLRDataExceptionNotification::OnModuleLoaded Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataExceptionNotification::OnModuleLoaded Method + +Client implemented callback which is made during a call to `IXCLRDataProcess::TranslateExceptionRecordToNotification` when a given exception represents the loading of a CLR module. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT OnModuleLoaded( + [in] IXCLRDataModule *mod +); +``` + +## Parameters + +`mod`\ +[in] The module which was loaded. + +## Remarks + +The provided method is part of the `IXCLRDataExceptionNotification` interface and corresponds to the 8th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataProcess::TranslateExceptionRecordToNotification Method](ixclrdataprocess-translateexceptionrecordtonotification-method.md) +- [IXCLRDataModule Interface](ixclrdatamodule-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification-onmoduleunloaded-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification-onmoduleunloaded-method.md new file mode 100644 index 0000000000000..0502dd4fb3f6a --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification-onmoduleunloaded-method.md @@ -0,0 +1,54 @@ +--- +description: "Learn more about: IXCLRDataExceptionNotification::OnModuleUnloaded Method" +title: "IXCLRDataExceptionNotification::OnModuleUnloaded Method" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataExceptionNotification::OnModuleUnloaded Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataExceptionNotification::OnModuleUnloaded Method" +helpviewer.keywords: + - "IXCLRDataExceptionNotification::OnModuleUnloaded Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataExceptionNotification::OnModuleUnloaded Method + +Client implemented callback which is made during a call to `IXCLRDataProcess::TranslateExceptionRecordToNotification` when a given exception represents the unloading of a CLR module. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT OnModuleUnloaded( + [in] IXCLRDataModule *mod +); +``` + +## Parameters + +`mod`\ +[in] The module which was unloaded. + +## Remarks + +The provided method is part of the `IXCLRDataExceptionNotification` interface and corresponds to the 9th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataProcess::TranslateExceptionRecordToNotification Method](ixclrdataprocess-translateexceptionrecordtonotification-method.md) +- [IXCLRDataModule Interface](ixclrdatamodule-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification-onprocessexecution-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification-onprocessexecution-method.md new file mode 100644 index 0000000000000..177e0c2f9e48e --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification-onprocessexecution-method.md @@ -0,0 +1,53 @@ +--- +description: "Learn more about: IXCLRDataExceptionNotification::OnProcessExecution Method" +title: "IXCLRDataExceptionNotification::OnProcessExecution Method" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataExceptionNotification::OnProcessExecution Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataExceptionNotification::OnProcessExecution Method" +helpviewer.keywords: + - "IXCLRDataExceptionNotification::OnProcessExecution Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataExceptionNotification::OnProcessExecution Method + +Client implemented callback which is made during a call to `IXCLRDataProcess::TranslateExceptionRecordToNotification` when a given exception represents the process reaching a desired execution state. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT OnProcessExecution( + [in] ULONG32 state +); +``` + +## Parameters + +`state`\ +[in] The execution state of the process + +## Remarks + +The provided method is part of the `IXCLRDataExceptionNotification` interface and corresponds to the 6th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataProcess::TranslateExceptionRecordToNotification Method](ixclrdataprocess-translateexceptionrecordtonotification-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification-ontaskexecution-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification-ontaskexecution-method.md new file mode 100644 index 0000000000000..3bfc56c322a35 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification-ontaskexecution-method.md @@ -0,0 +1,58 @@ +--- +description: "Learn more about: IXCLRDataExceptionNotification::OnTaskExecution Method" +title: "IXCLRDataExceptionNotification::OnTaskExecution Method" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataExceptionNotification::OnTaskExecution Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataExceptionNotification::OnTaskExecution Method" +helpviewer.keywords: + - "IXCLRDataExceptionNotification::OnTaskExecution Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataExceptionNotification::OnTaskExecution Method + +Client implemented callback which is made during a call to `IXCLRDataProcess::TranslateExceptionRecordToNotification` when a given exception represents a managed task reaching a desired execution state. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT OnTaskExecution( + [in] IXCLRDataTask *task, + [in] ULONG32 state +); +``` + +## Parameters + +`task`\ +[in] The managed task which has reached a desired execution state + +`state`\ +[in] The execution state of the task + +## Remarks + +The provided method is part of the `IXCLRDataExceptionNotification` interface and corresponds to the 7th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataProcess::TranslateExceptionRecordToNotification Method](ixclrdataprocess-translateexceptionrecordtonotification-method.md) +- [IXCLRDataTask Interface](ixclrdatatask-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification-ontypeloaded-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification-ontypeloaded-method.md new file mode 100644 index 0000000000000..4a3a610c66dee --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification-ontypeloaded-method.md @@ -0,0 +1,54 @@ +--- +description: "Learn more about: IXCLRDataExceptionNotification::OnTypeLoaded Method" +title: "IXCLRDataExceptionNotification::OnTypeLoaded Method" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataExceptionNotification::OnTypeLoaded Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataExceptionNotification::OnTypeLoaded Method" +helpviewer.keywords: + - "IXCLRDataExceptionNotification::OnTypeLoaded Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataExceptionNotification::OnTypeLoaded Method + +Client implemented callback which is made during a call to `IXCLRDataProcess::TranslateExceptionRecordToNotification` when a given exception represents the loading of a type instance. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT OnTypeLoaded( + [in] IXCLRDataTypeInstance *typeInst +); +``` + +## Parameters + +`typeInst`\ +[in] The type instance which was loaded. + +## Remarks + +The provided method is part of the `IXCLRDataExceptionNotification` interface and corresponds to the 10th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataProcess::TranslateExceptionRecordToNotification Method](ixclrdataprocess-translateexceptionrecordtonotification-method.md) +- [IXCLRDataTypeInstance Interface](ixclrdatatypeinstance-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification-ontypeunloaded-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification-ontypeunloaded-method.md new file mode 100644 index 0000000000000..342ee6b78a2b0 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification-ontypeunloaded-method.md @@ -0,0 +1,54 @@ +--- +description: "Learn more about: IXCLRDataExceptionNotification::OnTypeUnloaded Method" +title: "IXCLRDataExceptionNotification::OnTypeUnloaded Method" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataExceptionNotification::OnTypeUnloaded Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataExceptionNotification::OnTypeUnloaded Method" +helpviewer.keywords: + - "IXCLRDataExceptionNotification::OnTypeUnloaded Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataExceptionNotification::OnTypeUnloaded Method + +Client implemented callback which is made during a call to `IXCLRDataProcess::TranslateExceptionRecordToNotification` when a given exception represents the unloading of a type instance. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT OnTypeUnloaded( + [in] IXCLRDataTypeInstance *typeInst +); +``` + +## Parameters + +`typeInst`\ +[in] The type instance which is being unloaded. + +## Remarks + +The provided method is part of the `IXCLRDataExceptionNotification` interface and corresponds to the 11th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataProcess::TranslateExceptionRecordToNotification Method](ixclrdataprocess-translateexceptionrecordtonotification-method.md) +- [IXCLRDataTypeInstance Interface](ixclrdatatypeinstance-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification2-interface.md b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification2-interface.md new file mode 100644 index 0000000000000..7413ad8c2bc1e --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification2-interface.md @@ -0,0 +1,49 @@ +--- +description: "Learn more about: IXCLRDataExceptionNotification2 Interface" +title: "IXCLRDataExceptionNotification2 Interface" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataExceptionNotification2 Interface" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataExceptionNotification2 Interface" +helpviewer.keywords: + - "IXCLRDataExceptionNotification2 Interface [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataExceptionNotification2 Interface + +Caller provided interface which derives from `IXCLRDataExceptionNotification` and includes callback methods for various CLR notifications which occur via system exceptions. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Methods + +| Method | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | +| [OnAppDomainLoaded](ixclrdataexceptionnotification2-onappdomainloaded-method.md) | Callback made if the exception represents the loading of a particular app domain. | +| [OnAppDomainUnloaded](ixclrdataexceptionnotification2-onappdomainunloaded-method.md) | Callback made if the exception represents the unloading of a particular app domain. | +| [OnException](ixclrdataexceptionnotification2-onexception-method.md) | Callback made if the exception represents a managed exception being raised. | + +## Remarks + +This interface is implemented by users of the `IXCLRDataProcess::TranslateExceptionRecordToNotification` method. It is not exposed through any headers or library files. However, it's a COM interface that derives from `IXCLRDataExceptionNotification` with GUID `31201a94-4337-49b7-aef7-0c755054091f` and can be implemented through the usual COM mechanisms. The list of methods above is the complete list of non IXCLRDataExceptionNotification# and IUnknown methods on this interface and are in vtable order. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [Debugging Interfaces](debugging-interfaces.md) +- [IXCLRDataProcess::TranslateExceptionRecordToNotification Method](ixclrdataprocess-translateexceptionrecordtonotification-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification2-onappdomainloaded-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification2-onappdomainloaded-method.md new file mode 100644 index 0000000000000..a8817c2e55872 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification2-onappdomainloaded-method.md @@ -0,0 +1,55 @@ +--- +description: "Learn more about: IXCLRDataExceptionNotification2::OnAppDomainLoaded Method" +title: "IXCLRDataExceptionNotification2::OnAppDomainLoaded Method" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataExceptionNotification2::OnAppDomainLoaded Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataExceptionNotification2::OnAppDomainLoaded Method" +helpviewer.keywords: + - "IXCLRDataExceptionNotification2::OnAppDomainLoaded Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataExceptionNotification2::OnAppDomainLoaded Method + +Client implemented callback which is made during a call to `IXCLRDataProcess::TranslateExceptionRecordToNotification` when a given exception represents the loading of an AppDomain. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT OnAppDomainLoaded( + [in] IXCLRDataAppDomain *domain +); +``` + +## Parameters + +`domain`\ +[in] The AppDomain which was loaded. + +## Remarks + +The provided method is part of the `IXCLRDataExceptionNotification2` interface and corresponds to the 12th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataProcess::TranslateExceptionRecordToNotification Method](ixclrdataprocess-translateexceptionrecordtonotification-method.md) +- [IXCLRDataExceptionNotification Interface](ixclrdataexceptionnotification-interface.md) +- [IXCLRDataAppDomain Interface](ixclrdataappdomain-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification2-onappdomainunloaded-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification2-onappdomainunloaded-method.md new file mode 100644 index 0000000000000..ee22c669225f7 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification2-onappdomainunloaded-method.md @@ -0,0 +1,55 @@ +--- +description: "Learn more about: IXCLRDataExceptionNotification2::OnAppDomainUnloaded Method" +title: "IXCLRDataExceptionNotification2::OnAppDomainUnloaded Method" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataExceptionNotification2::OnAppDomainUnloaded Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataExceptionNotification2::OnAppDomainUnloaded Method" +helpviewer.keywords: + - "IXCLRDataExceptionNotification2::OnAppDomainUnloaded Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataExceptionNotification2::OnAppDomainUnloaded Method + +Client implemented callback which is made during a call to `IXCLRDataProcess::TranslateExceptionRecordToNotification` when a given exception represents the unloading of an AppDomain. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT OnAppDomainUnloaded( + [in] IXCLRDataAppDomain *domain +); +``` + +## Parameters + +`domain`\ +[in] The AppDomain which was unloaded. + +## Remarks + +The provided method is part of the `IXCLRDataExceptionNotification2` interface and corresponds to the 13th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataProcess::TranslateExceptionRecordToNotification Method](ixclrdataprocess-translateexceptionrecordtonotification-method.md) +- [IXCLRDataExceptionNotification Interface](ixclrdataexceptionnotification-interface.md) +- [IXCLRDataAppDomain Interface](ixclrdataappdomain-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification2-onexception-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification2-onexception-method.md new file mode 100644 index 0000000000000..428e0f2d79b39 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification2-onexception-method.md @@ -0,0 +1,55 @@ +--- +description: "Learn more about: IXCLRDataExceptionNotification2::OnException Method" +title: "IXCLRDataExceptionNotification2::OnException Method" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataExceptionNotification2::OnException Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataExceptionNotification2::OnException Method" +helpviewer.keywords: + - "IXCLRDataExceptionNotification2::OnException Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataExceptionNotification2::OnException Method + +Client implemented callback which is made during a call to `IXCLRDataProcess::TranslateExceptionRecordToNotification` when a given exception represents the raising of a managed exception. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT OnException( + [in] IXCLRDataExceptionState *exception +); +``` + +## Parameters + +`exception`\ +[in] The managed exception which is being raised. + +## Remarks + +The provided method is part of the `IXCLRDataExceptionNotification2` interface and corresponds to the 14th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataProcess::TranslateExceptionRecordToNotification Method](ixclrdataprocess-translateexceptionrecordtonotification-method.md) +- [IXCLRDataExceptionNotification Interface](ixclrdataexceptionnotification-interface.md) +- [IXCLRDataAppDomain Interface](ixclrdataappdomain-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification3-interface.md b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification3-interface.md new file mode 100644 index 0000000000000..047ad3b94b02e --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification3-interface.md @@ -0,0 +1,49 @@ +--- +description: "Learn more about: IXCLRDataExceptionNotification3 Interface" +title: "IXCLRDataExceptionNotification3 Interface" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataExceptionNotification3 Interface" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataExceptionNotification3 Interface" +helpviewer.keywords: + - "IXCLRDataExceptionNotification3 Interface [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataExceptionNotification3 Interface + +Caller provided interface which derives from `IXCLRDataExceptionNotification2` and includes callback methods for various CLR notifications which occur via system exceptions. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Methods + +| Method | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | +| [OnGcEvent](ixclrdataexceptionnotification3-ongcevent-method.md) | Callback made if the exception represents a particular GC event occurring. | + +## Remarks + +This interface is implemented by users of the `IXCLRDataProcess::TranslateExceptionRecordToNotification` method. It is not exposed through any headers or library files. However, it's a COM interface that derives from `IXCLRDataExceptionNotification2` with GUID `31201a94-4337-49b7-aef7-0c7550540920` and can be implemented through the usual COM mechanisms. The list of methods above is the complete list of non IXCLRDataExceptionNotification# and IUnknown methods on this interface and are in vtable order. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [Debugging Interfaces](debugging-interfaces.md) +- [IXCLRDataProcess::TranslateExceptionRecordToNotification Method](ixclrdataprocess-translateexceptionrecordtonotification-method.md) +- [IXCLRDataExceptionNotification Interface](ixclrdataexceptionnotification-interface.md) +- [IXCLRDataExceptionNotification2 Interface](ixclrdataexceptionnotification2-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification3-ongcevent-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification3-ongcevent-method.md new file mode 100644 index 0000000000000..647766a9d8921 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification3-ongcevent-method.md @@ -0,0 +1,56 @@ +--- +description: "Learn more about: IXCLRDataExceptionNotification3::OnGcEvent Method" +title: "IXCLRDataExceptionNotification3::OnGcEvent Method" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataExceptionNotification3::OnGcEvent Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataExceptionNotification3::OnGcEvent Method" +helpviewer.keywords: + - "IXCLRDataExceptionNotification3::OnGcEvent Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataExceptionNotification3::OnGcEvent Method + +Client implemented callback which is made during a call to `IXCLRDataProcess::TranslateExceptionRecordToNotification` when a given exception represents a particular GC event occurring. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT OnGcEvent( + [in] GcEvtArgs gcEvtArgs +); +``` + +## Parameters + +`gcEvtArgs`\ +[in] A set of arguments which describe the GC event which occurred. + +## Remarks + +The provided method is part of the `IXCLRDataExceptionNotification3` interface and corresponds to the 15th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataProcess::TranslateExceptionRecordToNotification Method](ixclrdataprocess-translateexceptionrecordtonotification-method.md) +- [GcEvtArgs Structure](gcevtargs-structure.md) +- [IXCLRDataExceptionNotification Interface](ixclrdataexceptionnotification-interface.md) +- [IXCLRDataExceptionNotification2 Interface](ixclrdataexceptionnotification2-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification4-exceptioncatcherenter-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification4-exceptioncatcherenter-method.md new file mode 100644 index 0000000000000..ab50bcd5f30f9 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification4-exceptioncatcherenter-method.md @@ -0,0 +1,61 @@ +--- +description: "Learn more about: IXCLRDataExceptionNotification4::ExceptionCatcherEnter Method" +title: "IXCLRDataExceptionNotification4::ExceptionCatcherEnter Method" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataExceptionNotification4::ExceptionCatcherEnter Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataExceptionNotification4::ExceptionCatcherEnter Method" +helpviewer.keywords: + - "IXCLRDataExceptionNotification4::ExceptionCatcherEnter Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataExceptionNotification4::ExceptionCatcherEnter Method + +Client implemented callback which is made during a call to `IXCLRDataProcess::TranslateExceptionRecordToNotification` when a given exception represents the entry into a managed catch block. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT ExceptionCatcherEnter( + [in] IXCLRDataMethodInstance *catchingMethod, + [in] DWORD catcherNativeOffset +); +``` + +## Parameters + +`catchingMethod`\ +[in] The method instance which contains the managed catch block + +`catcherNativeOffset`\ +[in] The native code offset in bytes to the catching block + +## Remarks + +The provided method is part of the `IXCLRDataExceptionNotification4` interface and corresponds to the 16th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataProcess::TranslateExceptionRecordToNotification Method](ixclrdataprocess-translateexceptionrecordtonotification-method.md) +- [IXCLRDataMethodInstance Interface](ixclrdatamethodinstance-interface.md) +- [IXCLRDataExceptionNotification Interface](ixclrdataexceptionnotification-interface.md) +- [IXCLRDataExceptionNotification2 Interface](ixclrdataexceptionnotification2-interface.md) +- [IXCLRDataExceptionNotification3 Interface](ixclrdataexceptionnotification3-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification4-interface.md b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification4-interface.md new file mode 100644 index 0000000000000..34a3f061364fb --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification4-interface.md @@ -0,0 +1,50 @@ +--- +description: "Learn more about: IXCLRDataExceptionNotification4 Interface" +title: "IXCLRDataExceptionNotification4 Interface" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataExceptionNotification4 Interface" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataExceptionNotification4 Interface" +helpviewer.keywords: + - "IXCLRDataExceptionNotification4 Interface [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataExceptionNotification4 Interface + +Caller provided interface which derives from `IXCLRDataExceptionNotification4` and includes callback methods for various CLR notifications which occur via system exceptions. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Methods + +| Method | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | +| [ExceptionCatcherEnter](ixclrdataexceptionnotification4-exceptioncatcherenter-method.md) | Callback made if the exception represents the entry of a managed catch block. | + +## Remarks + +This interface is implemented by users of the `IXCLRDataProcess::TranslateExceptionRecordToNotification` method. It is not exposed through any headers or library files. However, it's a COM interface that derives from `IXCLRDataExceptionNotification3` with GUID `C25E926E-5F09-4AA2-BBAD-B7FC7F10CFD7` and can be implemented through the usual COM mechanisms. The list of methods above is the complete list of non IXCLRDataExceptionNotification# and IUnknown methods on this interface and are in vtable order. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [Debugging Interfaces](debugging-interfaces.md) +- [IXCLRDataProcess::TranslateExceptionRecordToNotification Method](ixclrdataprocess-translateexceptionrecordtonotification-method.md) +- [IXCLRDataExceptionNotification Interface](ixclrdataexceptionnotification-interface.md) +- [IXCLRDataExceptionNotification2 Interface](ixclrdataexceptionnotification2-interface.md) +- [IXCLRDataExceptionNotification3 Interface](ixclrdataexceptionnotification3-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification5-interface.md b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification5-interface.md new file mode 100644 index 0000000000000..a14d1d5704069 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification5-interface.md @@ -0,0 +1,51 @@ +--- +description: "Learn more about: IXCLRDataExceptionNotification5 Interface" +title: "IXCLRDataExceptionNotification5 Interface" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataExceptionNotification5 Interface" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataExceptionNotification5 Interface" +helpviewer.keywords: + - "IXCLRDataExceptionNotification5 Interface [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataExceptionNotification5 Interface + +Caller provided interface which derives from `IXCLRDataExceptionNotification4` and includes callback methods for various CLR notifications which occur via system exceptions. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Methods + +| Method | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | +| [OnCodeGenerated2](ixclrdataexceptionnotification5-oncodegenerated2-method.md) | Callback made if the exception represents the generation of code for a particular method instance. | + +## Remarks + +This interface is implemented by users of the `IXCLRDataProcess::TranslateExceptionRecordToNotification` method. It is not exposed through any headers or library files. However, it's a COM interface that derives from `IXCLRDataExceptionNotification4` with GUID `e77a39ea-3548-44d9-b171-8569ed1a9423` and can be implemented through the usual COM mechanisms. The list of methods above is the complete list of non IXCLRDataExceptionNotification# and IUnknown methods on this interface and are in vtable order. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [Debugging Interfaces](debugging-interfaces.md) +- [IXCLRDataProcess::TranslateExceptionRecordToNotification Method](ixclrdataprocess-translateexceptionrecordtonotification-method.md) +- [IXCLRDataExceptionNotification Interface](ixclrdataexceptionnotification-interface.md) +- [IXCLRDataExceptionNotification2 Interface](ixclrdataexceptionnotification2-interface.md) +- [IXCLRDataExceptionNotification3 Interface](ixclrdataexceptionnotification3-interface.md) +- [IXCLRDataExceptionNotification4 Interface](ixclrdataexceptionnotification4-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification5-oncodegenerated2-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification5-oncodegenerated2-method.md new file mode 100644 index 0000000000000..86fc3b150ac71 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionnotification5-oncodegenerated2-method.md @@ -0,0 +1,62 @@ +--- +description: "Learn more about: IXCLRDataExceptionNotification5::OnCodeGenerated2 Method" +title: "IXCLRDataExceptionNotification5::OnCodeGenerated2 Method" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataExceptionNotification5::OnCodeGenerated2 Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataExceptionNotification5::OnCodeGenerated2 Method" +helpviewer.keywords: + - "IXCLRDataExceptionNotification5::OnCodeGenerated2 Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataExceptionNotification5::OnCodeGenerated2 Method + +Client implemented callback which is made during a call to `IXCLRDataProcess::TranslateExceptionRecordToNotification` when a given exception represents the generation of code for a particular method instance. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT OnCodeGenerated2( + [in] IXCLRDataMethodInstance *method, + [in] CLRDATA_ADDRESS nativeCodeLocation +); +``` + +## Parameters + +`method`\ +[in] The method instance for which code was generated. + +`nativeCodeLocation`\ +[in] The starting address of the newly jitted code. + +## Remarks + +The provided method is part of the `IXCLRDataExceptionNotification5` interface and corresponds to the 17th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataProcess::TranslateExceptionRecordToNotification Method](ixclrdataprocess-translateexceptionrecordtonotification-method.md) +- [IXCLRDataMethodInstance Interface](ixclrdatamethodinstance-interface.md) +- [IXCLRDataExceptionNotification Interface](ixclrdataexceptionnotification-interface.md) +- [IXCLRDataExceptionNotification2 Interface](ixclrdataexceptionnotification2-interface.md) +- [IXCLRDataExceptionNotification3 Interface](ixclrdataexceptionnotification3-interface.md) +- [IXCLRDataExceptionNotification4 Interface](ixclrdataexceptionnotification4-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataexceptionstate-getmanagedobject-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionstate-getmanagedobject-method.md new file mode 100644 index 0000000000000..82548dc0bd70e --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionstate-getmanagedobject-method.md @@ -0,0 +1,54 @@ +--- +description: "Learn more about: IXCLRDataExceptionState::GetManagedObject Method" +title: "IXCLRDataExceptionState::GetManagedObject Method" +ms.date: "07/03/2024" +api.name: + - "IXCLRDataExceptionState::GetManagedObject Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataExceptionState::GetManagedObject Method" +helpviewer.keywords: + - "IXCLRDataExceptionState::GetManagedObject Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataExceptionState::GetManagedObject Method + +Gets the managed object representing the exception. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetManagedObject( + [out] IXCLRDataValue **value +); +``` + +## Parameters + +`value`\ +[out] The managed object representing the exception. + +## Remarks + +The provided method is part of the `IXCLRDataExceptionState` interface and corresponds to the 6th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataTypeDefinition Interface](ixclrdataexceptionstate-interface.md) +- [IXCLRDataValue Interface](ixclrdatavalue-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataexceptionstate-getprevious-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionstate-getprevious-method.md new file mode 100644 index 0000000000000..5c9167ec93f49 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionstate-getprevious-method.md @@ -0,0 +1,53 @@ +--- +description: "Learn more about: IXCLRDataExceptionState::GetPrevious Method" +title: "IXCLRDataExceptionState::GetPrevious Method" +ms.date: "07/03/2024" +api.name: + - "IXCLRDataExceptionState::GetPrevious Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataExceptionState::GetPrevious Method" +helpviewer.keywords: + - "IXCLRDataExceptionState::GetPrevious Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataExceptionState::GetPrevious Method + +For nested exceptions, this gets the exception that was being handled when this exception occurred. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetPrevious( + [out] IXCLRDataExceptionState **exState +); +``` + +## Parameters + +`exState`\ +[out] The exception that was being handled when this exception occurred. + +## Remarks + +The provided method is part of the `IXCLRDataExceptionState` interface and corresponds to the 5th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataExceptionState Interface](ixclrdataexceptionstate-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataexceptionstate-getstring-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionstate-getstring-method.md new file mode 100644 index 0000000000000..292d91bb00a49 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionstate-getstring-method.md @@ -0,0 +1,61 @@ +--- +description: "Learn more about: IXCLRDataExceptionState::GetString Method" +title: "IXCLRDataExceptionState::GetString Method" +ms.date: "07/03/2024" +api.name: + - "IXCLRDataExceptionState::GetString Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataExceptionState::GetString Method" +helpviewer.keywords: + - "IXCLRDataExceptionState::GetString Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataExceptionState::GetString Method + +Gets the standard element type of this type definition. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetString( + [in] ULONG32 bufLen, + [out] ULONG32 *strLen, + [out, size_is(bufLen)] WCHAR str[] +); +``` + +## Parameters + +`bufLen`\ +[in] The length in characters of the `str` buffer. + +`strLen`\ +[out] The number of characters in the exception string written to the `str` buffer. + +`str`\ +[out] The exception string. + +## Remarks + +The provided method is part of the `IXCLRDataExceptionState` interface and corresponds to the 9th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataExceptionState Interface](ixclrdataexceptionstate-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataexceptionstate-interface.md b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionstate-interface.md new file mode 100644 index 0000000000000..4940d8c1d0ffb --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionstate-interface.md @@ -0,0 +1,51 @@ +--- +description: "Learn more about: IXCLRDataExceptionState Interface" +title: "IXCLRDataExceptionState Interface" +ms.date: "07/03/2024" +api.name: + - "IXCLRDataExceptionState Interface" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataExceptionState Interface" +helpviewer.keywords: + - "IXCLRDataExceptionState Interface [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataExceptionState Interface + +Provides methods for querying information about the state of a managed exception. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Methods + +| Method | Description | +| ----------------------------------------------------------------------------------------------------------------------- | ------------------------------------------- | +| [Request](ixclrdataexceptionstate-request-method.md) | Requests to populate the buffer given with the exception's data. | +| [IsSameState](ixclrdataexceptionstate-issamestate-method.md) | Determines whether the exception state is the same as the given exception state. | +| [IsSameState2](ixclrdataexceptionstate-issamestate2-method.md) | Determines whether the exception state is the same as the given exception state. | +| [GetPrevious](ixclrdataexceptionstate-getprevious-method.md) | For nested exceptions, get the exception that was being handled when this exception occurred. | +| [GetManagedObject](ixclrdataexceptionstate-getmanagedobject-method.md) | Gets the managed object representing the exception. | +| [GetString](ixclrdataexceptionstate-getstring-method.md) | Gets exception information. | + +## Remarks + +This interface lives inside the runtime and is not exposed through any headers or library files. However, it's a COM interface that derives from `IUnknown` with GUID `75DA9E4C-BD33-43C8-8F5C-96E8A5241F57` that can be obtained through the usual COM mechanisms. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataexceptionstate-issamestate-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionstate-issamestate-method.md new file mode 100644 index 0000000000000..a4d9c1b87373a --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionstate-issamestate-method.md @@ -0,0 +1,69 @@ +--- +description: "Learn more about: IXCLRDataExceptionState::IsSameState Method" +title: "IXCLRDataExceptionState::IsSameState Method" +ms.date: "07/03/2024" +api.name: + - "IXCLRDataExceptionState::IsSameState Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataExceptionState::IsSameState Method" +helpviewer.keywords: + - "IXCLRDataExceptionState::IsSameState Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataExceptionState::IsSameState Method + +Determines whether the exception state matches the given exception information. + +NOTE: This method is obsolete; `IsSameState2` should be used instead. This method requires revision 1 as reported by the `Request` method in order to call. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT IsSameState( + [in] EXCEPTION_RECORD64 *exRecord, + [in] ULONG32 contextSize, + [in, size_is(contextSize)] BYTE cxRecord[] +); +``` + +## Parameters + +`exRecord`\ +[in] The system exception record for which to check a match against. + +`contextSize`\ +[in] The size of the context record in the `cxRecord` buffer. + +`cxRecord`\ +[in] The context record associated with the exception. + +## Return Value + +If the exception state matches the given information, S_OK will be returned. If it does not, S_FALSE will be returned. + +## Remarks + +The provided method is part of the `IXCLRDataExceptionState` interface and corresponds to the 11th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataExceptionState Interface](ixclrdataexceptionstate-interface.md) +- [IXCLRDataExceptionState::IsSameState2 Method](ixclrdataexceptionstate-issamestate2-method.md) +- [IXCLRDataExceptionState::Request Method](ixclrdataexceptionstate-request-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataexceptionstate-issamestate2-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionstate-issamestate2-method.md new file mode 100644 index 0000000000000..70a7d572be40d --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionstate-issamestate2-method.md @@ -0,0 +1,73 @@ +--- +description: "Learn more about: IXCLRDataExceptionState::IsSameState2 Method" +title: "IXCLRDataExceptionState::IsSameState2 Method" +ms.date: "07/03/2024" +api.name: + - "IXCLRDataExceptionState::IsSameState2 Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataExceptionState::IsSameState2 Method" +helpviewer.keywords: + - "IXCLRDataExceptionState::IsSameState2 Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataExceptionState::IsSameState2 Method + +Determines whether the exception state matches the given exception information. + +NOTE: This method requires revision 2 as reported by the `Request` method in order to call. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT IsSameState2( + [in] ULONG32 flags, + [in] EXCEPTION_RECORD64 *exRecord, + [in] ULONG32 contextSize, + [in, size_is(contextSize)] BYTE cxRecord[] +); +``` + +## Parameters + +`flags`\ +[in] Flags indicating how to match the exception state. This is one of the values defined by the `CLRDataExceptionSameFlag` enumeration. + +`exRecord`\ +[in] The system exception record for which to check a match against. + +`contextSize`\ +[in] The size of the context record in the `cxRecord` buffer. + +`cxRecord`\ +[in] The context record associated with the exception. + +## Return Value + +If the exception state matches the given information, S_OK will be returned. If it does not, S_FALSE will be returned. + +## Remarks + +The provided method is part of the `IXCLRDataExceptionState` interface and corresponds to the 12th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataExceptionState Interface](ixclrdataexceptionstate-interface.md) +- [IXCLRDataExceptionState::Request Method](ixclrdataexceptionstate-request-method.md) +- [CLRDataExceptionSameFlag Enumeration](clrdataexceptionsameflag-enumeration.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataexceptionstate-request-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionstate-request-method.md new file mode 100644 index 0000000000000..440ad130955f0 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataexceptionstate-request-method.md @@ -0,0 +1,74 @@ +--- +description: "Learn more about: IXCLRDataExceptionState::Request Method" +title: "IXCLRDataExceptionState::Request Method" +ms.date: "07/03/2024" +api.name: + - "IXCLRDataExceptionState::Request Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataExceptionState::Request Method" +helpviewer.keywords: + - "IXCLRDataExceptionState::Request Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataExceptionState::Request Method + +Requests to populate the buffer given with the exception's data. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT Request( + [in] ULONG32 reqCode, + [in] ULONG32 inBufferSize, + [in, size_is(inBufferSize)] BYTE* inBuffer, + [in] ULONG32 outBufferSize, + [out, size_is(outBufferSize)] BYTE* outBuffer); +``` + +## Parameters + +`reqCode`\ +[in] Request type to be sent. + +Requests can be one of the following: + +|Member|Value|Description| +|------------|-----------------|-----------------| +|`CLRDATA_REQUEST_REVISION`|0xe0000000|Request the revision of the exception. The revision is a ULONG32 numeric value.| + +`inBufferSize`\ +[in] size of the input buffer to be passed in. + +`inBuffer`\ +[in, size_is(inBufferSize)] Buffer pointer for the raw data to be sent in the request. + +`outBufferSize`\ +[in] Size of the output buffer. + +`outBuffer`\ +[out, size_is(outBufferSize)] Buffer pointer to used to store the request response. + +## Remarks + +The provided method is part of the `IXCLRDataExceptionState` interface and corresponds to the 10th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataExceptionState Interface](ixclrdataexceptionstate-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataframe-getargumentbyindex-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataframe-getargumentbyindex-method.md new file mode 100644 index 0000000000000..1895620ebbcdf --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataframe-getargumentbyindex-method.md @@ -0,0 +1,71 @@ +--- +description: "Learn more about: IXCLRDataFrame::GetArgumentByIndex Method" +title: "IXCLRDataFrame::GetArgumentByIndex Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataFrame::GetArgumentByIndex Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataFrame::GetArgumentByIndex Method" +helpviewer.keywords: + - "IXCLRDataFrame::GetArgumentByIndex Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataFrame::GetArgumentByIndex Method + +Gets an argument by its (0-based) index. The name parameter is filled in if name information is available. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetArgumentByIndex( + [in] ULONG32 index, + [out] IXCLRDataValue **arg, + [in] ULONG32 bufLen, + [out] ULONG32 *nameLen, + [out, size_is(bufLen)] WCHAR name[] +); +``` + +## Parameters + +`index`\ +[in] The 0-based index of the argument to retrieve. + +`arg`\ +[out] The argument at the specified `index`. + +`bufLen`\ +[in] The length in characters of the `name` buffer. + +`nameLen`\ +[out] The number of characters in the argument name written to the `name` buffer. + +`name`\ +[out] The name of the argument. + +## Remarks + +The provided method is part of the `IXCLRDataFrame` interface and corresponds to the 8th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataFrame Interface](ixclrdataframe-interface.md) +- [IXCLRDataValue Interface](ixclrdatavalue-interface.md) +- [IXCLRDataFrame::GetNumArguments Method](ixclrdataframe-getnumarguments-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataframe-getlocalvariablebyindex-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataframe-getlocalvariablebyindex-method.md new file mode 100644 index 0000000000000..b5d6017fadd59 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataframe-getlocalvariablebyindex-method.md @@ -0,0 +1,71 @@ +--- +description: "Learn more about: IXCLRDataFrame::GetLocalVariableByIndex Method" +title: "IXCLRDataFrame::GetLocalVariableByIndex Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataFrame::GetLocalVariableByIndex Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataFrame::GetLocalVariableByIndex Method" +helpviewer.keywords: + - "IXCLRDataFrame::GetLocalVariableByIndex Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataFrame::GetLocalVariableByIndex Method + +Gets a local variable by (0-based) index. The name parameter is filled in if name information is available. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetLocalVariableByIndex( + [in] ULONG32 index, + [out] IXCLRDataValue **localVariable, + [in] ULONG32 bufLen, + [out] ULONG32 *nameLen, + [out, size_is(bufLen)] WCHAR name[] +); +``` + +## Parameters + +`index`\ +[out] The 0-based index of the local variable to retrieve. + +`localVariable`\ +[out] The local variable at the specified `index`. + +`bufLen`\ +[in] The length in characters of the `name` buffer. + +`nameLen`\ +[out] The number of characters in the local variable name written to the `name` buffer. + +`name`\ +[out] The name of the local variable. + +## Remarks + +The provided method is part of the `IXCLRDataFrame` interface and corresponds to the 10th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataFrame Interface](ixclrdataframe-interface.md) +- [IXCLRDataValue Interface](ixclrdatavalue-interface.md) +- [IXCLRDataFrame::GetNumLocalVariables Method](ixclrdataframe-getnumlocalvariables-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataframe-getmethodinstance-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataframe-getmethodinstance-method.md new file mode 100644 index 0000000000000..37a5b3665494d --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataframe-getmethodinstance-method.md @@ -0,0 +1,54 @@ +--- +description: "Learn more about: IXCLRDataFrame::GetCurrentAppDomain Method" +title: "IXCLRDataFrame::GetCurrentAppDomain Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataFrame::GetCurrentAppDomain Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataFrame::GetCurrentAppDomain Method" +helpviewer.keywords: + - "IXCLRDataFrame::GetCurrentAppDomain Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataFrame::GetMethodInstance Method + +Gets the method instance corresponding to the stack frame. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetMethodInstance( + [out] IXCLRDataMethodInstance **method +); +``` + +## Parameters + +`method`\ +[out] The method instance corresponding to the stack frame. + +## Remarks + +The provided method is part of the `IXCLRDataFrame` interface and corresponds to the 12th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataFrame Interface](ixclrdataframe-interface.md) +- [IXCLRDataMethodInstance Interface](ixclrdatamethodinstance-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataframe-getnumarguments-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataframe-getnumarguments-method.md new file mode 100644 index 0000000000000..67e978526c163 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataframe-getnumarguments-method.md @@ -0,0 +1,54 @@ +--- +description: "Learn more about: IXCLRDataFrame::GetNumArguments Method" +title: "IXCLRDataFrame::GetNumArguments Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataFrame::GetNumArguments Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataFrame::GetNumArguments Method" +helpviewer.keywords: + - "IXCLRDataFrame::GetNumArguments Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataFrame::GetNumArguments Method + +Gets the number of arguments corresponding to the stack frame method. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetNumArguments( + [out] ULONG32 *numArgs +); +``` + +## Parameters + +`numArgs`\ +[out] The number of arguments to the stack frame method. + +## Remarks + +The provided method is part of the `IXCLRDataFrame` interface and corresponds to the 7th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataFrame Interface](ixclrdataframe-interface.md) +- [IXCLRDataFrame::GetArgumentByIndex Method](ixclrdataframe-getargumentbyindex-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataframe-getnumlocalvariables-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataframe-getnumlocalvariables-method.md new file mode 100644 index 0000000000000..2fddbeddf0be6 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataframe-getnumlocalvariables-method.md @@ -0,0 +1,54 @@ +--- +description: "Learn more about: IXCLRDataFrame::GetNumLocalVariables Method" +title: "IXCLRDataFrame::GetNumLocalVariables Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataFrame::GetNumLocalVariables Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataFrame::GetNumLocalVariables Method" +helpviewer.keywords: + - "IXCLRDataFrame::GetNumLocalVariables Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataFrame::GetNumLocalVariables Method + +Gets the number of local variables in the stack frame method. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetNumLocalVariables( + [out] ULONG32 *numLocals +); +``` + +## Parameters + +`numLocals`\ +[out] The number of local variables in the stack frame method. + +## Remarks + +The provided method is part of the `IXCLRDataFrame` interface and corresponds to the 9th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataFrame Interface](ixclrdataframe-interface.md) +- [IXCLRDataFrame::GetLocalVariableByIndex Method](ixclrdataframe-getlocalvariablebyindex-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataframe-interface.md b/docs/framework/unmanaged-api/debugging/ixclrdataframe-interface.md new file mode 100644 index 0000000000000..2e80e76aa1c88 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataframe-interface.md @@ -0,0 +1,50 @@ +--- +description: "Learn more about: IXCLRDataFrame Interface" +title: "IXCLRDataFrame Interface" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataFrame Interface" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataFrame Interface" +helpviewer.keywords: + - "IXCLRDataFrame Interface [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataFrame Interface + +Provides methods for querying information about a stack frame. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Methods + +| Method | Description | +| ----------------------------------------------------------------------------------------------------------------------- | ------------------------------------------- | +| [GetNumArguments](ixclrdataframe-getnumarguments-method.md) | Gets the number of arguments on the stack. | +| [GetNumLocalVariables](ixclrdataframe-getnumlocalvariables-method.md) | Gets the number of local variables on the stack. | +| [GetMethodInstance](ixclrdataframe-getmethodinstance-method.md) | Gets the method instance corresponding to the stack frame. | +| [GetArgumentByIndex](ixclrdataframe-getargumentbyindex-method.md) | Gets an argument variable by (0-based) index. | +| [GetLocalVariableByIndex](ixclrdataframe-getlocalvariablebyindex-method.md) | Gets a local variable by (0-based) index. | + +## Remarks + +This interface lives inside the runtime and is not exposed through any headers or library files. However, it's a COM interface that derives from `IUnknown` with GUID `271498C2-4085-4766-BC3A-7F8ED188A173` that can be obtained through the usual COM mechanisms. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatamethoddefinition-endenumextents-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatamethoddefinition-endenumextents-method.md new file mode 100644 index 0000000000000..38213dbdaf478 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatamethoddefinition-endenumextents-method.md @@ -0,0 +1,56 @@ +--- +description: "Learn more about: IXCLRDataMethodDefinition::EndEnumExtents Method" +title: "IXCLRDataMethodDefinition::EndEnumExtents Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataMethodDefinition::EndEnumExtents Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataMethodDefinition::EndEnumExtnets Method" +helpviewer.keywords: + - "IXCLRDataMethodDefinition::EndEnumExtents Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataMethodDefinition::EndEnumExtents Method + +Releases the resources used by internal iterators used during IL code range enumeration. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT EndEnumExtents( + [in] CLRDATA_ENUM handle +); +``` + +## Parameters + +`handle`\ +[in] A handle for enumerating the IL code regions. + +## Remarks + +The provided method is part of the `IXCLRDataMethodDefinition` interface and corresponds to the 15th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataMethodDefinition Interface](ixclrdatamethoddefinition-interface.md) +- [IXCLRDataMethodDefinition::StartEnumExtents Method](ixclrdatamethoddefinition-startenumextents.md) +- [IXCLRDataMethodDefinition::EnumExtent Method](ixclrdatamethoddefinition-enumextent-method.md) +- [CLRDATA_METHDEF_EXTENT Structure](clrdata-methdef-extent-structure.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatamethoddefinition-enumextent-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatamethoddefinition-enumextent-method.md new file mode 100644 index 0000000000000..ac619ea25a3d9 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatamethoddefinition-enumextent-method.md @@ -0,0 +1,60 @@ +--- +description: "Learn more about: IXCLRDataMethodDefinition::EnumExtent Method" +title: "IXCLRDataMethodDefinition::EnumExtent Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataMethodDefinition::EnumExtent Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataMethodDefinition::EnumExtent Method" +helpviewer.keywords: + - "IXCLRDataMethodDefinition::EnumExtent Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataMethodDefinition::EnumExtent Method + +Enumerates the IL code regions associated with the method. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT EnumExtent( + [in, out] CLRDATA_ENUM *handle, + [out] CLRDATA_METHDEF_EXTENT *extent +); +``` + +## Parameters + +`handle`\ +[in, out] A handle for enumerating the IL code regions associated with the method. + +`extent`\ +[out] The enumerated IL code region associated with the method. + +## Remarks + +The provided method is part of the `IXCLRDataMethodDefinition` interface and corresponds to the 14th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataMethodDefinition Interface](ixclrdatamethoddefinition-interface.md) +- [IXCLRDataMethodDefinition::StartEnumExtents Method](ixclrdatamethoddefinition-startenumextents.md) +- [IXCLRDataMethodDefinition::EndEnumExtents Method](ixclrdatamethoddefinition-endenumextents-method.md) +- [CLRDATA_METHDEF_EXTENT Structure](clrdata-methdef-extent-structure.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatamethoddefinition-getrepresentativeentryaddress-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatamethoddefinition-getrepresentativeentryaddress-method.md new file mode 100644 index 0000000000000..f0cb68ab7566c --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatamethoddefinition-getrepresentativeentryaddress-method.md @@ -0,0 +1,53 @@ +--- +description: "Learn more about: IXCLRDataMethodDefinition::GetRepresentativeEntryAddress Method" +title: "IXCLRDataMethodDefinition::GetRepresentativeEntryAddress Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataMethodDefinition::GetRepresentativeEntryAddress Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataMethodDefinition::GetRepresentativeEntryAddress Method" +helpviewer.keywords: + - "IXCLRDataMethodDefinition::GetRepresentativeEntryAddress Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataMethodDefinition::GetRepresentativeEntryAddress Method + +Gets the most representative start address of the native code for this method. A method may have multiple entry points, so this address is not guaranteed to be hit by all entries. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetRepresentativeEntryAddress( + [out] CLRDATA_ADDRESS *addr +); +``` + +## Parameters + +`addr`\ +[out] The most representative start address of the native code for this method. + +## Remarks + +The provided method is part of the `IXCLRDataMethodDefinition` interface and corresponds to the 19th slot of the virtual method table. CLRDATA_ADDRESS is a 64-bit unsigned integer. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataMethodDefinition Interface](ixclrdatamethoddefinition-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatamethoddefinition-gettokenandscope-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatamethoddefinition-gettokenandscope-method.md new file mode 100644 index 0000000000000..e75d1ef2a9258 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatamethoddefinition-gettokenandscope-method.md @@ -0,0 +1,58 @@ +--- +description: "Learn more about: IXCLRDataMethodDefinition::GetTokenAndScope Method" +title: "IXCLRDataMethodDefinition::GetTokenAndScope Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataMethodDefinition::GetTokenAndScope Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataMethodDefinition::GetTokenAndScope Method" +helpviewer.keywords: + - "IXCLRDataMethodDefinition::GetTokenAndScope Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataMethodDefinition::GetTokenAndScope Method + +Gets the metadata token and scope of the method. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetTokenAndScope( + [out] mdMethodDef *token, + [out] IXCLRDataModule **mod +); +``` + +## Parameters + +`token`\ +[in] The metadata token for the method. + +`mod`\ +[out] The module for which the metadata token is valid. + +## Remarks + +The provided method is part of the `IXCLRDataMethodDefinition` interface and corresponds to the 9th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataMethodDefinition Interface](ixclrdatamethoddefinition-interface.md) +- [IXCLRDataModule Interface](ixclrdatamodule-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatamethoddefinition-interface.md b/docs/framework/unmanaged-api/debugging/ixclrdatamethoddefinition-interface.md index d7d1f29b53bc6..349ea08b7f4a9 100644 --- a/docs/framework/unmanaged-api/debugging/ixclrdatamethoddefinition-interface.md +++ b/docs/framework/unmanaged-api/debugging/ixclrdatamethoddefinition-interface.md @@ -32,6 +32,12 @@ The following methods are some of the methods available in the interface. | [StartEnumInstances](ixclrdatamethoddefinition-startenuminstances-method.md) | Provides a handle for the enumeration of method instances for a given `IXCLRDataAppDomain`. | | [EnumInstance](ixclrdatamethoddefinition-enuminstance-method.md) | Enumerates the instances of this method definition. | | [EndEnumInstances](ixclrdatamethoddefinition-endenuminstances-method.md) | Releases the resources used by internal iterators used during instance enumeration. | +| [Request](ixclrdatamethoddefinition-request-method.md) | Requests to populate the buffer given with the method's data. | +| [GetRepresentativeEntryAddress](ixclrdatamethoddefinition-getrepresentativeentryaddress-method.md) | Gets the most representative start address of the native code for this method. | +| [GetTokenAndScope](ixclrdatamethoddefinition-gettokenandscope-method.md) | Gets the metadata token and scope of the method. | +| [StartEnumExtents Method](ixclrdatamethoddefinition-startenumextents.md) | Provides a handle for the enumeration of IL code regions associated with the method. | +| [EnumExtent](ixclrdatamethoddefinition-enumextent-method.md) | Enumerates the IL code regions associated with this method. | +| [EndEnumExtents](ixclrdatamethoddefinition-endenumextents-method.md) | Releases the resources used by internal iterators used during IL code region enumeration. | ## Remarks @@ -39,10 +45,10 @@ This interface lives inside the runtime and is not exposed through any headers o ## Requirements -**Platforms:** See [System Requirements](../../get-started/system-requirements.md). -**Header:** None -**Library:** None -**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] ## See also diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatamethoddefinition-request-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatamethoddefinition-request-method.md new file mode 100644 index 0000000000000..3a4e970748f44 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatamethoddefinition-request-method.md @@ -0,0 +1,74 @@ +--- +description: "Learn more about: IXCLRDataMethodDefinition::Request Method" +title: "IXCLRDataMethodDefinition::Request Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataMethodDefinition::Request Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataMethodDefinition::Request Method" +helpviewer.keywords: + - "IXCLRDataMethodDefinition::Request Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataMethodDefinition::Request Method + +Requests to populate the buffer given with the method's data. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT Request( + [in] ULONG32 reqCode, + [in] ULONG32 inBufferSize, + [in, size_is(inBufferSize)] BYTE* inBuffer, + [in] ULONG32 outBufferSize, + [out, size_is(outBufferSize)] BYTE* outBuffer); +``` + +## Parameters + +`reqCode`\ +[in] Request type to be sent. + +Requests can be one of the following: + +|Member|Value|Description| +|------------|-----------------|-----------------| +|`CLRDATA_REQUEST_REVISION`|0xe0000000|Request the revision of the method. The revision is a ULONG32 numeric value.| + +`inBufferSize`\ +[in] size of the input buffer to be passed in. + +`inBuffer`\ +[in, size_is(inBufferSize)] Buffer pointer for the raw data to be sent in the request. + +`outBufferSize`\ +[in] Size of the output buffer. + +`outBuffer`\ +[out, size_is(outBufferSize)] Buffer pointer to used to store the request response. + +## Remarks + +The provided method is part of the `IXCLRDataMethodDefinition` interface and corresponds to the 18th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataMethodDefinition Interface](ixclrdatamethoddefinition-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatamethoddefinition-startenumextents.md b/docs/framework/unmanaged-api/debugging/ixclrdatamethoddefinition-startenumextents.md new file mode 100644 index 0000000000000..2c7c20655d226 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatamethoddefinition-startenumextents.md @@ -0,0 +1,56 @@ +--- +description: "Learn more about: IXCLRDataMethodDefinition::StartEnumExtents Method" +title: "IXCLRDataMethodDefinition::StartEnumExtents Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataMethodDefinition::StartEnumExtents Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataMethodDefinition::StartEnumExtents Method" +helpviewer.keywords: + - "IXCLRDataMethodDefinition::StartEnumExtents Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataMethodDefinition::StartEnumExtents Method + +Provides a handle for the enumeration of IL code regions associated with the method. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT StartEnumExtents( + [out] CLRDATA_ENUM *handle +); +``` + +## Parameters + +`handle`\ +[out] A handle for enumerating the IL code regions associated with the method. + +## Remarks + +The provided method is part of the `IXCLRDataMethodDefinition` interface and corresponds to the 13th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataMethodDefinition Interface](ixclrdatamethoddefinition-interface.md) +- [IXCLRDataMethodDefinition::EnumExtent Method](ixclrdatamethoddefinition-enumextent-method.md) +- [IXCLRDataMethodDefinition::EndEnumExtents Method](ixclrdatamethoddefinition-endenumextents-method.md) +- [CLRDATA_METHDEF_EXTENT Structure](clrdata-methdef-extent-structure.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-endenumextents-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-endenumextents-method.md new file mode 100644 index 0000000000000..a72ba74ebc262 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-endenumextents-method.md @@ -0,0 +1,56 @@ +--- +description: "Learn more about: IXCLRDataMethodInstance::EndEnumExtents Method" +title: "IXCLRDataMethodInstance::EndEnumExtents Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataMethodInstance::EndEnumExtents Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataMethodInstance::EndEnumExtnets Method" +helpviewer.keywords: + - "IXCLRDataMethodInstance::EndEnumExtents Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataMethodInstance::EndEnumExtents Method + +Releases the resources used by internal iterators used during native code range enumeration. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT EndEnumExtents( + [in] CLRDATA_ENUM handle +); +``` + +## Parameters + +`handle`\ +[in] A handle for enumerating the native code regions. + +## Remarks + +The provided method is part of the `IXCLRDataMethodInstance` interface and corresponds to the 18th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataMethodInstance Interface](ixclrdatamethodinstance-interface.md) +- [IXCLRDataMethodInstance::StartEnumExtents Method](ixclrdatamethodinstance-startenumextents-method.md) +- [IXCLRDataMethodInstance::EnumExtent Method](ixclrdatamethodinstance-enumextent-method.md) +- [CLRDATA_ADDRESS_RANGE Structure](clrdata-address-range-structure.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-enumextent-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-enumextent-method.md new file mode 100644 index 0000000000000..087aaee70d9c7 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-enumextent-method.md @@ -0,0 +1,60 @@ +--- +description: "Learn more about: IXCLRDataMethodInstance::EnumExtent Method" +title: "IXCLRDataMethodInstance::EnumExtent Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataMethodInstance::EnumExtent Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataMethodInstance::EnumExtent Method" +helpviewer.keywords: + - "IXCLRDataMethodInstance::EnumExtent Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataMethodInstance::EnumExtent Method + +Enumerates the native code regions associated with the method. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT EnumExtent( + [in, out] CLRDATA_ENUM *handle, + [out] CLRDATA_ADDRESS_RANGE *extent +); +``` + +## Parameters + +`handle`\ +[in, out] A handle for enumerating the memory regions associated with the module. + +`extent`\ +[out] The enumerated native code region associated with the method. + +## Remarks + +The provided method is part of the `IXCLRDataMethodInstance` interface and corresponds to the 17th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataMethodInstance Interface](ixclrdatamethodinstance-interface.md) +- [IXCLRDataMethodInstance::StartEnumExtents Method](ixclrdatamethodinstance-startenumextents-method.md) +- [IXCLRDataMethodInstance::EndEnumExtents Method](ixclrdatamethodinstance-endenumextents-method.md) +- [CLRDATA_ADDRESS_RANGE Structure](clrdata-address-range-structure.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-getaddressrangesbyiloffset-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-getaddressrangesbyiloffset-method.md new file mode 100644 index 0000000000000..3dd4d3b2be1b6 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-getaddressrangesbyiloffset-method.md @@ -0,0 +1,66 @@ +--- +description: "Learn more about: IXCLRDataMethodInstance::GetAddressRangesByILOffset Method" +title: "IXCLRDataMethodInstance::GetAddressRangesByILOffset Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataMethodInstance::GetAddressRangesByILOffset Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataMethodInstance::GetAddressRangesByILOffset Method" +helpviewer.keywords: + - "IXCLRDataMethodInstance::GetAddressRangesByILOffset Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataMethodInstance::GetAddressRangesByILOffset Method + +Returns the native code address(es) which correspond to a given IL offset within the method. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetAddressRangesByILOffset( + [in] ULONG32 ilOffset, + [in] ULONG32 rangesLen, + [out] ULONG32 *rangesNeeded, + [out, size_is(rangesLen)] CLRDATA_ADDRESS_RANGE addressRanges[] +); +``` + +## Parameters + +`ilOffset`\ +[in] The IL offset within the method for which to retrieve native code address ranges. + +`rangesLen`\ +[in] The length of the `addressRanges` buffer. + +`rangesNeeded`\ +[out] Indicates how many address ranges corresponding to the given IL offset are returned. + +`addressRanges`\ +[out] The address ranges which correspond to the given IL offset within the method. + +## Remarks + +The provided method is part of the `IXCLRDataMethodInstance` interface and corresponds to the 14th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataMethodInstance Interface](ixclrdatamethodinstance-interface.md) +- [CLRDATA_ADDRESS_RANGE Structure](clrdata-address-range-structure.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-getdefinition.md b/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-getdefinition.md new file mode 100644 index 0000000000000..75231b10d5f72 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-getdefinition.md @@ -0,0 +1,54 @@ +--- +description: "Learn more about: IXCLRDataMethodInstance::GetDefinition Method" +title: "IXCLRDataMethodInstance::GetDefinition Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataMethodInstance::GetDefinition Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataMethodInstance::GetDefinition Method" +helpviewer.keywords: + - "IXCLRDataMethodInstance::GetDefinition Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataMethodInstance::GetDefinition Method + +Gets the method definition which matches this method instance. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetDefinition( + [out] IXCLRDataMethodDefinition **methodDefinition +); +``` + +## Parameters + +`methodDefinition`\ +[out] The methood definition which matches this method instance. + +## Remarks + +The provided method is part of the `IXCLRDataMethodInstance` interface and corresponds to the 5th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataMethodInstance Interface](ixclrdatamethodinstance-interface.md) +- [IXCLRDataMethodDefinition Interface](ixclrdatamethoddefinition-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-getiloffsetsbyaddress-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-getiloffsetsbyaddress-method.md new file mode 100644 index 0000000000000..d289d623aaf79 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-getiloffsetsbyaddress-method.md @@ -0,0 +1,67 @@ +--- +description: "Learn more about: IXCLRDataMethodInstance::GetILOffsetsByAddress Method" +title: "IXCLRDataMethodInstance::GetILOffsetsByAddress Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataMethodInstance::GetILOffsetsByAddress Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataMethodInstance::GetILOffsetsByAddress Method" +helpviewer.keywords: + - "IXCLRDataMethodInstance::GetILOffsetsByAddress Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataMethodInstance::GetILOffsetsByAddress Method + +Gets the IL offset(s) corresponding to the given address for the method. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetILOffsetsByAddress( + [in] CLRDATA_ADDRESS address + [in] ULONG32 offsetsLen, + [out] ULONG32 *offsetsNeeded, + [out, size_is(offsetsLen)] ULONG32 ilOffsets[] +); +``` + +## Parameters + +`address`\ +[in] An address within the method for which to retrieve the corresponding IL offsets. + +`offsetsLen`\ +[in] The size of the `ilOffsets` buffer + +`offsetsNeeded`\ +[out] An indication of how many IL offsets are returned. + +`ilOffsets`\ +[out] The IL offsets corresponding to the given address within the method. + +## Remarks + +The provided method is part of the `IXCLRDataMethodInstance` interface and corresponds to the 13th slot of the virtual method table. Note that CLRDATA_ADDRESS is a 64-bit unsigned integer. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataMethodInstance Interface](ixclrdatamethodinstance-interface.md) +- [IXCLRDataMethodInstance::GetAddressRangesByILOffset Method](ixclrdatamethodinstance-getaddressrangesbyiloffset-method.md) +- [IXCLRDataMethodInstance::GetILAddressMap Method](ixclrdatamethodinstance-getiladdressmap-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-getname.md b/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-getname.md new file mode 100644 index 0000000000000..f3a483b6fe1ac --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-getname.md @@ -0,0 +1,65 @@ +--- +description: "Learn more about: IXCLRDataMethodInstance::GetName Method" +title: "IXCLRDataMethodInstance::GetName Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataMethodInstance::GetName Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataMethodInstance::GetName Method" +helpviewer.keywords: + - "IXCLRDataMethodInstance::GetName Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataMethodInstance::GetName Method + +Gets the fully qualified name for this method instance. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetName( + [in] ULONG32 flags, + [in] ULONG32 bufLen, + [out] ULONG32 *nameLen, + [out, size_is(bufLen)] WCHAR nameBuf[] +); +``` + +## Parameters + +`flags`\ +[in] Reserved. Must be 0. + +`bufLen`\ +[in] The length of the character buffer `nameBuf`. + +`nameLen`\ +[out] The number of characters in the name written to `nameBuf`. + +`nameBuf`\ +[out] A character array containing the fully qualified name of the method instance. + +## Remarks + +The provided method is part of the `IXCLRDataMethodInstance` interface and corresponds to the 7th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataMethodInstance Interface](ixclrdatamethodinstance-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-gettokenandscope-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-gettokenandscope-method.md new file mode 100644 index 0000000000000..4234eff0cccef --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-gettokenandscope-method.md @@ -0,0 +1,58 @@ +--- +description: "Learn more about: IXCLRDataMethodInstance::GetTokenAndScope Method" +title: "IXCLRDataMethodInstance::GetTokenAndScope Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataMethodInstance::GetTokenAndScope Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataMethodInstance::GetTokenAndScope Method" +helpviewer.keywords: + - "IXCLRDataMethodInstance::GetTokenAndScope Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataMethodInstance::GetTokenAndScope Method + +Gets the metadata token and scope of the method. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetTokenAndScope( + [out] mdMethodDef *token, + [out] IXCLRDataModule **mod +); +``` + +## Parameters + +`token`\ +[in] The metadata token for the method. + +`mod`\ +[out] The module for which the metadata token is valid. + +## Remarks + +The provided method is part of the `IXCLRDataMethodInstance` interface and corresponds to the 15th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataMethodInstance Interface](ixclrdatamethodinstance-interface.md) +- [IXCLRDataModule Interface](ixclrdatamodule-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-interface.md b/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-interface.md index 089f9058c5e56..06f5efd6e5d9e 100644 --- a/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-interface.md +++ b/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-interface.md @@ -29,6 +29,15 @@ Provides methods for querying information about a method instance. | ----------------------------------------------------------------------------------------------------------------------- | ------------------------------------------- | | [GetILAddressMap](ixclrdatamethodinstance-getiladdressmap-method.md) | Gets the IL to address mapping information. | | [GetRepresentativeEntryAddress](ixclrdatamethodinstance-getrepresentativeentryaddress-method.md) | Gets the most representative entry point address for the native compilation of all the possible entry points for a method. | +| [Request](ixclrdatamethodinstance-request-method.md) | Requests to populate the buffer given with the method instance's data. | +| [StartEnumExtents](ixclrdatamethodinstance-startenumextents-method.md) | Provides a handle for the enumeration of native code regions associated with the method. | +| [EnumExtent](ixclrdatamethodinstance-enumextent-method.md) | Enumerates the native code regions associated with the method. | +| [EndEnumExtents](ixclrdatamethodinstance-endenumextents-method.md) | Releases the resources used by internal iterators used during native code range enumeration. | +| [GetTokenAndScope](ixclrdatamethodinstance-gettokenandscope-method.md) | Gets the metadata token and scope of the method. | +| [GetILOffsetsByAddress](ixclrdatamethodinstance-getiloffsetsbyaddress-method.md) | Gets the IL offset(s) corresponding to the given address for the method.. | +| [GetAddressRangesByILOffset](ixclrdatamethodinstance-getaddressrangesbyiloffset-method.md) | Returns the native code address(es) which correspond to a given IL offset within the method. | +| [GetDefinition](ixclrdatamethodinstance-getdefinition.md) | Gets the method definition which matches this method instance. | +| [GetName](ixclrdatamethodinstance-getname.md) | Gets the fully qualified name for this method instance. | ## Remarks @@ -36,10 +45,10 @@ This interface lives inside the runtime and is not exposed through any headers o ## Requirements -**Platforms:** See [System Requirements](../../get-started/system-requirements.md). -**Header:** None -**Library:** None -**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] ## See also diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-request-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-request-method.md new file mode 100644 index 0000000000000..021c23987cc43 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-request-method.md @@ -0,0 +1,74 @@ +--- +description: "Learn more about: IXCLRDataMethodInstance::Request Method" +title: "IXCLRDataMethodInstance::Request Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataMethodInstance::Request Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataMethodInstance::Request Method" +helpviewer.keywords: + - "IXCLRDataMethodInstance::Request Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataMethodInstance::Request Method + +Requests to populate the buffer given with the method instance's data. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT Request( + [in] ULONG32 reqCode, + [in] ULONG32 inBufferSize, + [in, size_is(inBufferSize)] BYTE* inBuffer, + [in] ULONG32 outBufferSize, + [out, size_is(outBufferSize)] BYTE* outBuffer); +``` + +## Parameters + +`reqCode`\ +[in] Request type to be sent. + +Requests can be one of the following: + +|Member|Value|Description| +|------------|-----------------|-----------------| +|`CLRDATA_REQUEST_REVISION`|0xe0000000|Request the revision of the method instance. The revision is a ULONG32 numeric value.| + +`inBufferSize`\ +[in] size of the input buffer to be passed in. + +`inBuffer`\ +[in, size_is(inBufferSize)] Buffer pointer for the raw data to be sent in the request. + +`outBufferSize`\ +[in] Size of the output buffer. + +`outBuffer`\ +[out, size_is(outBufferSize)] Buffer pointer to used to store the request response. + +## Remarks + +The provided method is part of the `IXCLRDataProcess` interface and corresponds to the 34th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataMethodInstance Interface](ixclrdatamethodinstance-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-startenumextents-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-startenumextents-method.md new file mode 100644 index 0000000000000..82741c8d79b4f --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatamethodinstance-startenumextents-method.md @@ -0,0 +1,56 @@ +--- +description: "Learn more about: IXCLRDataMethodInstance::StartEnumExtents Method" +title: "IXCLRDataMethodInstance::StartEnumExtents Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataMethodInstance::StartEnumExtents Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataMethodInstance::StartEnumExtents Method" +helpviewer.keywords: + - "IXCLRDataMethodInstance::StartEnumExtents Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataMethodInstance::StartEnumExtents Method + +Provides a handle for the enumeration of native code regions associated with the method. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT StartEnumExtents( + [out] CLRDATA_ENUM *handle +); +``` + +## Parameters + +`handle`\ +[out] A handle for enumerating the native code regions associated with the method. + +## Remarks + +The provided method is part of the `IXCLRDataMethodInstance` interface and corresponds to the 16th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataMethodInstance Interface](ixclrdatamethodinstance-interface.md) +- [IXCLRDataMethodInstance::EnumExtent Method](ixclrdatamethodinstance-enumextent-method.md) +- [IXCLRDataMethodInstance::EndEnumExtents Method](ixclrdatamethodinstance-endenumextents-method.md) +- [CLRDATA_ADDRESS_RANGE Structure](clrdata-address-range-structure.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatamodule-endenumextents-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatamodule-endenumextents-method.md new file mode 100644 index 0000000000000..7bcc7929ea131 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatamodule-endenumextents-method.md @@ -0,0 +1,56 @@ +--- +description: "Learn more about: IXCLRDataModule::EndEnumExtents Method" +title: "IXCLRDataModule::EndEnumExtents Method" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataModule::EndEnumExtents Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataModule::EndEnumExtnets Method" +helpviewer.keywords: + - "IXCLRDataModule::EndEnumExtents Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataModule::EndEnumExtents Method + +Releases the resources used by internal iterators used during memory region enumeration. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT EndEnumExtents( + [in] CLRDATA_ENUM handle +); +``` + +## Parameters + +`handle`\ +[in] A handle for enumerating the memory regions. + +## Remarks + +The provided method is part of the `IXCLRDataModule` interface and corresponds to the 36th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataModule Interface](ixclrdatamodule-interface.md) +- [IXCLRDataModule::StartEnumExtents Method](ixclrdatamodule-startenumextents-method.md) +- [IXCLRDataModule::EnumExtent Method](ixclrdatamodule-enumextent-method.md) +- [CLRDATA_MODULE_EXTENT Structure](clrdata-module-extent-structure.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatamodule-endenummethodinstancesbyname-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatamodule-endenummethodinstancesbyname-method.md new file mode 100644 index 0000000000000..125169f7a7b1b --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatamodule-endenummethodinstancesbyname-method.md @@ -0,0 +1,56 @@ +--- +description: "Learn more about: IXCLRDataModule::EnumEnumMethodInstancesByName Method" +title: "IXCLRDataModule::EndEnumMethodInstancesByName Method" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataModule::EndEnumMethodInstnacesByName Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataModule::EndEnumMethodInstancesByName Method" +helpviewer.keywords: + - "IXCLRDataModule::EndEnumMethodInstancesByName Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataModule::EndEnumMethodInstancesByName Method + +Releases the resources used by internal iterators used during method instance enumeration. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT EndEnumMethodInstancesByName( + [in] CLRDATA_ENUM handle +); +``` + +## Parameters + +`handle`\ +[in] A handle for enumerating the method instances of a given name and AppDomain associated with the module. + +## Remarks + +The provided method is part of the `IXCLRDataModule` interface and corresponds to the 25th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataModule Interface](ixclrdatamodule-interface.md) +- [IXCLRDataMethodInstance Interface](ixclrdatamethodinstance-interface.md) +- [IXCLRDataModule::StartEnumMethodInstancesByName Method](ixclrdatamodule-startenummethodinstancesbyname-method.md) +- [IXCLRDataModule::EnumMethodInstanceByName Method](ixclrdatamodule-enummethodinstancebyname-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatamodule-endenumtypedefinitions-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatamodule-endenumtypedefinitions-method.md new file mode 100644 index 0000000000000..71b92e55372ed --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatamodule-endenumtypedefinitions-method.md @@ -0,0 +1,56 @@ +--- +description: "Learn more about: IXCLRDataModule::EndEnumTypeDefinitions Method" +title: "IXCLRDataModule::EndEnumTypeDefinitions Method" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataModule::EndEnumTypeDefinitions Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataModule::EndEnumTypeDefinitions Method" +helpviewer.keywords: + - "IXCLRDataModule::EndEnumTypeDefinitions Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataModule::EndEnumTypeDefinitions Method + +Releases the resources used by internal iterators used during type definition enumeration. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT EndEnumTypeDefinitions( + [in] CLRDATA_ENUM handle +); +``` + +## Parameters + +`handle`\ +[in] A handle for enumerating the type definitions associated with the module. + +## Remarks + +The provided method is part of the `IXCLRDataModule` interface and corresponds to the 9th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataModule Interface](ixclrdatamodule-interface.md) +- [IXCLRDataTypeDefinition Interface](ixclrdatatypedefinition-interface.md) +- [IXCLRDataModule::StartEnumTypeDefinitions Method](ixclrdatamodule-startenumtypedefinitions-method.md) +- [IXCLRDataModule::EnumTypeDefinition Method](ixclrdatamodule-enumtypedefinition-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatamodule-enumextent-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatamodule-enumextent-method.md new file mode 100644 index 0000000000000..c3afa525bcc76 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatamodule-enumextent-method.md @@ -0,0 +1,60 @@ +--- +description: "Learn more about: IXCLRDataModule::EnumExtent Method" +title: "IXCLRDataModule::EnumExtent Method" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataModule::EnumExtent Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataModule::EnumExtent Method" +helpviewer.keywords: + - "IXCLRDataModule::EnumExtent Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataModule::EnumExtent Method + +Enumerates the memory regions associated with the module. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT EnumExtent( + [in, out] CLRDATA_ENUM *handle, + [out] CLRDATA_MODULE_EXTENT *extent +); +``` + +## Parameters + +`handle`\ +[in, out] A handle for enumerating the memory regions associated with the module. + +`extent`\ +[out] The enumerated memory region associated with the module. + +## Remarks + +The provided method is part of the `IXCLRDataModule` interface and corresponds to the 35th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataModule Interface](ixclrdatamodule-interface.md) +- [IXCLRDataModule::StartEnumExtents Method](ixclrdatamodule-startenumextents-method.md) +- [IXCLRDataModule::EndEnumExtents Method](ixclrdatamodule-endenumextents-method.md) +- [CLRDATA_MODULE_EXTENT Structure](clrdata-module-extent-structure.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatamodule-enummethodinstancebyname-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatamodule-enummethodinstancebyname-method.md new file mode 100644 index 0000000000000..720c66675e831 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatamodule-enummethodinstancebyname-method.md @@ -0,0 +1,60 @@ +--- +description: "Learn more about: IXCLRDataModule::EnumMethodInstanceByName Method" +title: "IXCLRDataModule::EnumMethodInstanceByName Method" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataModule::EnumMethodInstanceByName Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataModule::EnumMethodInstanceByName Method" +helpviewer.keywords: + - "IXCLRDataModule::EnumMethodInstanceByName Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataModule::EnumMethodInstanceByName Method + +Enumerates method instances of a given name and AppDomain associated with the module. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT EnumMethodInstanceByName( + [in, out] CLRDATA_ENUM *handle, + [out] IXCLRDataMethodInstance **method +); +``` + +## Parameters + +`handle`\ +[in, out] A handle for enumerating method instances of a given name and AppDomain associated with the module. + +`method`\ +[out] The enumerated method instance. + +## Remarks + +The provided method is part of the `IXCLRDataModule` interface and corresponds to the 24th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataModule Interface](ixclrdatamodule-interface.md) +- [IXCLRDataMethodInstance Interface](ixclrdatamethodinstance-interface.md) +- [IXCLRDataModule::StartEnumMethodInstancesByName Method](ixclrdatamodule-startenummethodinstancesbyname-method.md) +- [IXCLRDataModule::EndEnumMethodInstancesByName Method](ixclrdatamodule-endenummethodinstancesbyname-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatamodule-enumtypedefinition-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatamodule-enumtypedefinition-method.md new file mode 100644 index 0000000000000..7b2c9642aa2c1 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatamodule-enumtypedefinition-method.md @@ -0,0 +1,60 @@ +--- +description: "Learn more about: IXCLRDataModule::EnumTypeDefinition Method" +title: "IXCLRDataModule::EnumTypeDefinition Method" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataModule::EnumTypeDefinition Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataModule::EnumTypeDefinition Method" +helpviewer.keywords: + - "IXCLRDataModule::EnumTypeDefinition Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataModule::EnumTypeDefinition Method + +Enumerates type definitions associated with the module. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT EnumTypeDefinition( + [in, out] CLRDATA_ENUM *handle, + [out] IXCLRDataTypeDefinition **typeDefinition +); +``` + +## Parameters + +`handle`\ +[in, out] A handle for enumerating type definitions associated with the module. + +`typeDefinition`\ +[out] The enumerated type definition. + +## Remarks + +The provided method is part of the `IXCLRDataModule` interface and corresponds to the 8th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataModule Interface](ixclrdatamodule-interface.md) +- [IXCLRDataTypeDefinition Interface](ixclrdatatypedefinition-interface.md) +- [IXCLRDataModule::StartEnumTypeDefinitions Method](ixclrdatamodule-startenumtypedefinitions-method.md) +- [IXCLRDataModule::EndEnumTypeDefinitions Method](ixclrdatamodule-endenumtypedefinitions-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatamodule-getfilename-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatamodule-getfilename-method.md new file mode 100644 index 0000000000000..ce9a31cad502e --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatamodule-getfilename-method.md @@ -0,0 +1,61 @@ +--- +description: "Learn more about: IXCLRDataModule::GetFileName Method" +title: "IXCLRDataModule::GetFileName Method" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataModule::GetFileName Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataModule::GetFileName Method" +helpviewer.keywords: + - "IXCLRDataModule::GetFileName Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataModule::GetFileName Method + +Gets the full path and filename of the module, if there is one. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetFileName( + [in] ULONG32 bufLen, + [out] ULONG32 *nameLen, + [out, size_is(bufLen)] WCHAR name[] +); +``` + +## Parameters + +`bufLen`\ +[in] The number of characters in the `name` buffer. + +`nameLen`\ +[out] A pointer to the number of characters actually written into the `name` buffer + +`name`\ +A pointer to a character array + +## Remarks + +The provided method is part of the `IXCLRDataModule` interface and corresponds to the 31st slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataModule Interface](ixclrdatamodule-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatamodule-interface.md b/docs/framework/unmanaged-api/debugging/ixclrdatamodule-interface.md index 1f9f8da9cb38f..bebe9ac6c78d0 100644 --- a/docs/framework/unmanaged-api/debugging/ixclrdatamodule-interface.md +++ b/docs/framework/unmanaged-api/debugging/ixclrdatamodule-interface.md @@ -27,7 +27,17 @@ Provides methods for querying information about a loaded module. | Method | Description | | ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- | +| [StartEnumTypeDefinitions](ixclrdatamodule-startenumtypedefinitions-method.md) | Provides a handle to enumerate the type definitions associated with the module. | +| [EnumTypeDefinition](ixclrdatamodule-enumtypedefinition-method.md) | Enumerates the type definitions associated with the module. | +| [EndEnumTypeDefinitions](ixclrdatamodule-endenumtypedefinitions-method.md) | Releases the resources used by internal iterators used during type definition enumeration. | +| [StartEnumMethodInstancesByName](ixclrdatamodule-startenummethodinstancesbyname-method.md) | Provides a handle to enumerate method instances of a given name and AppDomain associated with the module. | +| [EnumMethodInstanceByName](ixclrdatamodule-enummethodinstancebyname-method.md) | Enumerates method instances of a given name and AppDomain associated with the module. | +| [EndEnumMethodInstancesByName](ixclrdatamodule-endenummethodinstancesbyname-method.md) | Releases the resources used by internal iterators used during method instance enumeration. | | [GetMethodDefinitionByToken](ixclrdatamodule-getmethoddefinitionbytoken-method.md) | Gets the method definition corresponding to a given metadata token. | +| [GetFileName](ixclrdatamodule-getfilename-method.md) | Gets the full path and filename for the module, if there is one. | +| [StartEnumExtents](ixclrdatamodule-startenumextents-method.md) | Provides a handle to enumerate memory regions associated with the module. | +| [EnumExtent](ixclrdatamodule-enumextent-method.md) | Enumerates memory regions associated with the module. | +| [EndEnumExtents](ixclrdatamodule-endenumextents-method.md) | Releases the resources used by internal iterators used during memory range enumeration. | | [Request](ixclrdatamodule-request-method.md) | Requests to populate the buffer given with the module's data. | | [GetVersionId](ixclrdatamodule-getversionid-method.md) | Gets the module's version ID. | diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatamodule-startenumextents-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatamodule-startenumextents-method.md new file mode 100644 index 0000000000000..86af8530c1122 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatamodule-startenumextents-method.md @@ -0,0 +1,56 @@ +--- +description: "Learn more about: IXCLRDataModule::StartEnumExtents Method" +title: "IXCLRDataModule::StartEnumExtents Method" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataModule::StartEnumExtents Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataModule::StartEnumExtents Method" +helpviewer.keywords: + - "IXCLRDataModule::StartEnumExtents Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataModule::StartEnumExtents Method + +Provides a handle for the enumeration of memory regions associated with the module. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT StartEnumExtents( + [out] CLRDATA_ENUM *handle +); +``` + +## Parameters + +`handle`\ +[out] A handle for enumerating the memory regions associated with the module. + +## Remarks + +The provided method is part of the `IXCLRDataModule` interface and corresponds to the 34th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataModule Interface](ixclrdatamodule-interface.md) +- [IXCLRDataModule::EnumExtent Method](ixclrdatamodule-enumextent-method.md) +- [IXCLRDataModule::EndEnumExtents Method](ixclrdatamodule-endenumextents-method.md) +- [CLRDATA_MODULE_EXTENT Structure](clrdata-module-extent-structure.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatamodule-startenummethodinstancesbyname-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatamodule-startenummethodinstancesbyname-method.md new file mode 100644 index 0000000000000..c2af65f3ec224 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatamodule-startenummethodinstancesbyname-method.md @@ -0,0 +1,75 @@ +--- +description: "Learn more about: IXCLRDataModule::StartEnumMethodInstancesByName Method" +title: "IXCLRDataModule::StartEnumMethodInstancesByName Method" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataModule::StartEnumMethodInstancesByName Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataModule::StartEnumMethodInstancesByName Method" +helpviewer.keywords: + - "IXCLRDataModule::StartEnumMethodInstancesByName Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataModule::StartEnumMethodInstancesByName Method + +Provides a handle for the enumeration of method instances of a given `name` and `appDomain` associated with the module. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT StartEnumMethodInstancesByName( + [in] LPCWSTR name, + [in] ULONG32 flags, + [in] IXCLRDataAppDomain *appDomain, + [out] CLRDATA_ENUM *handle +); +``` + +## Parameters + +`name`\ +[in] A buffer containing the name for which to enumerate method instances within the given `appDomain` associated with the module. + +`flags`\ +[in] A set of flags governing the enumeration of method instances. + +Flags may contain one or more of the following values: + +| Flag | Value | Description | +|-----------------------------------|------------|-----------------------------------------------------------------| +| `CLRDATA_BYNAME_CASE_SENSITIVE` | 0x00000000 | The enumeration should be case sensitive according to `name`. | +| `CLRDATA_BYNAME_CASE_INSENSITIVE` | 0x00000001 | The enumeration should be case insensitive according to `name`. | + +`appDomain`\ +[in] The AppDomain from which to enumerate method instances of the given `name`. + +`handle`\ +[out] A handle for enumerating method instances of a given `name` and `appDomain` associated with the module. + +## Remarks + +The provided method is part of the `IXCLRDataModule` interface and corresponds to the 23rd slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataModule Interface](ixclrdatamodule-interface.md) +- [IXCLRDataMethodInstance Interface](ixclrdatamethodinstance-interface.md) +- [IXCLRDataModule::EnumMethodInstanceByName Method](ixclrdatamodule-enummethodinstancebyname-method.md) +- [IXCLRDataModule::EndEnumMethodInstancesByName Method](ixclrdatamodule-endenummethodinstancesbyname-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatamodule-startenumtypedefinitions-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatamodule-startenumtypedefinitions-method.md new file mode 100644 index 0000000000000..b6135d68dcb02 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatamodule-startenumtypedefinitions-method.md @@ -0,0 +1,56 @@ +--- +description: "Learn more about: IXCLRDataModule::StartEnumTypeDefinitions Method" +title: "IXCLRDataModule::StartEnumTypeDefinitions Method" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataModule::StartEnumTypeDefinitions Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataModule::StartEnumTypeDefinitions Method" +helpviewer.keywords: + - "IXCLRDataModule::StartEnumTypeDefinitions Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataModule::StartEnumTypeDefinitions Method + +Provides a handle for the enumeration of type definitions associated with the module. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT StartEnumTypeDefinitions( + [out] CLRDATA_ENUM *handle +); +``` + +## Parameters + +`handle`\ +[out] A handle for enumerating type definitions associated with the module. + +## Remarks + +The provided method is part of the `IXCLRDataModule` interface and corresponds to the 7th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataModule Interface](ixclrdatamodule-interface.md) +- [IXCLRDataTypeDefinition Interface](ixclrdatatypedefinition-interface.md) +- [IXCLRDataModule::EnumTypeDefinition Method](ixclrdatamodule-enumtypedefinition-method.md) +- [IXCLRDataModule::EndEnumTypeDefinitions Method](ixclrdatamodule-endenumtypedefinitions-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataprocess-endenumappdomains-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-endenumappdomains-method.md new file mode 100644 index 0000000000000..3e7e6f2c9fecf --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-endenumappdomains-method.md @@ -0,0 +1,56 @@ +--- +description: "Learn more about: IXCLRDataProcess::EndEnumAppDomains Method" +title: "IXCLRDataProcess::EndEnumAppDomains Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataProcess::EndEnumAppDomains Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataProcess::EndEnumAppDomains Method" +helpviewer.keywords: + - "IXCLRDataProcess::EndEnumAppDomains Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataProcess::EndEnumAppDomains Method + +Releases the resources used by internal iterators used during instance enumeration. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT EndEnumAppDomains( + [in] CLRDATA_ENUM handle +); +``` + +## Parameters + +`handle`\ +[out] A handle for enumerating the AppDomains. + +## Remarks + +The provided method is part of the `IXCLRDataProcess` interface and corresponds to the 19th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataProcess Interface](ixclrdataprocess-interface.md) +- [IXCLRDataAppDomain Interface](ixclrdataappdomain-interface.md) +- [IXCLRDataProcess::StartEnumAppDomains Method](ixclrdataprocess-startenumappdomains-method.md) +- [IXCLRDataProcess::EnumAppDomain Method](ixclrdataprocess-enumappdomain-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataprocess-endenummethoddefinitionsbyaddress-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-endenummethoddefinitionsbyaddress-method.md new file mode 100644 index 0000000000000..56d11fa0e4f07 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-endenummethoddefinitionsbyaddress-method.md @@ -0,0 +1,50 @@ +--- +description: "Learn more about: IXCLRDataProcess::EndEnumMethodDefinitionsByAddress Method" +title: "IXCLRDataProcess::EndEnumMethodDefinitionsByAddress Method" +ms.date: "01/16/2019" +api.name: + - "IXCLRDataProcess::EndEnumMethodDefinitionsByAddress Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataProcess::EndEnumMethodDefinitionsByAddress Method" +helpviewer.keywords: + - "IXCLRDataProcess::EndEnumMethodDefinitionsByAddress Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "cshung" +ms.author: "andrewau" +--- +# IXCLRDataProcess::EndEnumMethodDefinitionsByAddress Method + +Releases the resources used by internal iterators used during definition enumeration. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT EndEnumMethodDefinitionsByAddress( + [in] CLRDATA_ENUM handle +); +``` + +## Parameters + +`handle`\ +[out] A handle for enumerating the method definitions. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [CLRDataSourceType Enumeration](clrdatasourcetype-enumeration.md) +- [Debugging](index.md) +- [IXCLRDataProcess Interface](ixclrdataprocess-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataprocess-enumappdomain-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-enumappdomain-method.md new file mode 100644 index 0000000000000..da0f2343eb88f --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-enumappdomain-method.md @@ -0,0 +1,60 @@ +--- +description: "Learn more about: IXCLRDataProcess::EnumAppDomain Method" +title: "IXCLRDataProcess::EnumAppDomain Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataProcess::EnumAppDomain Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataProcess::EnumAppDomain Method" +helpviewer.keywords: + - "IXCLRDataProcess::EnumAppDomain Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataProcess::EnumAppDomain Method + +Enumerates the AppDomains of this process. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT EnumAppDomain( + [in] CLRDATA_ENUM *handle, + [out] IXCLRAppDomain **appDomain +); +``` + +## Parameters + +`handle`\ +[in] A handle for enumerating the AppDomains. + +`appDomain`\ +[out] The enumerated AppDomain. + +## Remarks + +The provided method is part of the `IXCLRDataProcess` interface and corresponds to the 18th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataProcess Interface](ixclrdataprocess-interface.md) +- [IXCLRDataAppDomain Interface](ixclrdataappdomain-interface.md) +- [IXCLRDataProcess::StartEnumAppDomains Method](ixclrdataprocess-startenumappdomains-method.md) +- [IXCLRDataProcess::EndEnumAppDomains Method](ixclrdataprocess-endenumappdomains-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataprocess-enummethoddefinitionbyaddress-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-enummethoddefinitionbyaddress-method.md new file mode 100644 index 0000000000000..9ea4655488d37 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-enummethoddefinitionbyaddress-method.md @@ -0,0 +1,59 @@ +--- +description: "Learn more about: IXCLRDataProcess::EnumMethodDefinitionByAddress Method" +title: "IXCLRDataProcess::EnumMethodDefinitionByAddress Method" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataProcess::EnumMethodDefinitionByAddress Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataProcess::EnumMethodDefinitionByAddress Method" +helpviewer.keywords: + - "IXCLRDataProcess::EnumMethodDefinitionByAddress Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataProcess::EnumMethodDefinitionByAddress Method + +Enumerates the method definitions of this process at an IL code address. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT EnumMethodDefinitionByAddress( + [in] CLRDATA_ENUM *handle, + [out] IXCLRDataMethodDefinition **method +); +``` + +## Parameters + +`handle`\ +[in] A handle for enumerating the method definitions. + +`method`\ +[out] The enumerated method definition. + +## Remarks + +The provided method is part of the `IXCLRDataProcess` interface and corresponds to the 45th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataProcess Interface](ixclrdataprocess-interface.md) +- [IXCLRDataProcess::StartEnumMethodDefinitionsByAddress Method](ixclrdataprocess-startenummethoddefinitionsbyaddress-method.md) +- [IXCLRDataProcess::EndEnumMethodDefinitionsByAddress Method](ixclrdataprocess-endenummethoddefinitionsbyaddress-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataprocess-followstub-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-followstub-method.md new file mode 100644 index 0000000000000..71d87477ebfe4 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-followstub-method.md @@ -0,0 +1,82 @@ +--- +description: "Learn more about: IXCLRDataProcess::FollowStub Method" +title: "IXCLRDataProcess::FollowStub Method" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataProcess::FollowStub Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataProcess::FollowStub Method" +helpviewer.keywords: + - "IXCLRDataProcess::FollowStub Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataProcess::FollowStub Method + +Given an address which is a CLR stub (and potentially state from a previous follow) determine the next execution address at which to check whether the stub has been exited. + +NOTE: This method is obsolete. Callers should utilize `IXCLRDataProcess::FollowStub2` whenever available. Such is available if the process revision as returned by `IXCLRDataProcess::Request` is at least 7. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT FollowStub( + [in] ULONG32 inFlags, + [in] CLRDATA_ADDRESS inAddr, + [in] CLRDATA_FOLLOW_STUB_BUFFER *inBuffer, + [out] CLRDATA_ADDRESS *outAddr, + [out] CLRDATA_FOLLOW_STUB_BUFFER *outBuffer, + [out] ULONG32 *outFlags +); +``` + +## Parameters + +`inFlags`\ +[in] A set of flags describing how to follow the stub. This must be a value of the `CLRDataFollowStubInFlag` enumeration which presently contains only one value: CLRDATA_FOLLOW_STUB_DEFAULT (0). + +`inAddr`\ +[in] The address of the stub to follow + +`inBuffer`\ +[in] An opaque data buffer used internally to maintain the state of walking a chain of stubs. This should be NULL on the initial call to the `FollowStub` method. + +`outAddr`\ +[out] The next execution address determined from following the stub. + +`outBuffer`\ +[out] An opaque data buffer used internally to maintain the state of walking a chain of stubs. + +`outFlags`\ +[out] A set of flags describing the result of following the stub. This is a value of the `CLRDataFollowStubOutFlag` enumeration. If the value is `CLRDATA_FOLLOW_STUB_INTERMEDIATE` (0), the result is an intermediate step in following the stub and the caller can call FollowStub again. If the value is `CLRDATA_FOLLOW_STUB_EXIT` (1), this is the end of the stub chain and the `outAddr` is the execution address at the end of the chain. + +## Remarks + +A given address can be determined to be a stub or not via usage of the `IXCLRDataProcess::GetAddressType` method returning a type of `CLRDATA_ADDRESS_RUNTIME_MANAGED_STUB` or `CLRDATA_ADDRESS_RUNTIME_UNMANAGED_STUB`. + +The provided method is part of the `IXCLRDataProcess` interface and corresponds to the 47th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataProcess Interface](ixclrdataprocess-interface.md) +- [IXCLRDataProcess::FollowStub2 Method](ixclrdataprocess-followstub2-method.md) +- [IXCLRDataProcess::Request Method](ixclrdataprocess-request-method.md) +- [IXCLRDataProcess::GetAddressType Method](ixclrdataprocess-getaddresstype-method.md) +- [CLRDataFollowStubInFlag Enumeration](clrdatafollowstubinflag-enumeration.md) +- [CLRDataFollowStubOutFlag Enumeration](clrdatafollowstuboutflag-enumeration.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataprocess-followstub2-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-followstub2-method.md new file mode 100644 index 0000000000000..a4dc3d63db3b9 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-followstub2-method.md @@ -0,0 +1,87 @@ +--- +description: "Learn more about: IXCLRDataProcess::FollowStub2 Method" +title: "IXCLRDataProcess::FollowStub2 Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataProcess::FollowStub2 Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataProcess::FollowStub2 Method" +helpviewer.keywords: + - "IXCLRDataProcess::FollowStub2 Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataProcess::FollowStub2 Method + +Given an address which is a CLR stub (and potentially state from a previous follow) determine the next execution address at which to check whether the stub has been exited. + +NOTE: This method is only available if the process revision as returned by `IXCLRDataProcess::Request` is at least 7. For lower process revisions, callers should use the obsolete `IXCLRDataProcess::FollowStub` method. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT FollowStub( + [in] IXCLRDataTask *task, + [in] ULONG32 inFlags, + [in] CLRDATA_ADDRESS inAddr, + [in] CLRDATA_FOLLOW_STUB_BUFFER *inBuffer, + [out] CLRDATA_ADDRESS *outAddr, + [out] CLRDATA_FOLLOW_STUB_BUFFER *outBuffer, + [out] ULONG32 *outFlags +); +``` + +## Parameters + +`task`\ +[in] The task for which to follow the stub. + +`inFlags`\ +[in] A set of flags describing how to follow the stub. This must be a value of the `CLRDataFollowStubInFlag` enumeration which presently contains only one value: CLRDATA_FOLLOW_STUB_DEFAULT (0). + +`inAddr`\ +[in] The address of the stub to follow + +`inBuffer`\ +[in] An opaque data buffer used internally to maintain the state of walking a chain of stubs. This should be NULL on the initial call to the `FollowStub` method. + +`outAddr`\ +[out] The next execution address determined from following the stub. + +`outBuffer`\ +[out] An opaque data buffer used internally to maintain the state of walking a chain of stubs. + +`outFlags`\ +[out] A set of flags describing the result of following the stub. This is a value of the `CLRDataFollowStubOutFlag` enumeration. If the value is `CLRDATA_FOLLOW_STUB_INTERMEDIATE` (0), the result is an intermediate step in following the stub and the caller can call FollowStub again. If the value is `CLRDATA_FOLLOW_STUB_EXIT` (1), this is the end of the stub chain and the `outAddr` is the execution address at the end of the chain. + +## Remarks + +A given address can be determined to be a stub or not via usage of the `IXCLRDataProcess::GetAddressType` method returning a type of `CLRDATA_ADDRESS_RUNTIME_MANAGED_STUB` or `CLRDATA_ADDRESS_RUNTIME_UNMANAGED_STUB`. + +The provided method is part of the `IXCLRDataProcess` interface and corresponds to the 48th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataProcess Interface](ixclrdataprocess-interface.md) +- [IXCLRDataTask Interface](ixclrdatatask-interface.md) +- [IXCLRDataProcess::FollowStub Method](ixclrdataprocess-followstub-method.md) +- [IXCLRDataProcess::Request Method](ixclrdataprocess-request-method.md) +- [IXCLRDataProcess::GetAddressType Method](ixclrdataprocess-getaddresstype-method.md) +- [CLRDataFollowStubInFlag Enumeration](clrdatafollowstubinflag-enumeration.md) +- [CLRDataFollowStubOutFlag Enumeration](clrdatafollowstuboutflag-enumeration.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataprocess-getaddresstype-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-getaddresstype-method.md new file mode 100644 index 0000000000000..436bed1c1afa8 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-getaddresstype-method.md @@ -0,0 +1,58 @@ +--- +description: "Learn more about: IXCLRDataProcess::GetAddressType Method" +title: "IXCLRDataProcess::GetAddressType Method" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataProcess::GetAddressType Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataProcess::GetAddressType Method" +helpviewer.keywords: + - "IXCLRDataProcess::GetAddressType Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataProcess::GetAddressType Method + +Returns an indication of the type of data referred to by the given address. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetAddressType( + [in] CLRDATA_ADDRESS address, + [out] CLRDataAddressType *type +); +``` + +## Parameters + +`address`\ +[in] The address for which to return an indication of the type of data. + +`type`\ +[out] An indication of the type of data referred to by the given address + +## Remarks + +The provided method is part of the `IXCLRDataProcess` interface and corresponds to the 15th slot of the virtual method table. The `IXCLRDataAppDomain*` returned is used for interaction with other APIs. Note that CLRDATA_ADDRESS is a 64-bit unsigned integer. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataProcess Interface](ixclrdataprocess-interface.md) +- [CLRDataAddressType Enumeration](clrdataaddresstype-enumeration.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataprocess-getmodulebyaddress-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-getmodulebyaddress-method.md new file mode 100644 index 0000000000000..1589bae2abd41 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-getmodulebyaddress-method.md @@ -0,0 +1,58 @@ +--- +description: "Learn more about: IXCLRDataProcess::GetModuleByAddress Method" +title: "IXCLRDataProcess::GetModuleByAddress Method" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataProcess::GetModuleByAddress Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataProcess::GetModuleByAddress Method" +helpviewer.keywords: + - "IXCLRDataProcess::GetModuleByAddress Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataProcess::GetModuleByAddress Method + +Looks up a managed module by address. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetModuleByAddress( + [in] CLRDATA_ADDRESS address, + [out] IXCLRDataModule **module +); +``` + +## Parameters + +`address`\ +[in] The address for which to look up the associated module + +`module`\ +[out] The managed module at the given address + +## Remarks + +The provided method is part of the `IXCLRDataProcess` interface and corresponds to the 27th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataProcess Interface](ixclrdataprocess-interface.md) +- [IXCLRDataModule Interface](ixclrdatamodule-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataprocess-gettaskbyosthreadid-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-gettaskbyosthreadid-method.md new file mode 100644 index 0000000000000..3fc0f157a95e7 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-gettaskbyosthreadid-method.md @@ -0,0 +1,59 @@ +--- +description: "Learn more about: IXCLRDataProcess::GetTaskByOSThreadID Method" +title: "IXCLRDataProcess::GetTaskByOSThreadID Method" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataProcess::GetTaskByOSThreadID Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataProcess::GetTaskByOSThreadID Method" +helpviewer.keywords: + - "IXCLRDataProcess::GetTaskByOSThreadID Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer-msft" +ms.author: "wmessmer" +--- +# IXCLRDataProcess::GetTaskByOSThreadID Method + +Gets the managed task running on the given OS thread by its thread ID. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetTaskByOSThreadID( + [in] ULONG32 osThreadID, + [out] IXCLRDataTask **task +); +``` + +## Parameters + +`osThreadID`\ +[in] The operating system thread ID for which to find the associated managed task + +`task`\ +[out] The managed task + +## Remarks + +The provided method is part of the `IXCLRDataProcess` interface and corresponds to the 8th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataProcess Interface](ixclrdataprocess-interface.md) +- [IXCLRDataProcess::GetTaskByUniqueID Method](ixclrdataprocess-gettaskbyuniqueid-method.md) +- [IXCLRDataTask Interface](ixclrdatatask-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataprocess-gettaskbyuniqueid-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-gettaskbyuniqueid-method.md new file mode 100644 index 0000000000000..534a6e4bc8c5d --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-gettaskbyuniqueid-method.md @@ -0,0 +1,59 @@ +--- +description: "Learn more about: IXCLRDataProcess::GetTaskByUniqueID Method" +title: "IXCLRDataProcess::GetTaskByUniqueID Method" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataProcess::GetTaskByUniqueID Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataProcess::GetTaskByUniqueID Method" +helpviewer.keywords: + - "IXCLRDataProcess::GetTaskByUniqueID Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataProcess::GetTaskByUniqueID Method + +Gets a managed task in a process based on its unique identifier. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetTaskByUniqueID( + [in] ULONG64 id, + [out] IXCLRDataTask **task +); +``` + +## Parameters + +`id`\ +[in] The unique identifier of the managed task. + +`task`\ +[out] The managed task. + +## Remarks + +The provided method is part of the `IXCLRDataProcess` interface and corresponds to the 9th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataProcess Interface](ixclrdataprocess-interface.md) +- [IXCLRDataProcess::GetTaskByOSThreadID Method](ixclrdataprocess-gettaskbyosthreadid-method.md) +- [IXCLRDataTask Interface](ixclrdatatask-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataprocess-interface.md b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-interface.md index 9df6236ae6b4c..96f8f33fe55f4 100644 --- a/docs/framework/unmanaged-api/debugging/ixclrdataprocess-interface.md +++ b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-interface.md @@ -35,6 +35,23 @@ Provides methods for querying information about a process. | [StartEnumMethodInstancesByAddress](ixclrdataprocess-startenummethodinstancesbyaddress-method.md) | Provides a handle to enumerate the method instances of `AppDomain` starting at a given address. | | [EnumMethodInstanceByAddress](ixclrdataprocess-enummethodinstancebyaddress-method.md) | Enumerates the method instances of this process starting at an address offset. | | [EndEnumMethodInstancesByAddress](ixclrdataprocess-endenummethodinstancesbyaddress-method.md) | Releases the resources used by internal iterators used during instance enumeration. | +| [GetTaskByOSThreadID](ixclrdataprocess-gettaskbyosthreadid-method.md) | Gets a managed task by its OS thread id. | +| [GetTaskByUniqueID](ixclrdataprocess-gettaskbyuniqueid-method.md) | Gets a managed task by its unqiue id. | +| [GetModuleByAddress](ixclrdataprocess-getmodulebyaddress-method.md) | Looks up a managed module by address. | +| [StartEnumMethodDefinitionsByAddress](ixclrdataprocess-startenummethoddefinitionsbyaddress-method.md) | Provides a handle to enumerate method instances by IL code address. | +| [EnumMethodDefinitionByAddress](ixclrdataprocess-enummethoddefinitionbyaddress-method.md) | Enumerates method instances by IL code address. | +| [EndEnumMethodDefinitionsByAddress](ixclrdataprocess-endenummethoddefinitionsbyaddress-method.md) | Releases the resources used by internal iterators used during instance enumeration. | +| [FollowStub](ixclrdataprocess-followstub-method.md) | Given an address which is a CLR stub (and potentially state from a previous follow) determine the next execution address at which to check whether the stub has been exited. | +| [FollowStub2](ixclrdataprocess-followstub2-method.md) | Given an address which is a CLR stub (and potentially state from a previous follow) determine the next execution address at which to check whether the stub has been exited. | +| [TranslateExceptionRecordToNotification](ixclrdataprocess-translateexceptionrecordtonotification-method.md) | Translates a system exception record into a particular kind of notification if possible. | +| [GetAddressType](ixclrdataprocess-getaddresstype-method.md) | Returns an indication of the type of data referred to by the given address. | +| [SetCodeNotifications](ixclrdataprocess-setcodenotifications-method.md) | Requests notifications when code is generated or discarded for a method. | +| [SetAllCodeNotifications](ixclrdataprocess-setallcodenotifications-method.md) | Requests notifications when code is generated or discarded for any method instance in a given `IXCLRDataModule`. | +| [Request](ixclrdataprocess-request-method.md) | Requests to populate the buffer given with the process's data. | +| [SetOtherNotificationFlags](ixclrdataprocess-setothernotificationflags-method.md) | Requests notifications when specific events are raised by the CLR. | +| [StartEnumAppDomains](ixclrdataprocess-startenumappdomains-method.md) | Provides a handle to enumerate AppDomains in the process. | +| [EnumAppDomain](ixclrdataprocess-enumappdomain-method.md) | Enumerates AppDomains in the process. | +| [EndEnumAppDomains](ixclrdataprocess-endenumappdomains-method.md) | Releases the resources used by internal iterators used during AppDomain enumeration. | ## Remarks diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataprocess-request-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-request-method.md new file mode 100644 index 0000000000000..34e09f97079d8 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-request-method.md @@ -0,0 +1,74 @@ +--- +description: "Learn more about: IXCLRDataProcess::Request Method" +title: "IXCLRDataProcess::Request Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataProcess::Request Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataProcess::Request Method" +helpviewer.keywords: + - "IXCLRDataProcess::Request Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataProcess::Request Method + +Requests to populate the buffer given with the process's data. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT Request( + [in] ULONG32 reqCode, + [in] ULONG32 inBufferSize, + [in, size_is(inBufferSize)] BYTE* inBuffer, + [in] ULONG32 outBufferSize, + [out, size_is(outBufferSize)] BYTE* outBuffer); +``` + +## Parameters + +`reqCode`\ +[in] Request type to be sent. + +Requests can be one of the following: + +|Member|Value|Description| +|------------|-----------------|-----------------| +|`CLRDATA_REQUEST_REVISION`|0xe0000000|Request the revision of the process. The revision is a ULONG32 numeric value.| + +`inBufferSize`\ +[in] size of the input buffer to be passed in. + +`inBuffer`\ +[in, size_is(inBufferSize)] Buffer pointer for the raw data to be sent in the request. + +`outBufferSize`\ +[in] Size of the output buffer. + +`outBuffer`\ +[out, size_is(outBufferSize)] Buffer pointer to used to store the request response. + +## Remarks + +The provided method is part of the `IXCLRDataProcess` interface and corresponds to the 34th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataProcess Interface](ixclrdataprocess-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataprocess-setallcodenotifications-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-setallcodenotifications-method.md new file mode 100644 index 0000000000000..871ca2d2fadcf --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-setallcodenotifications-method.md @@ -0,0 +1,57 @@ +--- +description: "Learn more about: IXCLRDataProcess::SetAllCodeNotifications Method" +title: "IXCLRDataProcess::SetAllCodeNotifications Method" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataProcess::SetAllCodeNotifications Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataProcess::SetAllCodeNotifications Method" +helpviewer.keywords: + - "IXCLRDataProcess::SetAllCodeNotifications Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataProcess::SetAllCodeNotifications Method + +Requests notifications when code is generated or discarded for any method instance in a given `IXCLRDataModule` + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT SetAllCodeNotifications( + [in] IXCLRDataModule *mod, + [in] ULONG32 flags +); +``` + +## Parameters + +`mod`\ +[in] The module for which to request code notifications. + +`flags`\ +[in] The flags defining what kind of code notifications should be delivered. The `flags` argument is one or more of the flags defined by the `CLRDataMethodCodeNotification` enumeration. + +## Remarks + +The provided method is part of the `IXCLRDataProcess` interface and corresponds to the 37th slot of the virtual method table. The `IXCLRDataAppDomain*` returned is used for interaction with other APIs. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataProcess Interface](ixclrdataprocess-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataprocess-setcodenotifications-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-setcodenotifications-method.md new file mode 100644 index 0000000000000..09495b6807237 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-setcodenotifications-method.md @@ -0,0 +1,75 @@ +--- +description: "Learn more about: IXCLRDataProcess::SetCodeNotifications Method" +title: "IXCLRDataProcess::SetCodeNotifications Method" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataProcess::SetCodeNotifications Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataProcess::SetCodeNotifications Method" +helpviewer.keywords: + - "IXCLRDataProcess::SetCodeNotifications Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataProcess::SetCodeNotifications Method + +Requests notifications when code is generated or discarded for a method. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT SetCodeNotifications( + [in] ULONG32 numTokens, + [in, size_is(numTokens)] IXCLRDataModule* mods[], + [in] IXCLRDataModule *singleMod, + [in, size_is(numTokens)] mdMethodDef tokens[], + [in, size_is(numTokens)] ULONG32 flags[], + [in] ULONG32 singleFlags +); +``` + +## Parameters + +`numTokens`\ +[in] The number of method tokens for which to request code notifications. + +`mods`\ +[in] The module associated with each method token. If this is NULL, `singleMod` is used as the module for all tokens in the `tokens` array. + +`singleMod`\ +[in] The module associated with all method tokens. This argument is only used if `mods` is NULL. + +`tokens`\ +[in] The method tokens for which to request code notifications. + +`flags`\ +[in] The flags associated with each method token. If this is NULL, `singleFlags` is used as the flags for all tokens in the `tokens` array. Each entry in the `flags` array is one or more of the flags defined by the `CLRDataMethodCodeNotification` enumeration. + +`singleFlags`\ +[in] The flags associated with all method tokens. This argument is only used if `flags` is NULL. The `singleFlags` argument is one or more of the flags defined by the `CLRDataMethodCodeNotification` enumeration. + +## Remarks + +The provided method is part of the `IXCLRDataProcess` interface and corresponds to the 41st slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [CLRDataMethodCodeNotification Enumeration](clrdatamethodcodenotification-enumeration.md) +- [IXCLRDataProcess Interface](ixclrdataprocess-interface.md) +- [IXCLRDataModule Interface](ixclrdatamodule-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataprocess-setothernotificationflags-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-setothernotificationflags-method.md new file mode 100644 index 0000000000000..943b57cada5c8 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-setothernotificationflags-method.md @@ -0,0 +1,54 @@ +--- +description: "Learn more about: IXCLRDataProcess::SetOtherNotificationFlags Method" +title: "IXCLRDataProcess::SetOtherNotificationFlags Method" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataProcess::SetOtherNotificationFlags Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataProcess::SetOtherNotificationFlags Method" +helpviewer.keywords: + - "IXCLRDataProcess::SetOtherNotificationFlags Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataProcess::SetOtherNotificationFlags Method + +Requests notifications when specific events are raised by the CLR. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT SetOtherNotificationFlags( + [in] ULONG32 flags +); +``` + +## Parameters + +`flags`\ +[in] A set of flags defining which notifications should be delivered. The `flags` argument is one or more of the flags defined by the `CLRDataOtherNotifyFlag` enumeration. + +## Remarks + +The provided method is part of the `IXCLRDataProcess` interface and corresponds to the 43rd slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataProcess Interface](ixclrdataprocess-interface.md) +- [CLRDataOtherNotifyFlag Enumeration](clrdataothernotifyflag-enumeration.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataprocess-startenumappdomains-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-startenumappdomains-method.md new file mode 100644 index 0000000000000..ee78d3b720d2b --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-startenumappdomains-method.md @@ -0,0 +1,56 @@ +--- +description: "Learn more about: IXCLRDataProcess::StartEnumAppDomains Method" +title: "IXCLRDataProcess::StartEnumAppDomains Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataProcess::StartEnumAppDomains Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataProcess::StartEnumAppDomains Method" +helpviewer.keywords: + - "IXCLRDataProcess::StartEnumAppDomains Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataProcess::StartEnumAppDomains Method + +Provides a handle to enumerate the AppDomains within the process. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT StartEnumAppDomains( + [out] CLRDATA_ENUM *handle +); +``` + +## Parameters + +`handle`\ +[out] A handle for enumerating the AppDomains. + +## Remarks + +The provided method is part of the `IXCLRDataProcess` interface and corresponds to the 17th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataProcess Interface](ixclrdataprocess-interface.md) +- [IXCLRDataAppDomain Interface](ixclrdataappdomain-interface.md) +- [IXCLRDataProcess::EnumAppDomain Method](ixclrdataprocess-enumappdomain-method.md) +- [IXCLRDataProcess::EndEnumAppDomains Method](ixclrdataprocess-endenumappdomains-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataprocess-startenummethoddefinitionsbyaddress-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-startenummethoddefinitionsbyaddress-method.md new file mode 100644 index 0000000000000..5ae9fbbe9961d --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-startenummethoddefinitionsbyaddress-method.md @@ -0,0 +1,59 @@ +--- +description: "Learn more about: IXCLRDataProcess::StartEnumMethodDefinitionsByAddress Method" +title: "IXCLRDataProcess::StartEnumMethodDefinitionsByAddress Method" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataProcess::StartEnumMethodDefinitionsByAddress Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataProcess::StartEnumMethodDefinitionsByAddress Method" +helpviewer.keywords: + - "IXCLRDataProcess::StartEnumMethodDefinitionsByAddress Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataProcess::StartEnumMethodDefinitionsByAddress Method + +Provides a handle to enumerate method definitions given an IL code address. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT StartEnumMethodDefinitionsByAddress( + [in] CLRDATA_ADDRESS address, + [out] CLRDATA_ENUM *handle +); +``` + +## Parameters + +`address`\ +[in] The IL code address for which to enumerate method definitions. + +`handle`\ +[out] A handle for enumerating the method definitions. + +## Remarks + +The provided method is part of the `IXCLRDataProcess` interface and corresponds to the 44th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataProcess Interface](ixclrdataprocess-interface.md) +- [IXCLRDataProcess::EnumMethodDefinitionByAddress Method](ixclrdataprocess-enummethoddefinitionbyaddress-method.md) +- [IXCLRDataProcess::EndEnumMethodDefinitionsByAddress Method](ixclrdataprocess-endenummethoddefinitionsbyaddress-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdataprocess-translateexceptionrecordtonotification-method.md b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-translateexceptionrecordtonotification-method.md new file mode 100644 index 0000000000000..b2789529da8e1 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdataprocess-translateexceptionrecordtonotification-method.md @@ -0,0 +1,58 @@ +--- +description: "Learn more about: IXCLRDataProcess::TranslateExceptionRecordToNotification Method" +title: "IXCLRDataProcess::TranslateExceptionRecordToNotification Method" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataProcess::TranslateExceptionRecordToNotification Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataProcess::TranslateExceptionRecordToNotification Method" +helpviewer.keywords: + - "IXCLRDataProcess::TranslateExceptionRecordToNotification Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataProcess::TranslateExceptionRecordToNotification Method + +Translates a system exception record into a particular kind of notification if possible. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT TranslateExceptionRecordToNotification( + [in] EXCEPTION_RECORD64 *record, + [in] IXCLRDataExceptionNotification *notify +); +``` + +## Parameters + +`record`\ +[in] A pointer to the system exception record to translate into a CLR notification + +`notify`\ +[in] An caller provided implementation of IXCLRDataExceptionNotificationN interfaces. If the system exception record given by `record` corresponds to a particular CLR notification, one of the methods on this IXCLRDataExceptionNotification interface will be immediately called back. + +## Remarks + +The provided method is part of the `IXCLRDataProcess` interface and corresponds to the 33rd slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataProcess Interface](ixclrdataprocess-interface.md) +- [IXCLRDataExceptionNotification Interface](ixclrdataexceptionnotification-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatastackwalk-getframe-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatastackwalk-getframe-method.md new file mode 100644 index 0000000000000..477337309bf27 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatastackwalk-getframe-method.md @@ -0,0 +1,55 @@ +--- +description: "Learn more about: IXCLRDataStackWalk::GetFrame Method" +title: "IXCLRDataStackWalk::GetFrame Method" +ms.date: "07/03/2024" +api.name: + - "IXCLRDataStackWalk::GetFrame Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataStackWalk::GetFrame Method" +helpviewer.keywords: + - "IXCLRDataStackWalk::GetFrame Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataStackWalk::GetFrame Method + +Gets the current frame of the stack walk, if it is recognized. Note that upon creation, the stack walk is positioned "before" the first frame on the stack. Debuggers must call the `Next` method to advance to the first frame before any other functions will work. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetFrame( + [out] IXCLRDataFrame **frame +); +``` + +## Parameters + +`frame`\ +[out] The current frame of the stack walk. + +## Remarks + +The provided method is part of the `IXCLRDataStackWalk` interface and corresponds to the 9th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataStackWalk Interface](ixclrdatastackwalk-interface.md) +- [IXCLRDataFrame Interface](ixclrdataframe-interface.md) +- [IXCLRDataStackWalk::Next Method](ixclrdatastackwalk-next-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatastackwalk-getframetype-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatastackwalk-getframetype-method.md new file mode 100644 index 0000000000000..e5d6ee91cd501 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatastackwalk-getframetype-method.md @@ -0,0 +1,59 @@ +--- +description: "Learn more about: IXCLRDataStackWalk::GetFrameType Method" +title: "IXCLRDataStackWalk::GetFrameType Method" +ms.date: "07/03/2024" +api.name: + - "IXCLRDataStackWalk::GetFrameType Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataStackWalk::GetFrameType Method" +helpviewer.keywords: + - "IXCLRDataStackWalk::GetFrameType Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataSTackWalk::GetFrameType Method + +Returns information about the type of the current frame. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetFrameType( + [out] CLRDataSimpleFrameType *simpleType, + [out] CLRDataDetailedFrameType *detailedType +); +``` + +## Parameters + +`simpleType`\ +The simple type of the current frame. + +`detailedType`\ +The detailed type of the current frame. + +## Remarks + +The provided method is part of the `IXCLRDataStackWalk` interface and corresponds to the 8th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataStackWalk Interface](ixclrdatastackwalk-interface.md) +- [CLRDataSimpleFrameType Enumeration](clrdatasimpleframetype-enumeration.md) +- [CLRDataDetailedFrameType Enumeration](clrdatadetailedframetype-enumeration.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatastackwalk-interface.md b/docs/framework/unmanaged-api/debugging/ixclrdatastackwalk-interface.md new file mode 100644 index 0000000000000..3efd1186640f1 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatastackwalk-interface.md @@ -0,0 +1,50 @@ +--- +description: "Learn more about: IXCLRDataStackWalk Interface" +title: "IXCLRDataStackWalk Interface" +ms.date: "07/03/2024" +api.name: + - "IXCLRDataStackWalk Interface" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataStackWalk Interface" +helpviewer.keywords: + - "IXCLRDataStackWalk Interface [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataStackWalk Interface + +Provides methods for walking the stack. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Methods + +| Method | Description | +| ----------------------------------------------------------------------------------------------------------------------- | ------------------------------------------- | +| [SetContext](ixclrdatastackwalk-setcontext-method.md) | Change the context of this stack walk. | +| [GetFrameType](ixclrdatastackwalk-getframetype-method.md) | Gets information about the type of the current frame. | +| [GetFrame](ixclrdatastackwalk-getframe-method.md) | Gets the current frame if it is recognized. | +| [Request](ixclrdatastackwalk-request-method.md) | Requests to populate the buffer given with the stack walker's data. | +| [Next](ixclrdatastackwalk-next-method.md) | Moves the stack walker to the next frame. | + +## Remarks + +This interface lives inside the runtime and is not exposed through any headers or library files. However, it's a COM interface that derives from `IUnknown` with GUID `E59D8D22-ADA7-49a2-89B5-A415AFCFC95F` that can be obtained through the usual COM mechanisms. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatastackwalk-next-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatastackwalk-next-method.md new file mode 100644 index 0000000000000..363cf700d5169 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatastackwalk-next-method.md @@ -0,0 +1,52 @@ +--- +description: "Learn more about: IXCLRDataStackWalk::Next Method" +title: "IXCLRDataStackWalk::Next Method" +ms.date: "07/03/2024" +api.name: + - "IXCLRDataStackWalk::Next Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataStackWalk::Next Method" +helpviewer.keywords: + - "IXCLRDataStackWalk::Next Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataStackWalk::Next Method + +Attempts to advance the stack walk to the next frame that matches the stack walk's filter. If the current frame type is `CLRDATA_UNRECOGNIZED_FRAME`, the `Next` method will be unable to advance. (The debugger will have to walk the unrecognized frame itself, reset the walk's context, and try again). + +Note that upon creation, the stack walk is positioned "before" the first frame on the stack. Debuggers must call the `Next` method to advance to the first frame before any other functions will work. The function will output S_FALSE when there are no more frames that meet its filter criteria. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT Next(); +``` + +## Parameters + +None + +## Remarks + +The provided method is part of the `IXCLRDataStackWalk` interface and corresponds to the 6th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataStackWalk Interface](ixclrdatastackwalk-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatastackwalk-request-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatastackwalk-request-method.md new file mode 100644 index 0000000000000..54336f9664037 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatastackwalk-request-method.md @@ -0,0 +1,76 @@ +--- +description: "Learn more about: IXCLRDataStackWalk::Request Method" +title: "IXCLRDataStackWalk::Request Method" +ms.date: "07/03/2024" +api.name: + - "IXCLRDataStackWalk::Request Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataStackWalk::Request Method" +helpviewer.keywords: + - "IXCLRDataStackWalk::Request Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataStackWalk::Request Method + +Requests to populate the buffer given with the process's data. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT Request( + [in] ULONG32 reqCode, + [in] ULONG32 inBufferSize, + [in, size_is(inBufferSize)] BYTE* inBuffer, + [in] ULONG32 outBufferSize, + [out, size_is(outBufferSize)] BYTE* outBuffer); +``` + +## Parameters + +`reqCode`\ +[in] Request type to be sent. + +Requests can be one of the following: + +|Member|Value|Description| +|------------|-----------------|-----------------| +|`CLRDATA_REQUEST_REVISION`|0xe0000000|Request the revision of the stack walk. The revision is a ULONG32 numeric value.| +|`CLRDATA_STACK_WALK_REQUEST_SET_FIRST_FRAME`|0xe1000000|Tell the stack walker whether the current state represents the first frame of the stack or not. The value is a ULONG32 boolean value. Note that callers of `SetContext` may use this to indicate to the stack walker whether the set register context represents the real register context of a thread or some intermediate unwind.| + +`inBufferSize`\ +[in] size of the input buffer to be passed in. + +`inBuffer`\ +[in, size_is(inBufferSize)] Buffer pointer for the raw data to be sent in the request. + +`outBufferSize`\ +[in] Size of the output buffer. + +`outBuffer`\ +[out, size_is(outBufferSize)] Buffer pointer to used to store the request response. + +## Remarks + +The provided method is part of the `IXCLRDataStackWalk` interface and corresponds to the 10th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataStackWalk Interface](ixclrdatastackwalk-interface.md) +- [IXCLRDataStackWalk::SetContext Method](ixclrdatastackwalk-setcontext-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatastackwalk-setcontext-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatastackwalk-setcontext-method.md new file mode 100644 index 0000000000000..7315bc3e06dd5 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatastackwalk-setcontext-method.md @@ -0,0 +1,59 @@ +--- +description: "Learn more about: IXCLRDataStackWalk::SetContext Method" +title: "IXCLRDataStackWalk::SetContext Method" +ms.date: "07/03/2024" +api.name: + - "IXCLRDataStackWalk::SetContext Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataStackWalk::SetContext Method" +helpviewer.keywords: + - "IXCLRDataStackWalk::SetContext Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataStackWalk::SetContext Method + +Changes the current cotnext of this stack walk, allowing the debugger to move it to an arbitrary context. Does not actually alter the current context of the thread whose stack is being walked. + +NOTE: This method is obsolete. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT SetContext( + [in] ULONG32 contextSize, + [in, size_is(contextSize)] BYTE context[] +); +``` + +## Parameters + +`contextSize` +[in] The size of the context record in the `context` buffer. + +`context` +[in] The context to change the stack walker to. + +## Remarks + +The provided method is part of the `IXCLRDataStackWalk` interface and corresponds to the 5th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataStackWalk Interface](ixclrdatastackwalk-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatatask-createstackwalk-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatatask-createstackwalk-method.md new file mode 100644 index 0000000000000..f014956a22f8b --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatatask-createstackwalk-method.md @@ -0,0 +1,59 @@ +--- +description: "Learn more about: IXCLRDataTask::CreateStackWalk Method" +title: "IXCLRDataTask::CreateStackWalk Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataTask::CreateStackWalk Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataTask::CreateStackWalk Method" +helpviewer.keywords: + - "IXCLRDataTask::CreateStackWalk Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataTask::CreateStackWalk Method + +Creates a stack walker to walk the task's stack. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT CreateStackWalk( + [in] ULONG32 flags, + [out] IXCLRDataStackWalk **stackWalk +); +``` + +## Parameters + +`flags`\ +[in] A set of one or more flags from the `CLRDataSimpleFrameType` enumeration which define the kinds of frames which should be returned from the stack walk. + +`stackWalk`\ +[out] An interface to walk the stack of the task. + +## Remarks + +The provided method is part of the `IXCLRDataTask` interface and corresponds to the 12th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataTask Interface](ixclrdatatask-interface.md) +- [IXCLRDataStackWalk Interface](ixclrdatastackwalk-interface.md) +- [CLRDataSimpleFrameType Enumeration](clrdatasimpleframetype-enumeration.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatatask-getcurrentappdomain-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatatask-getcurrentappdomain-method.md new file mode 100644 index 0000000000000..97946eacb71c9 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatatask-getcurrentappdomain-method.md @@ -0,0 +1,54 @@ +--- +description: "Learn more about: IXCLRDataTask::GetCurrentAppDomain Method" +title: "IXCLRDataTask::GetCurrentAppDomain Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataTask::GetCurrentAppDomain Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataTask::GetCurrentAppDomain Method" +helpviewer.keywords: + - "IXCLRDataTask::GetCurrentAppDomain Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataTask::GetCurrentAppDomain Method + +Gets the application domain that the task is currently running in. This can change over time. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetCurrentAppDomain( + [out] IXCLRDataAppDomain **appDomain +); +``` + +## Parameters + +`appDomain`\ +[out] The application domain that the task is currently running in. + +## Remarks + +The provided method is part of the `IXCLRDataTask` interface and corresponds to the 5th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataTask Interface](ixclrdatatask-interface.md) +- [IXCLRDataAppDomain Interface](ixclrdataappdomain-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatatask-getcurrentexceptionstate-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatatask-getcurrentexceptionstate-method.md new file mode 100644 index 0000000000000..e562011bb1273 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatatask-getcurrentexceptionstate-method.md @@ -0,0 +1,54 @@ +--- +description: "Learn more about: IXCLRDataTask::GetCurrentExceptionState Method" +title: "IXCLRDataTask::GetCurrentExceptionState Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataTask::GetCurrentExceptionState Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataTask::GetCurrentExceptionState Method" +helpviewer.keywords: + - "IXCLRDataTask::GetCurrentExceptionState Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataTask::GetCurrentExceptionState Method + +Gets the current exception state for the task, if any. This may be the first element in a list of exception states if there are nested exceptions. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetCurrentExceptionState( + [out] IXCLRDataExceptionState **exception +); +``` + +## Parameters + +`exception`\ +[out] The current exception state for the task. + +## Remarks + +The provided method is part of the `IXCLRDataTask` interface and corresponds to the 16th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataTask Interface](ixclrdatatask-interface.md) +- [IXCLRDataExceptionState Interface](ixclrdataexceptionstate-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatatask-getlastexceptionstate-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatatask-getlastexceptionstate-method.md new file mode 100644 index 0000000000000..7a6109cd806d9 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatatask-getlastexceptionstate-method.md @@ -0,0 +1,54 @@ +--- +description: "Learn more about: IXCLRDataTask::GetLastExceptionState Method" +title: "IXCLRDataTask::GetLastExceptionState Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataTask::GetLastExceptionState Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataTask::GetLastExceptionState Method" +helpviewer.keywords: + - "IXCLRDataTask::GetLastExceptionState Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataTask::GetLastExceptionState Method + +Gets the last exception state for the task, if any. If an exception is currently being processed the last exception state may be the same as the current exception state. This requires revision 2 of a CLR task. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetLastExceptionState( + [out] IXCLRDataExceptionState **exception +); +``` + +## Parameters + +`exception`\ +[out] The last exception state of the task + +## Remarks + +The provided method is part of the `IXCLRDataTask` interface and corresponds to the 19th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataTask Interface](ixclrdatatask-interface.md) +- [IXCLRDataExceptionState Interface](ixclrdataexceptionstate-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatatask-interface.md b/docs/framework/unmanaged-api/debugging/ixclrdatatask-interface.md new file mode 100644 index 0000000000000..f5b291daf1551 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatatask-interface.md @@ -0,0 +1,49 @@ +--- +description: "Learn more about: IXCLRDataTask Interface" +title: "IXCLRDataTask Interface" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataTask Interface" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataTask Interface" +helpviewer.keywords: + - "IXCLRDataTask Interface [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataTask Interface + +Provides methods for querying information about a managed task. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Methods + +| Method | Description | +| ----------------------------------------------------------------------------------------------------------------------- | ------------------------------------------- | +| [GetCurrentAppDomain](ixclrdatatask-getcurrentappdomain-method.md) | Gets the current AppDomain of the task. | +| [CreateStackWalk](ixclrdatatask-createstackwalk-method.md) | Starts a stack walk for the task. | +| [GetLastExceptionState](ixclrdatatask-getlastexceptionstate-method.md) | Gets the last exception state of the task. | +| [GetCurrentExceptionState](ixclrdatatask-getcurrentexceptionstate-method.md) | Gets the current exception state of the task. | + +## Remarks + +This interface lives inside the runtime and is not exposed through any headers or library files. However, it's a COM interface that derives from `IUnknown` with GUID `A5B0BEEA-EC62-4618-8012-A24FFC23934C` that can be obtained through the usual COM mechanisms. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatatypedefinition-endenummethoddefinitions-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatatypedefinition-endenummethoddefinitions-method.md new file mode 100644 index 0000000000000..f321b2c6fbc9b --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatatypedefinition-endenummethoddefinitions-method.md @@ -0,0 +1,56 @@ +--- +description: "Learn more about: IXCLRDataTypeDefinition::EndEnumMethodDefinitions Method" +title: "IXCLRDataTypeDefinition::EndEnumMethodDefinitions Method" +ms.date: "07/03/2024" +api.name: + - "IXCLRDataTypeDefinition::EndEnumMethodDefinitions Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataTypeDefinition::EndEnumMethodDefinitions Method" +helpviewer.keywords: + - "IXCLRDataTypeDefinition::EndEnumMethodDefinitions Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataTypeDefinition::EndEnumMethodDefinitions Method + +Releases the resources used by internal iterators used during method definition enumeration. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT EndEnumMethodDefinitions( + [in] CLRDATA_ENUM handle +); +``` + +## Parameters + +`handle`\ +[in] A handle for enumerating the method definitions within the type. + +## Remarks + +The provided method is part of the `IXCLRDataTypeDefinition` interface and corresponds to the 7th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataTypeDefinition Interface](ixclrdatatypedefinition-interface.md) +- [IXCLRDataMethodDefinition Interface](ixclrdatamethoddefinition-interface.md) +- [IXCLRDataTypeDefinition::StartEnumMethodDefinitions Method](ixclrdatatypedefinition-startenummethoddefinitions-method.md) +- [IXCLRDataTypeDefinition::EnumMethodDefinitions Method](ixclrdatatypedefinition-enummethoddefinition-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatatypedefinition-enummethoddefinition-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatatypedefinition-enummethoddefinition-method.md new file mode 100644 index 0000000000000..23eb3162e0607 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatatypedefinition-enummethoddefinition-method.md @@ -0,0 +1,60 @@ +--- +description: "Learn more about: IXCLRDataTypeDefinition::EnumMethodDefinition Method" +title: "IXCLRDataTypeDefinition::EnumMethodDefinition Method" +ms.date: "07/03/2024" +api.name: + - "IXCLRDataTypeDefinition::EnumMethodDefinition Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataTypeDefinition::EnumMethodDefinition Method" +helpviewer.keywords: + - "IXCLRDataTypeDefinition::EnumMethodDefinition Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataTypeDefinition::EnumMethodDefinition Method + +Enumerates method definitions within the type. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT EnumMethodDefinition( + [in, out] CLRDATA_ENUM *handle, + [out] IXCLRDataMethodDefinition **methodDefinition +); +``` + +## Parameters + +`handle`\ +[in, out] A handle for enumerating method definitions within the type. + +`methodDefinition`\ +[out] The enumerated method definition. + +## Remarks + +The provided method is part of the `IXCLRDataTypeDefinition` interface and corresponds to the 6th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataTypeDefinition Interface](ixclrdatatypedefinition-interface.md) +- [IXCLRDataMethodDefinition Interface](ixclrdatamethoddefinition-interface.md) +- [IXCLRDataTypeDefinition::StartEnumMethodDefinitions Method](ixclrdatatypedefinition-startenummethoddefinitions-method.md) +- [IXCLRDataTypeDefinition::EndEnumMethodDefinitions Method](ixclrdatatypedefinition-endenummethoddefinitions-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatatypedefinition-getcorelementtype-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatatypedefinition-getcorelementtype-method.md new file mode 100644 index 0000000000000..378dca57819ad --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatatypedefinition-getcorelementtype-method.md @@ -0,0 +1,54 @@ +--- +description: "Learn more about: IXCLRDataTypeDefinition::GetCorElementType Method" +title: "IXCLRDataTypeDefinition::GetCorElementType Method" +ms.date: "07/03/2024" +api.name: + - "IXCLRDataTypeDefinition::GetCorElementType Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataTypeDefinition::GetCorElementType Method" +helpviewer.keywords: + - "IXCLRDataTypeDefinition::GetCorElementType Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataTypeDefinition::GetCorElementType Method + +Gets the standard element type of this type definition. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetCorElementType( + [out] CorElementType *type +); +``` + +## Parameters + +`type`\ +[out] The standard element type of this type definition. + +## Remarks + +The provided method is part of the `IXCLRDataTypeDefinition` interface and corresponds to the 17th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataTypeDefinition Interface](ixclrdatatypedefinition-interface.md) +- [CorElementType Enumeration](../metadata/corelementtype-enumeration.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatatypedefinition-getname-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatatypedefinition-getname-method.md new file mode 100644 index 0000000000000..dc5f3f1df583b --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatatypedefinition-getname-method.md @@ -0,0 +1,65 @@ +--- +description: "Learn more about: IXCLRDataTypeDefinition::GetName Method" +title: "IXCLRDataTypeDefinition::GetName Method" +ms.date: "07/03/2024" +api.name: + - "IXCLRDataTypeDefinition::GetName Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataTypeDefinition::GetName Method" +helpviewer.keywords: + - "IXCLRDataTypeDefinition::GetName Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataTypeDefinition::GetName Method + +Gets the fully qualified name for this type definition. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetName( + [in] ULONG32 flags, + [in] ULONG32 bufLen, + [out] ULONG32 *nameLen, + [out, size_is(bufLen)] WCHAR nameBuf[] +); +``` + +## Parameters + +`flags`\ +[in] Reserved. Must be 0. + +`bufLen`\ +[in] The length in characters of the `nameBuf` buffer. + +`nameLen`\ +[out] The number of characters in the fully qualified name written to the `nameBuf` buffer. + +`nameBuf`\ +[out] The fully qualified name of the type definition. + +## Remarks + +The provided method is part of the `IXCLRDataTypeDefinition` interface and corresponds to the 15th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataTypeDefinition Interface](ixclrdatatypedefinition-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatatypedefinition-gettokenandscope-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatatypedefinition-gettokenandscope-method.md new file mode 100644 index 0000000000000..6ee4b69b5e4b5 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatatypedefinition-gettokenandscope-method.md @@ -0,0 +1,58 @@ +--- +description: "Learn more about: IXCLRDataTypeDefinition::GetTokenAndScope Method" +title: "IXCLRDataTypeDefinition::GetTokenAndScope Method" +ms.date: "07/03/2024" +api.name: + - "IXCLRDataTypeDefinition::GetTokenAndScope Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataTypeDefinition::GetTokenAndScope Method" +helpviewer.keywords: + - "IXCLRDataTypeDefinition::GetTokenAndScope Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataTypeDefinition::GetTokenAndScope Method + +Gets the metadata token and scope of the type definition. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetTokenAndScope( + [out] mdTypeDef *token, + [out] IXCLRDataModule **mod +); +``` + +## Parameters + +`token`\ +[in] The metadata token for the type definition. + +`mod`\ +[out] The module for which the metadata token is valid. + +## Remarks + +The provided method is part of the `IXCLRDataTypeDefinition` interface and corresponds to the 16th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataTypeDefinition Interface](ixclrdatatypedefinition-interface.md) +- [IXCLRDataModule Interface](ixclrdatamodule-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatatypedefinition-interface.md b/docs/framework/unmanaged-api/debugging/ixclrdatatypedefinition-interface.md new file mode 100644 index 0000000000000..acb59d42be38b --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatatypedefinition-interface.md @@ -0,0 +1,51 @@ +--- +description: "Learn more about: IXCLRDataTypeDefinition Interface" +title: "IXCLRDataTypeDefinition Interface" +ms.date: "07/03/2024" +api.name: + - "IXCLRDataTypeDefinition Interface" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataTypeDefinition Interface" +helpviewer.keywords: + - "IXCLRDataTypeDefinition Interface [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataTypeDefinition Interface + +Provides methods for querying information about a type definition. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Methods + +| Method | Description | +| ----------------------------------------------------------------------------------------------------------------------- | ------------------------------------------- | +| [StartEnumMethodDefinitions](ixclrdatatypedefinition-startenummethoddefinitions-method.md) | Provides a handle to enumerate the method definitions of the type. | +| [EnumMethodDefinition](ixclrdatatypedefinition-enummethoddefinition-method.md) | Enumerates the method definitions of the type. | +| [EndEnumMethodDefinitions](ixclrdatatypedefinition-endenummethoddefinitions-method.md) | Releases the resources used by internal iterators used during method definition enumeration. | +| [GetName](ixclrdatatypedefinition-getname-method.md) | Gets the fully qualified name for this type definition. | +| [GetCorElementType](ixclrdatatypedefinition-getcorelementtype-method.md) | Gets the standard element type of this type definition. | +| [GetTokenAndScope](ixclrdatatypedefinition-gettokenandscope-method.md) | Gets the metadata token and scope for this type definition. | + +## Remarks + +This interface lives inside the runtime and is not exposed through any headers or library files. However, it's a COM interface that derives from `IUnknown` with GUID `4675666C-C275-45b8-9F6C-AB165D5C1E09` that can be obtained through the usual COM mechanisms. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatatypedefinition-startenummethoddefinitions-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatatypedefinition-startenummethoddefinitions-method.md new file mode 100644 index 0000000000000..afc77bb18f54b --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatatypedefinition-startenummethoddefinitions-method.md @@ -0,0 +1,56 @@ +--- +description: "Learn more about: IXCLRDataTypeDefinition::StartEnumMethodDefinitions Method" +title: "IXCLRDataTypeDefinition::StartEnumMethodDefinitions Method" +ms.date: "07/03/2024" +api.name: + - "IXCLRDataTypeDefinition::StartEnumMethodDefinitions Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataTypeDefinition::StartEnumMethodDefinitions Method" +helpviewer.keywords: + - "IXCLRDataTypeDefinition::StartEnumMethodDefinitions Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataTypeDefinition::StartEnumMethodDefinitions Method + +Provides a handle for the enumeration of method definitions within the type. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT StartEnumMethodDefinitions( + [out] CLRDATA_ENUM *handle +); +``` + +## Parameters + +`handle`\ +[out] A handle for enumerating method definitions within the type. + +## Remarks + +The provided method is part of the `IXCLRDataTypeDefinition` interface and corresponds to the 5th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataTypeDefinition Interface](ixclrdatatypedefinition-interface.md) +- [IXCLRDataMethodDefinition Interface](ixclrdatamethoddefinition-interface.md) +- [IXCLRDataTypeDefinition::EnumMethodDefinition Method](ixclrdatatypedefinition-enummethoddefinition-method.md) +- [IXCLRDataTypeDefinition::EndEnumMethodDefinitions Method](ixclrdatatypedefinition-endenummethoddefinitions-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatatypeinstance-endenummethodinstances-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatatypeinstance-endenummethodinstances-method.md new file mode 100644 index 0000000000000..0385a4d064d06 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatatypeinstance-endenummethodinstances-method.md @@ -0,0 +1,56 @@ +--- +description: "Learn more about: IXCLRDataTypeInstance::EndEnumMethodInstances Method" +title: "IXCLRDataTypeInstance::EndEnumMethodInstances Method" +ms.date: "07/01/2024" +api.name: + - "IXCLRDataTypeInstance::EndEnumMethodInstances Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataTypeInstance::EndEnumMethodInstances Method" +helpviewer.keywords: + - "IXCLRDataTypeInstance::EndEnumMethodInstances Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataTypeInstance::EndEnumMethodInstances Method + +Releases the resources used by internal iterators used during method instance enumeration. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT EndEnumMethodInstances( + [in] CLRDATA_ENUM handle +); +``` + +## Parameters + +`handle`\ +[in] A handle for enumerating the method instances within the type. + +## Remarks + +The provided method is part of the `IXCLRDataTypeInstance` interface and corresponds to the 6th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataTypeInstance Interface](ixclrdatatypeinstance-interface.md) +- [IXCLRDataMethodInstance Interface](ixclrdatamethodinstance-interface.md) +- [IXCLRDataTypeInstance::StartEnumMethodInstances Method](ixclrdatatypeinstance-startenummethodinstances-method.md) +- [IXCLRDataTypeInstance::EnumMethodInstance Method](ixclrdatatypeinstance-enummethodinstance-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatatypeinstance-enummethodinstance-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatatypeinstance-enummethodinstance-method.md new file mode 100644 index 0000000000000..b335549941df4 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatatypeinstance-enummethodinstance-method.md @@ -0,0 +1,60 @@ +--- +description: "Learn more about: IXCLRDataTypeInstance::EnumMethodInstance Method" +title: "IXCLRDataTypeInstance::EnumMethodInstance Method" +ms.date: "07/03/2024" +api.name: + - "IXCLRDataTypeInstance::EnumMethodInstance Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataTypeInstance::EnumMethodInstance Method" +helpviewer.keywords: + - "IXCLRDataTypeInstance::EnumMethodInstance Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataTypeInstance::EnumMethodInstance Method + +Enumerates method instances within the type. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT EnumMethodInstance( + [in, out] CLRDATA_ENUM *handle, + [out] IXCLRDataMethodInstance **method +); +``` + +## Parameters + +`handle`\ +[in, out] A handle for enumerating method instances within the type. + +`method`\ +[out] The enumerated method instance. + +## Remarks + +The provided method is part of the `IXCLRDataTypeInstance` interface and corresponds to the 5th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataTypeInstance Interface](ixclrdatatypeinstance-interface.md) +- [IXCLRDataMethodInstance Interface](ixclrdatamethodinstance-interface.md) +- [IXCLRDataTypeInstance::StartEnumMethodInstances Method](ixclrdatatypeinstance-startenummethodinstances-method.md) +- [IXCLRDataTypeInstance::EndEnumMethodInstances Method](ixclrdatatypeinstance-endenummethodinstances-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatatypeinstance-getdefinition-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatatypeinstance-getdefinition-method.md new file mode 100644 index 0000000000000..bb073ab1287c9 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatatypeinstance-getdefinition-method.md @@ -0,0 +1,54 @@ +--- +description: "Learn more about: IXCLRDataTypeInstance::GetDefinition Method" +title: "IXCLRDataTypeInstance::GetDefinition Method" +ms.date: "07/03/2024" +api.name: + - "IXCLRDataTypeInstance::GetDefinition Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataTypeInstance::GetDefinition Method" +helpviewer.keywords: + - "IXCLRDataTypeInstance::GetDefinition Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataTypeInstance::GetDefinition Method + +Gets the definition corresponding to this type instance. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetDefinition( + [out] IXCLRDataTypeDefinition **typeDefinition +); +``` + +## Parameters + +`typeDefinition`\ +[out] The definition corresponding to this type instance. + +## Remarks + +The provided method is part of the `IXCLRDataTypeInstance` interface and corresponds to the 19th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataTypeInstance Interface](ixclrdatatypeinstance-interface.md) +- [IXCLRDataTypeDefinition Interface](ixclrdatatypedefinition-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatatypeinstance-getname-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatatypeinstance-getname-method.md new file mode 100644 index 0000000000000..26b3d9f508de6 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatatypeinstance-getname-method.md @@ -0,0 +1,65 @@ +--- +description: "Learn more about: IXCLRDataTypeInstance::GetName Method" +title: "IXCLRDataTypeInstance::GetName Method" +ms.date: "07/03/2024" +api.name: + - "IXCLRDataTypeInstance::GetName Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataTypeInstance::GetName Method" +helpviewer.keywords: + - "IXCLRDataTypeInstance::GetName Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataTypeInstance::GetName Method + +Gets the fully qualified name of the type. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetName( + [in] ULONG32 flags, + [in] ULONG32 bufLen, + [out] ULONG32 *nameLen, + [out, size_is(bufLen)] WCHAR nameBuf[] +); +``` + +## Parameters + +`flags`\ +[in] Reserved. Must be 0. + +`bufLen`\ +[in] The length in characters of the `nameBuf` buffer. + +`nameLen`\ +[out] The number of characters in the fully qualified name of the type written to the `nameBuf` buffer. + +`nameBuf`\ +[out] The fully qualified name of the type. + +## Remarks + +The provided method is part of the `IXCLRDataTypeInstance` interface and corresponds to the 17th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataTypeInstance Interface](ixclrdatatypeinstance-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatatypeinstance-getnumstaticfields-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatatypeinstance-getnumstaticfields-method.md new file mode 100644 index 0000000000000..29159b32dff1b --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatatypeinstance-getnumstaticfields-method.md @@ -0,0 +1,56 @@ +--- +description: "Learn more about: IXCLRDataTypeInstance::GetNumStaticFields Method" +title: "IXCLRDataTypeInstance::GetNumStaticFields Method" +ms.date: "07/03/2024" +api.name: + - "IXCLRDataTypeInstance::GetNumStaticFields Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataTypeInstance::GetNumStaticFields Method" +helpviewer.keywords: + - "IXCLRDataTypeInstance::GetNumStaticFields Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataTypeInstance::GetNumStaticFields Method + +Gets the number of static fields in the type. + +NOTE: This method is obsolete. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetNumStaticFields( + [out] ULONG32 *numFields +); +``` + +## Parameters + +`numFields`\ +[out] The number of static fields in the type. + +## Remarks + +The provided method is part of the `IXCLRDataTypeInstance` interface and corresponds to the 10th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataTypeInstance Interface](ixclrdatatypeinstance-interface.md) +- [IXCLRDataTypeInstance::GetStaticFieldByIndex Method](ixclrdatatypeinstance-getstaticfieldbyindex-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatatypeinstance-getstaticfieldbyindex-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatatypeinstance-getstaticfieldbyindex-method.md new file mode 100644 index 0000000000000..396d73a227ab8 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatatypeinstance-getstaticfieldbyindex-method.md @@ -0,0 +1,83 @@ +--- +description: "Learn more about: IXCLRDataTypeInstance::GetStaticFieldByIndex Method" +title: "IXCLRDataTypeInstance::GetStaticFieldByIndex Method" +ms.date: "07/03/2024" +api.name: + - "IXCLRDataTypeInstance::GetStaticFieldByIndex Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataTypeInstance::GetStaticFieldByIndex Method" +helpviewer.keywords: + - "IXCLRDataTypeInstance::GetStaticFieldByIndex Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataTypeInstance::GetStaticFieldByIndex Method + +Gets one static field of the type. Because static field ordering is not fixed, this can also return name information and/or the metadata token if the caller passes in appropriate values. + +NOTE: This method is obsolete. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetStaticFieldByIndex( + [in] ULONG32 index, + [in] IXCLRDataTask *tlsTask, + [out] IXCLRDataValue **field, + [in] ULONG32 bufLen, + [out] ULONG32 *nameLen, + [out, size_is(bufLen)] WCHAR nameBuf[], + [out] mdFieldDef *token +); +``` + +## Parameters + +`index`\ +[in] The 0-based index of the static field to retrieve. + +`tlsTask`\ +[in] The managed task for which to retrieve any static field that is thread local + +`field`\ +[out] The static field. + +`bufLen`\ +[in] The size in characters of the buffer `nameBuf`. + +`nameLen`\ +[out] The number of characters in the static field name which were written to the `nameBuf` buffer. + +`nameBuf`\ +[out] The name of the static field. + +`token`\ +[out] The metadata token of the static field. + +`method`\ +[out] The method instance corresponding to the stack frame. + +## Remarks + +The provided method is part of the `IXCLRDataTypeInstance` interface and corresponds to the 11th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataTypeInstance Interface](ixclrdatatypeinstance-interface.md) +- [IXCLRDataTypeInstance::GetNumStaticFields Method](ixclrdatatypeinstance-getnumstaticfields-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatatypeinstance-interface.md b/docs/framework/unmanaged-api/debugging/ixclrdatatypeinstance-interface.md new file mode 100644 index 0000000000000..7d9de140fd385 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatatypeinstance-interface.md @@ -0,0 +1,52 @@ +--- +description: "Learn more about: IXCLRDataTypeInstance Interface" +title: "IXCLRDataTypeInstance Interface" +ms.date: "07/03/2024" +api.name: + - "IXCLRDataTypeInstance Interface" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataTypeInstance Interface" +helpviewer.keywords: + - "IXCLRDataTypeInstance Interface [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataTypeInstance Interface + +Provides methods for querying information about a type instance. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Methods + +| Method | Description | +| ----------------------------------------------------------------------------------------------------------------------- | ------------------------------------------- | +| [GetNumStaticFields](ixclrdatatypeinstance-getnumstaticfields-method.md) | Gets the number of static fields in the type. | +| [GetStaticFieldByIndex](ixclrdatatypeinstance-getstaticfieldbyindex-method.md) | Get one static field of the type. | +| [GetDefinition](ixclrdatatypeinstance-getdefinition-method.md) | Gets the type definition matching this instance. | +| [StartEnumMethodInstances](ixclrdatatypeinstance-startenummethodinstances-method.md) | Provides a handle to enumerate the method instances of the type. | +| [EnumMethodInstance](ixclrdatatypeinstance-enummethodinstance-method.md) | Enumerates the method instances of the type. | +| [EndEnumMethodInstances](ixclrdatatypeinstance-endenummethodinstances-method.md) | Releases the resources used by internal iterators used during method instance enumeration. | +| [GetName](ixclrdatatypeinstance-getname-method.md) | Gets the fully qualified name of this type instance. | + +## Remarks + +This interface lives inside the runtime and is not exposed through any headers or library files. However, it's a COM interface that derives from `IUnknown` with GUID `4D078D91-9CB3-4b0d-97AC-28C8A5A82597` that can be obtained through the usual COM mechanisms. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatatypeinstance-startenummethodinstances-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatatypeinstance-startenummethodinstances-method.md new file mode 100644 index 0000000000000..246cfe6fec4c1 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatatypeinstance-startenummethodinstances-method.md @@ -0,0 +1,56 @@ +--- +description: "Learn more about: IXCLRDataTypeInstance::StartEnumMethodInstances Method" +title: "IXCLRDataTypeInstance::StartEnumMethodInstances Method" +ms.date: "07/03/2024" +api.name: + - "IXCLRDataTypeInstance::StartEnumMethodInstances Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataTypeInstance::StartEnumMethodInstances Method" +helpviewer.keywords: + - "IXCLRDataTypeInstance::StartEnumMethodInstances Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataTypeInstance::StartEnumMethodInstances Method + +Provides a handle for the enumeration of method instances within the type. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT StartEnumMethodInstances( + [out] CLRDATA_ENUM *handle +); +``` + +## Parameters + +`handle`\ +[out] A handle for enumerating method instances within the type. + +## Remarks + +The provided method is part of the `IXCLRDataTypeInstance` interface and corresponds to the 4th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataTypeInstance Interface](ixclrdatatypeinstance-interface.md) +- [IXCLRDataMethodInstance Interface](ixclrdatamethodinstance-interface.md) +- [IXCLRDataTypeInstance::EnumMethodInstance Method](ixclrdatatypeinstance-enummethodinstance-method.md) +- [IXCLRDataTypeInstance::EndEnumMethodInstances Method](ixclrdatatypeinstance-endenummethodinstances-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatavalue-endenumfields-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-endenumfields-method.md new file mode 100644 index 0000000000000..ee999461e4937 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-endenumfields-method.md @@ -0,0 +1,55 @@ +--- +description: "Learn more about: IXCLRDataValue::EndEnumFields Method" +title: "IXCLRDataValue::EndEnumFields Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataValue::EndEnumFields Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataValue::EndEnumFields Method" +helpviewer.keywords: + - "IXCLRDataValue::EndEnumFields Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataValue::EndEnumFields Method + +Releases the resources used by internal iterators used during instance enumeration. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT EndEnumFields( + [in] CLRDATA_ENUM handle +); +``` + +## Parameters + +`handle`\ +[out] A handle for enumerating the fields of the value. + +## Remarks + +The provided method is part of the `IXCLRDataValue` interface and corresponds to the 16th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataValue Interface](ixclrdatavalue-interface.md) +- [IXCLRDataValue::StartEnumFields Method](ixclrdatavalue-startenumfields-method.md) +- [IXCLRDataValue::EnumField Method](ixclrdatavalue-enumfield-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatavalue-endenumfieldsbyname-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-endenumfieldsbyname-method.md new file mode 100644 index 0000000000000..782806ead30e0 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-endenumfieldsbyname-method.md @@ -0,0 +1,57 @@ +--- +description: "Learn more about: IXCLRDataValue::EndEnumFieldsByName Method" +title: "IXCLRDataValue::EndEnumFieldsByName Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataValue::EndEnumFieldsByName Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataValue::EndEnumFieldsByName Method" +helpviewer.keywords: + - "IXCLRDataValue::EndEnumFieldsByName Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataValue::EndEnumFieldsByName Method + +Releases the resources used by internal iterators used during field enumeration. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT EndEnumFieldsByName( + [in] CLRDATA_ENUM handle +); +``` + +## Parameters + +`handle`\ +[out] A handle for enumerating the fields of the value by name. + +## Remarks + +The provided method is part of the `IXCLRDataValue` interface and corresponds to the 19th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataValue Interface](ixclrdatavalue-interface.md) +- [CLRDataByNameFlag Enumeration](clrdatabynameflag-enumeration.md) +- [CLRDataFieldFlag Enumeration](clrdatafieldflag-enumeration.md) +- [IXCLRDataValue::StartEnumFieldsByName Method](ixclrdatavalue-startenumfieldsbyname-method.md) +- [IXCLRDataValue::EnumFieldByName Method](ixclrdatavalue-enumfieldbyname-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatavalue-enumfield-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-enumfield-method.md new file mode 100644 index 0000000000000..9b1b60dd5b137 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-enumfield-method.md @@ -0,0 +1,75 @@ +--- +description: "Learn more about: IXCLRDataValue::EnumField Method" +title: "IXCLRDataValue::EnumField Method" +ms.date: "07/03/2024" +api.name: + - "IXCLRDataValue::EnumField Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataValue::EnumField Method" +helpviewer.keywords: + - "IXCLRDataValue::EnumField Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataValue::EnumField Method + +Enumerates the fields of the value. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT EnumField( + [in, out] CLRDATA_ENUM *handle, + [out] IXCLRDataValue **field, + [in] ULONG32 nameBufLen, + [out] ULONG32 *nameLen, + [out, size_is(nameBufLen)] WCHAR nameBuf[], + [out] mdFieldDef *token +); +``` + +## Parameters + +`handle`\ +[in] A handle for enumerating the fields of the value. + +`field`\ +[out] The enumerated field. + +`nameBufLen`\ +[in] The length in characters of the provided buffer `nameBuf` + +`nameLen`\ +[out] The number of characters in the name of the field written to `nameBuf` + +`nameBuf`\ +[out] The name of the field + +`token`\ +[out] The metadata token for the field. + +## Remarks + +The provided method is part of the `IXCLRDataValue` interface and corresponds to the 15th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataValue Interface](ixclrdatavalue-interface.md) +- [IXCLRDataValue::StartEnumFields Method](ixclrdatavalue-startenumfields-method.md) +- [IXCLRDataValue::EndEnumFields Method](ixclrdatavalue-endenumfields-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatavalue-enumfieldbyname-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-enumfieldbyname-method.md new file mode 100644 index 0000000000000..34b75eb960e83 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-enumfieldbyname-method.md @@ -0,0 +1,65 @@ +--- +description: "Learn more about: IXCLRDataValue::EnumFieldByName Method" +title: "IXCLRDataValue::EnumFieldByName Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataValue::EnumFieldByName Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataValue::EnumFieldByName Method" +helpviewer.keywords: + - "IXCLRDataValue::EnumFieldByName Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataValue::EnumFieldByName Method + +Enumerates the fields of a value by name. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT EnumFieldByName( + [in] CLRDATA_ENUM *handle, + [out] IXCLRDataValue **field, + [out] mdFieldDef *token +); +``` + +## Parameters + +`handle`\ +[in] A handle for enumerating the fields of the value by name. + +`field`\ +[out] The enumerated field. + +`token`\ +[out] The metadata token defining the field. + +## Remarks + +The provided method is part of the `IXCLRDataValue` interface and corresponds to the 18th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataValue Interface](ixclrdatavalue-interface.md) +- [CLRDataByNameFlag Enumeration](clrdatabynameflag-enumeration.md) +- [CLRDataFieldFlag Enumeration](clrdatafieldflag-enumeration.md) +- [IXCLRDataValue::StartEnumFieldsByName Method](ixclrdatavalue-startenumfieldsbyname-method.md) +- [IXCLRDataValue::EndEnumFieldsByName Method](ixclrdatavalue-endenumfieldsbyname-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatavalue-getaddress-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-getaddress-method.md new file mode 100644 index 0000000000000..3a478bb7c2faa --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-getaddress-method.md @@ -0,0 +1,55 @@ +--- +description: "Learn more about: IXCLRDataValue::GetAddress Method" +title: "IXCLRDataValue::GetAddress Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataValue::GetAddress Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataValue::GetAddress Method" +helpviewer.keywords: + - "IXCLRDataValue::GetAddress Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataValue::GetAddress Method + +Gets the address of the value. This method will fail unless the value is contained in a single contiguous piece of data in memory. + +NOTE: This method is obsolete. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetAddress( + [out] CLRDATA_ADDRESS *address +); +``` + +## Parameters + +`address`\ +[out] The address of the value. + +## Remarks + +The provided method is part of the `IXCLRDataValue` interface and corresponds to the 5th slot of the virtual method table. Note that CLRDATA_ADDRESS is a 64-bit unsigned integer. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataValue Interface](ixclrdatavalue-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatavalue-getarrayelement-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-getarrayelement-method.md new file mode 100644 index 0000000000000..54e44da334ec8 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-getarrayelement-method.md @@ -0,0 +1,62 @@ +--- +description: "Learn more about: IXCLRDataValue::GetArrayElement Method" +title: "IXCLRDataValue::GetArrayElement Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataValue::GetArrayElement Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataValue::GetArrayElement Method" +helpviewer.keywords: + - "IXCLRDataValue::GetArrayElement Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataValue::GetArrayElement Method + +Gets a value corresponding to a given element in an array. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetArrayElement( + [in] ULONG32 numInd, + [in, size_is(numInd)] LONG32 indicies[], + [out] IXCLRDataValue **value +); +``` + +## Parameters + +`numInd`\ +[in] The number of indicies required to access the array element and contained in the `indicies` array. + +`indicies`\ +[in] The indicies required to access the array element. + +`value`\ +[out] The value of the given element in the array. + +## Remarks + +The provided method is part of the `IXCLRDataValue` interface and corresponds to the 25th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataValue Interface](ixclrdatavalue-interface.md) +- [IXCLRDataValue::GetArrayProperties Method](ixclrdatavalue-getarrayproperties-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatavalue-getarrayproperties-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-getarrayproperties-method.md new file mode 100644 index 0000000000000..2fefc4b1c4b75 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-getarrayproperties-method.md @@ -0,0 +1,74 @@ +--- +description: "Learn more about: IXCLRDataValue::GetArrayProperties Method" +title: "IXCLRDataValue::GetArrayProperties Method" +ms.date: "07/03/2024" +api.name: + - "IXCLRDataValue::GetArrayProperties Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataValue::GetArrayProperties Method" +helpviewer.keywords: + - "IXCLRDataValue::GetArrayProperties Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataValue::GetArrayProperties Method + +Gets the definition of an array value. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetArrayProperties( + [out] ULONG32 *rank, + [out] ULONG32 *totalElements, + [in] ULONG32 numDim, + [out, size_is(numDim)] ULONG32 dims[], + [in] ULONG32 numBases, + [out, size_is(numBases)] LONG32 bases[] +); +``` + +## Parameters + +`rank`\ +[out] The rank (number of dimensions) of the array. + +`totalElements`\ +[out] The total number of elements in the array. + +`numDim`\ +[in] The size of the `dims` buffer. + +`dims`\ +[out] An array containing the size of each dimension of the array. + +`numBases`\ +[in] The size of the `bases` buffer. + +`bases`\ +[out] An array containing the base of each dimension of the array. + +## Remarks + +The provided method is part of the `IXCLRDataValue` interface and corresponds to the 24th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataValue Interface](ixclrdatavalue-interface.md) +- [IXCLRDataValue::GetArrayElement Method](ixclrdatavalue-getarrayelement-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatavalue-getassociatedtype-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-getassociatedtype-method.md new file mode 100644 index 0000000000000..879b3c5a96d29 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-getassociatedtype-method.md @@ -0,0 +1,55 @@ +--- +description: "Learn more about: IXCLRDataValue::GetAssociatedType Method" +title: "IXCLRDataValue::GetAssociatedType Method" +ms.date: "07/03/2024" +api.name: + - "IXCLRDataValue::GetAssociatedType Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataValue::GetAssociatedType Method" +helpviewer.keywords: + - "IXCLRDataValue::GetAssociatedType Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataValue::GetAssociatedType Method + +Gets the type implicitly associated with this value (and its associated value). For pointers or reference values, this is the type pointed or referred to. For boxed values, this is the type of the contained value. For arrays, this is the element type. For other values, there is no associated type. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetAssociatedType( + [out] IXCLRDataTypeInstance **assocType +); +``` + +## Parameters + +`assocType`\ +[out] The type of the associated value. + +## Remarks + +The provided method is part of the `IXCLRDataValue` interface and corresponds to the 22nd slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataValue Interface](ixclrdatavalue-interface.md) +- [IXCLRDataTypeInstance Interface](ixclrdatatypeinstance-interface.md) +- [IXCLRDataValue::GetAssociatedValue Method](ixclrdatavalue-getassociatedvalue-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatavalue-getassociatedvalue-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-getassociatedvalue-method.md new file mode 100644 index 0000000000000..72771f2e5587d --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-getassociatedvalue-method.md @@ -0,0 +1,54 @@ +--- +description: "Learn more about: IXCLRDataValue::GetAssociatedValue Method" +title: "IXCLRDataValue::GetAssociatedValue Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataValue::GetAssociatedValue Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataValue::GetAssociatedValue Method" +helpviewer.keywords: + - "IXCLRDataValue::GetAssociatedValue Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataValue::GetAssociatedValue Method + +Gets the value implicitly associated with this value. For pointers or reference values, this is the value pointed or referred to. For boxed values, this is the contained value. For other values, there is no associated value. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetAssociatedValue( + [out] IXCLRDataValue **assocValue +); +``` + +## Parameters + +`assocValue`\ +[out] The value implicitly associated with this value. + +## Remarks + +The provided method is part of the `IXCLRDataValue` interface and corresponds to the 21st slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataValue Interface](ixclrdatavalue-interface.md) +- [IXCLRDataValue::GetAssociatedType Method](ixclrdatavalue-getassociatedtype-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatavalue-getbytes-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-getbytes-method.md new file mode 100644 index 0000000000000..3162d7cfc95de --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-getbytes-method.md @@ -0,0 +1,61 @@ +--- +description: "Learn more about: IXCLRDataValue::GetBytes Method" +title: "IXCLRDataValue::GetBytes Method" +ms.date: "07/03/2024" +api.name: + - "IXCLRDataValue::GetBytes Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataValue::GetBytes Method" +helpviewer.keywords: + - "IXCLRDataValue::GetBytes Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataValue::GetBytes Method + +Copy between an object and a buffer. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetBytes( + [in] ULONG32 bufLen, + [out] ULONG32 *dataSize, + [out, size_is(bufLen)] BYTE buffer[] +); +``` + +## Parameters + +`bufLen`\ +[in] The length in bytes of the buffer `buffer`. + +`dataSize`\ +[out] The number of bytes of data written to the buffer `buffer`. + +`buffer`\ +[out] The data bytes of the object. + +## Remarks + +The provided method is part of the `IXCLRDataValue` interface and corresponds to the 7th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataValue Interface](ixclrdatavalue-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatavalue-getflags-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-getflags-method.md new file mode 100644 index 0000000000000..8d5c2e39dca44 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-getflags-method.md @@ -0,0 +1,54 @@ +--- +description: "Learn more about: IXCLRDataValue::GetFlags Method" +title: "IXCLRDataValue::GetFlags Method" +ms.date: "07/03/2024" +api.name: + - "IXCLRDataValue::GetFlags Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataValue::GetFlags Method" +helpviewer.keywords: + - "IXCLRDataValue::GetFlags Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataValue::GetFlags Method + +Gets state flags describing the value. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetFlags( + [out] ULONG32 *flags +); +``` + +## Parameters + +`flags`\ +[out] The state flags describing the value. These consist of one or more values defined in the `CLRDataValueFlag` enumeration. + +## Remarks + +The provided method is part of the `IXCLRDataValue` interface and corresponds to the 4th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataValue Interface](ixclrdatavalue-interface.md) +- [CLRDataValueFlag Enumeration](clrdatavalueflag-enumeration.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatavalue-getnumfields2-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-getnumfields2-method.md new file mode 100644 index 0000000000000..7f11903ec985c --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-getnumfields2-method.md @@ -0,0 +1,62 @@ +--- +description: "Learn more about: IXCLRDataValue::GetNumFields2 Method" +title: "IXCLRDataValue::GetNumFields2 Method" +ms.date: "07/03/2024" +api.name: + - "IXCLRDataValue::GetNumFields2 Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataValue::GetNumFields2 Method" +helpviewer.keywords: + - "IXCLRDataValue::GetNumFields2 Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataValue::GetNumFields2 Method + +Gets the number of arguments corresponding to the stack frame method. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetNumFields2( + [in] ULONG32 flags, + [in] IXCLRDataTypeInstance *fromType, + [out] ULONG32 *numFields +); +``` + +## Parameters + +`flags`\ +[in] A set of flags defining what fields to count. Such is one or more of the `CLRDataFieldFlag` enumeration. + +`fromType`\ +[in] If provided, only fields defined in the given type will be counted. + +`numFields`\ +[out] The count of fields in the value as described by `flags` and `fromType`. + +## Remarks + +The provided method is part of the `IXCLRDataValue` interface and corresponds to the 13th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataValue Interface](ixclrdataframe-interface.md) +- [CLRDataFieldFlag Enumeration](clrdatafieldflag-enumeration.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatavalue-getnumlocations-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-getnumlocations-method.md new file mode 100644 index 0000000000000..20d9a9dc22ff5 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-getnumlocations-method.md @@ -0,0 +1,54 @@ +--- +description: "Learn more about: IXCLRDataValue::GetNumLocations Method" +title: "IXCLRDataValue::GetNumLocations Method" +ms.date: "07/03/2024" +api.name: + - "IXCLRDataValue::GetNumLocations Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataValue::GetNumLocations Method" +helpviewer.keywords: + - "IXCLRDataValue::GetNumLocations Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataValue::GetNumLocations Method + +Gets the number of locations the value's data is spread across. Note that calling this method requires that the value be of revision 3 or higher. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetNumLocations( + [out] ULONG32 *numLocs +); +``` + +## Parameters + +`numLocs`\ +[out] The number of locations that value's data is spread across. + +## Remarks + +The provided method is part of the `IXCLRDataValue` interface and corresponds to the 29th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataValue Interface](ixclrdatavalue-interface.md) +- [IXCLRDataValue::Request Method](ixclrdatavalue-request-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatavalue-getsize-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-getsize-method.md new file mode 100644 index 0000000000000..51450a657afad --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-getsize-method.md @@ -0,0 +1,53 @@ +--- +description: "Learn more about: IXCLRDataValue::GetSize Method" +title: "IXCLRDataValue::GetSize Method" +ms.date: "07/03/2024" +api.name: + - "IXCLRDataValue::GetSize Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataValue::GetSize Method" +helpviewer.keywords: + - "IXCLRDataValue::GetSize Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataValue::GetSize Method + +Gets the size in bytes of the value. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetSize( + [out] ULONG64 *size +); +``` + +## Parameters + +`size`\ +[out] The size in bytes of the value. + +## Remarks + +The provided method is part of the `IXCLRDataValue` interface and corresponds to the 6th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataValue Interface](ixclrdatavalue-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatavalue-getstring-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-getstring-method.md new file mode 100644 index 0000000000000..9420349c75e7b --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-getstring-method.md @@ -0,0 +1,61 @@ +--- +description: "Learn more about: IXCLRDataValue::GetString Method" +title: "IXCLRDataValue::GetString Method" +ms.date: "07/03/2024" +api.name: + - "IXCLRDataValue::GetString Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataValue::GetString Method" +helpviewer.keywords: + - "IXCLRDataValue::GetString Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataValue::GetString Method + +Gets the length and contents of a string value. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetString( + [in] ULONG32 bufLen, + [out] ULONG32 *strLen, + [out, size_if(bufLen)] WCHAR str[] +); +``` + +## Parameters + +`bufLen`\ +[in] The length in characters of the `str` buffer. + +`strLen`\ +[out] The number of characters in the string content written to `str`. + +`str`\ +[out] The content of the string. + +## Remarks + +The provided method is part of the `IXCLRDataValue` interface and corresponds to the 23rd slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataValue Interface](ixclrdatavalue-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatavalue-gettype-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-gettype-method.md new file mode 100644 index 0000000000000..4548c24e7bb37 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-gettype-method.md @@ -0,0 +1,54 @@ +--- +description: "Learn more about: IXCLRDataValue::GetType Method" +title: "IXCLRDataValue::GetType Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataValue::GetType Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataValue::GetType Method" +helpviewer.keywords: + - "IXCLRDataValue::GetType Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataValue::GetType Method + +Gets the type of the value. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT GetType( + [out] IXCLRDataTypeInstance **typeInstance +); +``` + +## Parameters + +`typeInstance`\ +[out] The type of the value. + +## Remarks + +The provided method is part of the `IXCLRDataValue` interface and corresponds to the 9th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataValue Interface](ixclrdatavalue-interface.md) +- [IXCLRDataTypeInstance Interface](ixclrdatatypeinstance-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatavalue-interface.md b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-interface.md new file mode 100644 index 0000000000000..13407e8a76dd2 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-interface.md @@ -0,0 +1,64 @@ +--- +description: "Learn more about: IXCLRDataValue Interface" +title: "IXCLRDataValue Interface" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataValue Interface" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataValue Interface" +helpviewer.keywords: + - "IXCLRDataValue Interface [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataValue Interface + +Provides methods for querying information about a data value. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Methods + +| Method | Description | +| ----------------------------------------------------------------------------------------------------------------------- | ------------------------------------------- | +| [GetAssociatedValue](ixclrdatavalue-getassociatedvalue-method.md) | Gets the value implicitly associated with this value. | +| [GetArrayElement](ixclrdatavalue-getarrayelement-method.md) | Gets the value representing a given element in the array. | +| [StartEnumFieldsByName](ixclrdatavalue-startenumfieldsbyname-method.md) | Provides a handle to enumerate the fields of this value by name. | +| [EnumFieldByName](ixclrdatavalue-enumfieldbyname-method.md) | Enumerates the fields of this value by name. | +| [EndEnumFieldsByName](ixclrdatavalue-endenumfieldsbyname-method.md) | Releases the resources used by internal iterators used during field enumeration. | +| [GetFlags](ixclrdatavalue-getflags-method.md) | Gets state flags of this value. | +| [GetNumFields2](ixclrdatavalue-getnumfields2-method.md) | Gets the number of fields in the value. | +| [GetArrayProperties](ixclrdatavalue-getarrayproperties-method.md) | Gets the definition of an array value. | +| [StartEnumFields](ixclrdatavalue-startenumfields-method.md) | Provides a handle to enumerate the fields of this value. | +| [EnumField](ixclrdatavalue-enumfield-method.md) | Enumerates the fields of this value. | +| [EndEnumFields](ixclrdatavalue-endenumfields-method.md) | Releases the resources used by internal iterators used during field enumeration. | +| [GetString](ixclrdatavalue-getstring-method.md) | Gets the length and contents of a string value. | +| [GetBytes](ixclrdatavalue-getbytes-method.md) | Copy between an object and a buffer. | +| [Request](ixclrdatavalue-request-method.md) | Requests to populate the buffer given with the value's data. | +| [GetType](ixclrdatavalue-gettype-method.md) | Gets the type of the value. | +| [GetSize](ixclrdatavalue-getsize-method.md) | Gets the size (in bytes) of the value. | +| [GetAddress](ixclrdatavalue-getaddress-method.md) | Gets the address of the object if the object is a single continuous piece of data in memory. | +| [GetNumLocations](ixclrdatavalue-getnumlocations-method.md) | Gets the number of locations the value's data is spread across. | +| [GetAssociatedType](ixclrdatavalue-getassociatedtype-method.md) | Gets the type of the value implicitly associated with this value. | + +## Remarks + +This interface lives inside the runtime and is not exposed through any headers or library files. However, it's a COM interface that derives from `IUnknown` with GUID `96EC93C7-1000-4e93-8991-98D8766E6666` that can be obtained through the usual COM mechanisms. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [Debugging Interfaces](debugging-interfaces.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatavalue-request-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-request-method.md new file mode 100644 index 0000000000000..9d8504891467a --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-request-method.md @@ -0,0 +1,74 @@ +--- +description: "Learn more about: IXCLRDataValue::Request Method" +title: "IXCLRDataValue::Request Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataValue::Request Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataValue::Request Method" +helpviewer.keywords: + - "IXCLRDataValue::Request Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataValue::Request Method + +Requests to populate the buffer given with the value's data. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT Request( + [in] ULONG32 reqCode, + [in] ULONG32 inBufferSize, + [in, size_is(inBufferSize)] BYTE* inBuffer, + [in] ULONG32 outBufferSize, + [out, size_is(outBufferSize)] BYTE* outBuffer); +``` + +## Parameters + +`reqCode`\ +[in] Request type to be sent. + +Requests can be one of the following: + +|Member|Value|Description| +|------------|-----------------|-----------------| +|`CLRDATA_REQUEST_REVISION`|0xe0000000|Request the revision of the process. The revision is a ULONG32 numeric value.| + +`inBufferSize`\ +[in] size of the input buffer to be passed in. + +`inBuffer`\ +[in, size_is(inBufferSize)] Buffer pointer for the raw data to be sent in the request. + +`outBufferSize`\ +[in] Size of the output buffer. + +`outBuffer`\ +[out, size_is(outBufferSize)] Buffer pointer to used to store the request response. + +## Remarks + +The provided method is part of the `IXCLRDataValue` interface and corresponds to the 12th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataValue Interface](ixclrdatavalue-interface.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatavalue-startenumfields-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-startenumfields-method.md new file mode 100644 index 0000000000000..c5dfa3e0e1d17 --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-startenumfields-method.md @@ -0,0 +1,63 @@ +--- +description: "Learn more about: IXCLRDataValue::StartEnumAppDomains Method" +title: "IXCLRDataValue::StartEnumAppDomains Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataValue::StartEnumAppDomains Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataValue::StartEnumAppDomains Method" +helpviewer.keywords: + - "IXCLRDataValue::StartEnumAppDomains Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataValue::StartEnumFields Method + +Provides a handle to enumerate the fields of the value. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT StartEnumFields( + [in] ULONG32 flags, + [in] IXCLRDataTypeInstance *fromType, + [out] CLRDATA_ENUM *handle +); +``` + +## Parameters + +`flags`\ +[in] A set of flags definining which fields to enumerate. This is one or more of the flags defined in the `CLRDataFieldFlag` enumeration. + +`fromType` +[in] If provided, only fields defined in this type are enumerated. + +`handle`\ +[out] A handle for enumerating the fields as specified by the other arguments to this method. + +## Remarks + +The provided method is part of the `IXCLRDataValue` interface and corresponds to the 14th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataValue Interface](ixclrdatavalue-interface.md) +- [IXCLRDataValue::EnumField Method](ixclrdatavalue-enumfield-method.md) +- [IXCLRDataValue::EndEnumFields Method](ixclrdatavalue-endenumfields-method.md) diff --git a/docs/framework/unmanaged-api/debugging/ixclrdatavalue-startenumfieldsbyname-method.md b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-startenumfieldsbyname-method.md new file mode 100644 index 0000000000000..fc610046ab00f --- /dev/null +++ b/docs/framework/unmanaged-api/debugging/ixclrdatavalue-startenumfieldsbyname-method.md @@ -0,0 +1,73 @@ +--- +description: "Learn more about: IXCLRDataValue::StartEnumFieldsByName Method" +title: "IXCLRDataValue::StartEnumFieldsByName Method" +ms.date: "07/02/2024" +api.name: + - "IXCLRDataValue::StartEnumFieldsByName Method" +api.location: + - "mscordacwks.dll" +api.type: + - "COM" +f1.keywords: + - "IXCLRDataValue::StartEnumFieldsByName Method" +helpviewer.keywords: + - "IXCLRDataValue::StartEnumFieldsByName Method [.NET Framework debugging]" +topic_type: + - "apiref" +author: "wmessmer" +ms.author: "wmessmer" +--- +# IXCLRDataValue::StartEnumFieldsByName Method + +Provides a handle to enumerate the fields of the value by name. + +[!INCLUDE[debugging-api-recommended-note](../../../../includes/debugging-api-recommended-note.md)] + +## Syntax + +```cpp +HRESULT StartEnumFieldsByName( + [in] LPCWSTR name, + [in] ULONG32 nameFlags, + [in] ULONG32 fieldFlags, + [in] IXCLRDataTypeInstance *fromType, + [out] CLRDATA_ENUM *handle +); +``` + +## Parameters + +`name`\ +[in] The name for which to enumerate matching fields + +`nameFlags`\ +[in] A set of flags defining how to match `name` against field names. This is one of the behaviors defined in the `CLRDataByNameFlag` enumeration. + +`fieldFlags`\ +[in] A set of flags defining which fields to enumerate. This is one or more of the flags defined in the `CLRDataFieldFlag` enumeration. + +`fromType`\ +[in] If provided, only fields defined in this type are enumerated. + +`handle`\ +[out] A handle for enumerating the fields by name as specified by the other arguments to this method. + +## Remarks + +The provided method is part of the `IXCLRDataValue` interface and corresponds to the 17th slot of the virtual method table. + +## Requirements + +**Platforms:** See [System Requirements](../../get-started/system-requirements.md). +**Header:** None +**Library:** None +**.NET Framework Versions:** [!INCLUDE[net_current_v47plus](../../../../includes/net-current-v47plus.md)] + +## See also + +- [Debugging](index.md) +- [IXCLRDataValue Interface](ixclrdatavalue-interface.md) +- [CLRDataByNameFlag Enumeration](clrdatabynameflag-enumeration.md) +- [CLRDataFieldFlag Enumeration](clrdatafieldflag-enumeration.md) +- [IXCLRDataValue::EnumFieldByName Method](ixclrdatavalue-enumfieldbyname-method.md) +- [IXCLRDataValue::EndEnumFieldsByName Method](ixclrdatavalue-endenumfieldsbyname-method.md) diff --git a/docs/framework/unmanaged-api/debugging/logginglevelenum-enumeration.md b/docs/framework/unmanaged-api/debugging/logginglevelenum-enumeration.md index b74dd5889ed9f..440d52d08bb28 100644 --- a/docs/framework/unmanaged-api/debugging/logginglevelenum-enumeration.md +++ b/docs/framework/unmanaged-api/debugging/logginglevelenum-enumeration.md @@ -2,76 +2,76 @@ description: "Learn more about: LoggingLevelEnum Enumeration" title: "LoggingLevelEnum Enumeration" ms.date: "03/30/2017" -api_name: +api_name: - "LoggingLevelEnum" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "LoggingLevelEnum" -helpviewer_keywords: +helpviewer_keywords: - "LoggingLevelEnum enumeration [.NET Framework debugging]" ms.assetid: 09daac08-005a-46b2-beab-408d0820c5e5 -topic_type: +topic_type: - "apiref" --- # LoggingLevelEnum Enumeration -Indicates the severity level of a descriptive message that is written to the event log when a managed thread logs an event. - -## Syntax - -```cpp -typedef enum LoggingLevelEnum { - LTraceLevel0 = 0, - LTraceLevel1, - LTraceLevel2, - LTraceLevel3, - LTraceLevel4, - LStatusLevel0 = 20, - LStatusLevel1, - LStatusLevel2, - LStatusLevel3, - LStatusLevel4, - LWarningLevel = 40, - LErrorLevel = 50, - LPanicLevel = 100 -} LoggingLevelEnum; -``` - -## Members - -|Member|Description| -|------------|-----------------| -|`LTraceLevel0`|The message is a trace level 0.| -|`LTraceLevel1`|The message is a trace level 1.| -|`LTraceLevel2`|The message is a trace level 2.| -|`LTraceLevel3`|The message is a trace level 3.| -|`LTraceLevel4`|The message is a trace level 4.| -|`LStatusLevel0`|The message is a status level 0.| -|`LStatusLevel1`|The message is a status level 1.| -|`LStatusLevel2`|The message is a status level 2.| -|`LStatusLevel3`|The message is a status level 3.| -|`LStatusLevel4`|The message is a status level 4.| -|`LWarningLevel`|The message is a warning level.| -|`LErrorLevel`|The message is an error level.| -|`LPanicLevel`|The message is a panic level.| - -## Remarks +Indicates the severity level of a descriptive message that is written to the event log when a managed thread logs an event. - The common language runtime (CLR) calls the [ICorDebugManagedCallback::LogMessage](icordebugmanagedcallback-logmessage-method.md) method to notify the debugger that a managed thread has logged an event. The CLR passes a value of the `LoggingLevelEnum` enumeration to indicate the severity level of the message that the managed thread wrote to the event log. - -## Requirements +## Syntax + +```cpp +typedef enum LoggingLevelEnum { + LTraceLevel0 = 0, + LTraceLevel1, + LTraceLevel2, + LTraceLevel3, + LTraceLevel4, + LStatusLevel0 = 20, + LStatusLevel1, + LStatusLevel2, + LStatusLevel3, + LStatusLevel4, + LWarningLevel = 40, + LErrorLevel = 50, + LPanicLevel = 100 +} LoggingLevelEnum; +``` + +## Members + +|Member|Description| +|------------|-----------------| +|`LTraceLevel0`|The message is a trace level 0.| +|`LTraceLevel1`|The message is a trace level 1.| +|`LTraceLevel2`|The message is a trace level 2.| +|`LTraceLevel3`|The message is a trace level 3.| +|`LTraceLevel4`|The message is a trace level 4.| +|`LStatusLevel0`|The message is a status level 0.| +|`LStatusLevel1`|The message is a status level 1.| +|`LStatusLevel2`|The message is a status level 2.| +|`LStatusLevel3`|The message is a status level 3.| +|`LStatusLevel4`|The message is a status level 4.| +|`LWarningLevel`|The message is a warning level.| +|`LErrorLevel`|The message is an error level.| +|`LPanicLevel`|The message is a panic level.| + +## Remarks + + The common language runtime (CLR) calls the [ICorDebugManagedCallback::LogMessage](icordebugmanagedcallback-logmessage-method.md) method to notify the debugger that a managed thread has logged an event. The CLR passes a value of the `LoggingLevelEnum` enumeration to indicate the severity level of the message that the managed thread wrote to the event log. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v10plus](../../../../includes/net-current-v10plus-md.md)] - ## See also - diff --git a/docs/framework/unmanaged-api/debugging/pfn-clrdatacreateinstance-function-pointer.md b/docs/framework/unmanaged-api/debugging/pfn-clrdatacreateinstance-function-pointer.md index 4e51eea61af82..01080a54d2f84 100644 --- a/docs/framework/unmanaged-api/debugging/pfn-clrdatacreateinstance-function-pointer.md +++ b/docs/framework/unmanaged-api/debugging/pfn-clrdatacreateinstance-function-pointer.md @@ -2,59 +2,59 @@ description: "Learn more about: PFN_CLRDataCreateInstance Function Pointer" title: "PFN_CLRDataCreateInstance Function Pointer" ms.date: "03/30/2017" -api_name: +api_name: - "PFN_CLRDataCreateInstance" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "PFN_CLRDataCreateInstance" -helpviewer_keywords: +helpviewer_keywords: - "PFN_CLRDataCreateInstance function pointer [.NET Framework debugging]" ms.assetid: 5c66ac57-d751-4de5-af9f-26ceb949af8b -topic_type: +topic_type: - "apiref" --- # PFN_CLRDataCreateInstance Function Pointer -Points to a function that creates an interface object for the specified target item. - -## Syntax - -```cpp -typedef HRESULT (STDAPICALLTYPE* PFN_CLRDataCreateInstance) ( - [in] REFIID iid, - [in] ICLRDataTarget *target, - [out] void **iface -); -``` - -## Parameters - - `iid` - [in] The identifier of the interface to be instantiated. - - `target` - [in] A pointer to a user-implemented [ICLRDataTarget](iclrdatatarget-interface.md) object that represents the target item for which to create the interface object. - - `iface` - [out] A pointer to the address of the returned interface object. - -## Remarks - - The `ICLRDataTarget` object is implemented by the writer of the debugging application. The implementation depends on the type of target item being represented. The target item may be a process, memory dump, remote machine, and so on. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** ClrData.idl - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +Points to a function that creates an interface object for the specified target item. + +## Syntax + +```cpp +typedef HRESULT (STDAPICALLTYPE* PFN_CLRDataCreateInstance) ( + [in] REFIID iid, + [in] ICLRDataTarget *target, + [out] void **iface +); +``` + +## Parameters + + `iid` + [in] The identifier of the interface to be instantiated. + + `target` + [in] A pointer to a user-implemented [ICLRDataTarget](iclrdatatarget-interface.md) object that represents the target item for which to create the interface object. + + `iface` + [out] A pointer to the address of the returned interface object. + +## Remarks + + The `ICLRDataTarget` object is implemented by the writer of the debugging application. The implementation depends on the type of target item being represented. The target item may be a process, memory dump, remote machine, and so on. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** ClrData.idl + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [Debugging Global Static Functions](debugging-global-static-functions.md) diff --git a/docs/framework/unmanaged-api/debugging/stacktrace-simplecontext-structure.md b/docs/framework/unmanaged-api/debugging/stacktrace-simplecontext-structure.md index c6bab4ae784f0..486e8567a60cc 100644 --- a/docs/framework/unmanaged-api/debugging/stacktrace-simplecontext-structure.md +++ b/docs/framework/unmanaged-api/debugging/stacktrace-simplecontext-structure.md @@ -2,56 +2,56 @@ description: "Learn more about: StackTrace_SimpleContext Structure" title: "StackTrace_SimpleContext Structure" ms.date: "03/30/2017" -api_name: +api_name: - "StackTrace_SimpleContext" -api_location: +api_location: - "diasymreader.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "SimpleContext" -helpviewer_keywords: +helpviewer_keywords: - "SimpleContext structure [.NET Framework debugging]" - "StackTrace_SimpleContext structure [.NET Framework debugging]" ms.assetid: d4cef11f-a8ca-49bc-a1b8-6631f9e28f3e -topic_type: +topic_type: - "apiref" --- # StackTrace_SimpleContext Structure -Provides a simple context that can be used in place of a full `CONTEXT` structure. - -## Syntax - -```cpp -struct StackTrace_SimpleContext -{ - ULONG64 StackOffset; // ESP on x86 - ULONG64 FrameOffset; // EBP on x86 - ULONG64 InstructionOffset; // EIP on x86 -}; -``` - -## Members - -|Member|Description| -|------------|-----------------| -|`StackOffset`|The stack pointer, or the enter stack pointer (ESP) on x86 platforms.| -|`FrameOffset`|The frame offset, or the EBP register on x86 platforms.| -|`InstructionOffset`|The instruction pointer, or the enter instruction pointer (EIP) on x86 platforms.| - -## Remarks - - Because stack trace functions typically need to return only the address, frame offset, and stack address, you can optionally use the `SimpleContext` structure instead of a large `CONTEXT` structure. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** SOS_Stacktrace.h - - **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] - +Provides a simple context that can be used in place of a full `CONTEXT` structure. + +## Syntax + +```cpp +struct StackTrace_SimpleContext +{ + ULONG64 StackOffset; // ESP on x86 + ULONG64 FrameOffset; // EBP on x86 + ULONG64 InstructionOffset; // EIP on x86 +}; +``` + +## Members + +|Member|Description| +|------------|-----------------| +|`StackOffset`|The stack pointer, or the enter stack pointer (ESP) on x86 platforms.| +|`FrameOffset`|The frame offset, or the EBP register on x86 platforms.| +|`InstructionOffset`|The instruction pointer, or the enter instruction pointer (EIP) on x86 platforms.| + +## Remarks + + Because stack trace functions typically need to return only the address, frame offset, and stack address, you can optionally use the `SimpleContext` structure instead of a large `CONTEXT` structure. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** SOS_Stacktrace.h + + **.NET Framework Versions:** [!INCLUDE[net_current_v20plus](../../../../includes/net-current-v20plus-md.md)] + ## See also - [Debugging Structures](debugging-structures.md) diff --git a/docs/framework/unmanaged-api/debugging/toc.yml b/docs/framework/unmanaged-api/debugging/toc.yml index 20a627959f850..f91a3a24be7cf 100644 --- a/docs/framework/unmanaged-api/debugging/toc.yml +++ b/docs/framework/unmanaged-api/debugging/toc.yml @@ -1431,50 +1431,298 @@ items: href: isosdacinterface-getmethoddescptrfromip-method.md - name: GetModuleData href: isosdacinterface-getmoduledata-method.md + - name: IXCLRDataAppDomain interface + href: ixclrdataappdomain-interface.md + - name: IXCLRDataExceptionNotification interface + href: ixclrdataexceptionnotification-interface.md + items: + - name: OnCodeDiscarded method + href: ixclrdataexceptionnotification-oncodediscarded-method.md + - name: OnCodeGenerated method + href: ixclrdataexceptionnotification-oncodegenerated-method.md + - name: OnModuleLoaded method + href: ixclrdataexceptionnotification-onmoduleloaded-method.md + - name: OnProcessExecution method + href: ixclrdataexceptionnotification-onprocessexecution-method.md + - name: OnTaskExecution method + href: ixclrdataexceptionnotification-ontaskexecution-method.md + - name: OnTypeLoaded method + href: ixclrdataexceptionnotification-ontypeloaded-method.md + - name: IXCLRDataExceptionNotification2 interface + href: ixclrdataexceptionnotification2-interface.md + items: + - name: OnAppDomainLoaded method + href: ixclrdataexceptionnotification2-onappdomainloaded-method.md + - name: OnAppDomainUnloaded method + href: ixclrdataexceptionnotification2-onappdomainunloaded-method.md + - name: OnException method + href: ixclrdataexceptionnotification2-onexception-method.md + - name: IXCLRDataExceptionNotification3 interface + href: ixclrdataexceptionnotification3-interface.md + items: + - name: OnGcEvent method + href: ixclrdataexceptionnotification3-ongcevent-method.md + - name: IXCLRDataExceptionNotification4 interface + href: ixclrdataexceptionnotification4-interface.md + items: + - name: ExceptionCatcherEnter method + href: ixclrdataexceptionnotification4-exceptioncatcherenter-method.md + - name: IXCLRDataExceptionNotification5 interface + href: ixclrdataexceptionnotification5-interface.md + items: + - name: OnCodeGenerated2 method + href: ixclrdataexceptionnotification5-oncodegenerated2-method.md + - name: IXCLRDataExceptionState interface + href: ixclrdataexceptionstate-interface.md + items: + - name: GetManagedObject method + href: ixclrdataexceptionstate-getmanagedobject-method.md + - name: GetPrevious method + href: ixclrdataexceptionstate-getprevious-method.md + - name: GetString method + href: ixclrdataexceptionstate-getstring-method.md + - name: IsSameState method + href: ixclrdataexceptionstate-issamestate-method.md + - name: IsSameState2 method + href: ixclrdataexceptionstate-issamestate2-method.md + - name: Request method + href: ixclrdataexceptionstate-request-method.md + - name: IXCLRDataFrame interface + href: ixclrdataframe-interface.md + items: + - name: GetArgumentByIndex method + href: ixclrdataframe-getargumentbyindex-method.md + - name: GetLocalVariableByIndex method + href: ixclrdataframe-getlocalvariablebyindex-method.md + - name: GetMethodInstance method + href: ixclrdataframe-getmethodinstance-method.md + - name: GetNumArguments method + href: ixclrdataframe-getnumarguments-method.md + - name: GetNumLocalVariables method + href: ixclrdataframe-getnumlocalvariables-method.md - name: IXCLRDataMethodDefinition interface href: ixclrdatamethoddefinition-interface.md items: - - name: StartEnumInstances - href: ixclrdatamethoddefinition-startenuminstances-method.md - - name: EnumInstance - href: ixclrdatamethoddefinition-enuminstance-method.md + - name: EndEnumExtents + href: ixclrdatamethoddefinition-endenumextents-method.md - name: EndEnumInstances href: ixclrdatamethoddefinition-endenuminstances-method.md + - name: EnumExtent + href: ixclrdatamethoddefinition-enumextent-method.md + - name: EnumInstance + href: ixclrdatamethoddefinition-enuminstance-method.md + - name: GetRepresentativeEntryAddress + href: ixclrdatamethoddefinition-getrepresentativeentryaddress-method.md + - name: GetTokenAndScope + href: ixclrdatamethoddefinition-gettokenandscope-method.md + - name: Request + href: ixclrdatamethoddefinition-request-method.md + - name: StartEnumExtents + href: ixclrdatamethoddefinition-startenumextents.md + - name: StartEnumInstances + href: ixclrdatamethoddefinition-startenuminstances-method.md - name: IXCLRDataMethodInstance interface href: ixclrdatamethodinstance-interface.md items: + - name: EndEnumExtents + href: ixclrdatamethodinstance-endenumextents-method.md + - name: EnumExtent + href: ixclrdatamethodinstance-enumextent-method.md + - name: GetAddressRangesByILOffset + href: ixclrdatamethodinstance-getaddressrangesbyiloffset-method.md + - name: GetDefinition + href: ixclrdatamethodinstance-getdefinition.md - name: GetILAddressMap href: ixclrdatamethodinstance-getiladdressmap-method.md + - name: GetILOffsetsByAddress + href: ixclrdatamethodinstance-getiloffsetsbyaddress-method.md + - name: GetName + href: ixclrdatamethodinstance-getname.md - name: GetRepresentativeEntryAddress href: ixclrdatamethodinstance-getrepresentativeentryaddress-method.md + - name: GetTokenAndScope + href: ixclrdatamethodinstance-gettokenandscope-method.md + - name: Request + href: ixclrdatamethodinstance-request-method.md + - name: StartEnumExtents + href: ixclrdatamethodinstance-startenumextents-method.md - name: IXCLRDataModule interface href: ixclrdatamodule-interface.md items: + - name: EndEnumExtents + href: ixclrdatamodule-endenumextents-method.md + - name: EndEnumTypeDefinitions + href: ixclrdatamodule-endenumtypedefinitions-method.md + - name: EndEnumMethodInstancesByName + href: ixclrdatamodule-endenummethodinstancesbyname-method.md + - name: EnumExtent + href: ixclrdatamodule-enumextent-method.md + - name: EnumMethodInstanceByName + href: ixclrdatamodule-enummethodinstancebyname-method.md + - name: EnumTypeDefinition + href: ixclrdatamodule-enumtypedefinition-method.md + - name: GetFileName + href: ixclrdatamodule-getfilename-method.md - name: GetMethodDefinitionByToken href: ixclrdatamodule-getmethoddefinitionbytoken-method.md - - name: Request - href: ixclrdatamodule-request-method.md - name: GetVersionId href: ixclrdatamodule-getversionid-method.md + - name: Request + href: ixclrdatamodule-request-method.md + - name: StartEnumExtents + href: ixclrdatamodule-startenumextents-method.md + - name: StartEnumMethodInstancesByName + href: ixclrdatamodule-startenummethodinstancesbyname-method.md + - name: StartEnumTypeDefinitions + href: ixclrdatamodule-startenumtypedefinitions-method.md - name: IXCLRDataProcess interface href: ixclrdataprocess-interface.md items: - - name: GetRuntimeNameByAddress - href: ixclrdataprocess-getruntimenamebyaddress-method.md - name: GetAppDomainByUniqueId href: ixclrdataprocess-getappdomainbyuniqueid-method.md - - name: StartEnumModules - href: ixclrdataprocess-startenummodules-method.md - - name: EnumModule - href: ixclrdataprocess-enummodule-method.md + - name: GetRuntimeNameByAddress + href: ixclrdataprocess-getruntimenamebyaddress-method.md + - name: EndEnumAppDomains + href: ixclrdataprocess-endenumappdomains-method.md + - name: EndEnumMethodDefinitionsByAddress + href: ixclrdataprocess-endenummethoddefinitionsbyaddress-method.md - name: EndEnumModules href: ixclrdataprocess-endenummodules-method.md - - name: StartEnumMethodInstancesByAddress - href: ixclrdataprocess-startenummethodinstancesbyaddress-method.md - name: EnumMethodInstanceByAddress href: ixclrdataprocess-enummethodinstancebyaddress-method.md + - name: EndEnumMethodDefinitionsByAddress + href: ixclrdataprocess-endenummethoddefinitionsbyaddress-method.md - name: EndEnumMethodInstancesByAddress href: ixclrdataprocess-endenummethodinstancesbyaddress-method.md + - name: EnumAppDomain + href: ixclrdataprocess-enumappdomain-method.md + - name: EnumModule + href: ixclrdataprocess-enummodule-method.md + - name: FollowStub + href: ixclrdataprocess-followstub-method.md + - name: FollowStub2 + href: ixclrdataprocess-followstub2-method.md + - name: GetAddressType + href: ixclrdataprocess-getaddresstype-method.md + - name: GetModuleByAddress + href: ixclrdataprocess-getmodulebyaddress-method.md + - name: GetTaskByOSThreadID + href: ixclrdataprocess-gettaskbyosthreadid-method.md + - name: GetTaskByUniqueID + href: ixclrdataprocess-gettaskbyuniqueid-method.md + - name: Request + href: ixclrdataprocess-request-method.md + - name: SetAllCodeNotifications + href: ixclrdataprocess-setallcodenotifications-method.md + - name: SetCodeNotifications + href: ixclrdataprocess-setcodenotifications-method.md + - name: SetOtherNotificationFlags + href: ixclrdataprocess-setothernotificationflags-method.md + - name: StartEnumAppDomains + href: ixclrdataprocess-startenumappdomains-method.md + - name: StartEnumMethodDefinitionsByAddress + href: ixclrdataprocess-startenummethoddefinitionsbyaddress-method.md + - name: StartEnumMethodInstancesByAddress + href: ixclrdataprocess-startenummethodinstancesbyaddress-method.md + - name: StartEnumModules + href: ixclrdataprocess-startenummodules-method.md + - name: TranslateExceptionRecordToNotification + href: ixclrdataprocess-translateexceptionrecordtonotification-method.md + - name: IXCLRDataStackWalk interface + href: ixclrdatastackwalk-interface.md + items: + - name: GetFrame method + href: ixclrdatastackwalk-getframe-method.md + - name: GetFrameType method + href: ixclrdatastackwalk-getframetype-method.md + - name: Next method + href: ixclrdatastackwalk-next-method.md + - name: Request method + href: ixclrdatastackwalk-request-method.md + - name: SetContext method + href: ixclrdatastackwalk-setcontext-method.md + - name: IXCLRDataTask interface + href: ixclrdatatask-interface.md + items: + - name: CreateStackWalk method + href: ixclrdatatask-createstackwalk-method.md + - name: GetCurrentAppDomain method + href: ixclrdatatask-getcurrentappdomain-method.md + - name: GetCurrentExceptionState method + href: ixclrdatatask-getcurrentexceptionstate-method.md + - name: GetLastExceptionState method + href: ixclrdatatask-getlastexceptionstate-method.md + - name: IXCLRDataTypeDefinition interface + href: ixclrdatatypedefinition-interface.md + items: + - name: EndEnumMethodDefinitions method + href: ixclrdatatypedefinition-endenummethoddefinitions-method.md + - name: EnumMethodDefinition method + href: ixclrdatatypedefinition-enummethoddefinition-method.md + - name: GetCorElementType method + href: ixclrdatatypedefinition-getcorelementtype-method.md + - name: GetName method + href: ixclrdatatypedefinition-getname-method.md + - name: GetTokenAndScope method + href: ixclrdatatypedefinition-gettokenandscope-method.md + - name: StartEnumMethodDefinitions method + href: ixclrdatatypedefinition-startenummethoddefinitions-method.md + - name: IXCLRDataTypeInstance interface + href: ixclrdatatypeinstance-interface.md + items: + - name: EndEnumMethodInstances method + href: ixclrdatatypeinstance-endenummethodinstances-method.md + - name: GetDefinition method + href: ixclrdatatypeinstance-getdefinition-method.md + - name: GetName method + href: ixclrdatatypeinstance-getname-method.md + - name: GetNumStaticFields method + href: ixclrdatatypeinstance-getnumstaticfields-method.md + - name: GetStaticFieldByIndex method + href: ixclrdatatypeinstance-getstaticfieldbyindex-method.md + - name: StartEnumMethodInstances method + href: ixclrdatatypeinstance-startenummethodinstances-method.md + - name: IXCLRDataValue interface + href: ixclrdatavalue-interface.md + items: + - name: EndEnumFields method + href: ixclrdatavalue-endenumfields-method.md + - name: EndEnumFieldsByName method + href: ixclrdatavalue-endenumfieldsbyname-method.md + - name: EnumField method + href: ixclrdatavalue-enumfield-method.md + - name: EnumFieldByName method + href: ixclrdatavalue-enumfieldbyname-method.md + - name: GetAddress method + href: ixclrdatavalue-getaddress-method.md + - name: GetArrayElement method + href: ixclrdatavalue-getarrayelement-method.md + - name: GetArrayProperties method + href: ixclrdatavalue-getarrayproperties-method.md + - name: GetAssociatedType method + href: ixclrdatavalue-getassociatedtype-method.md + - name: GetAssociatedValue method + href: ixclrdatavalue-getassociatedvalue-method.md + - name: GetBytes method + href: ixclrdatavalue-getbytes-method.md + - name: GetFlags method + href: ixclrdatavalue-getflags-method.md + - name: GetNumFields2 method + href: ixclrdatavalue-getnumfields2-method.md + - name: GetNumLocations method + href: ixclrdatavalue-getnumlocations-method.md + - name: GetSize method + href: ixclrdatavalue-getsize-method.md + - name: GetString method + href: ixclrdatavalue-getstring-method.md + - name: GetType method + href: ixclrdatavalue-gettype-method.md + - name: Request method + href: ixclrdatavalue-request-method.md + - name: StartEnumFields method + href: ixclrdatavalue-startenumfields-method.md + - name: StartEnumFieldsByName method + href: ixclrdatavalue-startenumfieldsbyname-method.md - name: Debugging global static functions href: debugging-global-static-functions.md items: @@ -1493,12 +1741,36 @@ items: - name: Debugging enumerations href: debugging-enumerations.md items: - - name: CLR_DEBUGGING_PROCESS_FLAGS enumeration - href: clr-debugging-process-flags-enumeration.md + - name: CLRDataAddressType enumeration + href: clrdataaddresstype-enumeration.md + - name: CLRDataByNameFlag enumeration + href: clrdatabynameflag-enumeration.md + - name: CLRDataDetailedFrameType enumeration + href: clrdatadetailedframetype-enumeration.md - name: CLRDataEnumMemoryFlags enumeration href: clrdataenummemoryflags-enumeration.md + - name: CLRDataExceptionSameFlag enumeration + href: clrdataexceptionsameflag-enumeration.md + - name: CLRDataFieldFlag enumeration + href: clrdatafieldflag-enumeration.md + - name: CLRDataFollowStubInFlag enumeration + href: clrdatafollowstubinflag-enumeration.md + - name: CLRDataFollowStubOutFlag enumeration + href: clrdatafollowstuboutflag-enumeration.md + - name: CLRDataMethodCodeNotification enumeration + href: clrdatamethodcodenotification-enumeration.md + - name: CLRDataModuleExtentType enumeration + href: clrdatamoduleextenttype-enumeration.md + - name: CLRDataOtherNotifyFlag enumeration + href: clrdataothernotifyflag-enumeration.md + - name: CLRDataSimpleFrameType enumeration + href: clrdatasimpleframetype-enumeration.md - name: ClrDataSourceType enumeration href: clrdatasourcetype-enumeration.md + - name: ClrDataValueFlag enumeration + href: clrdatavalueflag-enumeration.md + - name: CLR_DEBUGGING_PROCESS_FLAGS enumeration + href: clr-debugging-process-flags-enumeration.md - name: COR_PUB_ENUMPROCESS enumeration href: cor-pub-enumprocess-enumeration.md - name: CorDebugBlockingReason enumeration @@ -1580,6 +1852,10 @@ items: items: - name: CLRDATA_ADDRESS_RANGE structure href: clrdata-address-range-structure.md + - name: CLRDATA_METHDEF_EXTENT Structure + href: clrdata-methdef-extent-structure.md + - name: CLRDATA_MODULE_EXTENT Structure + href: clrdata-module-extent-structure.md - name: CLRDATA_IL_ADDRESS_MAP structure href: clrdata-il-address-map-structure.md - name: CLR_DEBUGGING_VERSION structure @@ -1631,6 +1907,8 @@ items: href: dacpmoduledata-structure.md - name: DacpReJitData structure href: dacprejitdata-structure.md + - name: GcEvtArgs structure + href: gcevtargs-structure.md - name: StackTrace_SimpleContext structure href: stacktrace-simplecontext-structure.md - name: .NET Core debugging diff --git a/docs/framework/unmanaged-api/debugging/variablelocationtype-enumeration.md b/docs/framework/unmanaged-api/debugging/variablelocationtype-enumeration.md index 3987042292511..26f148a86b03f 100644 --- a/docs/framework/unmanaged-api/debugging/variablelocationtype-enumeration.md +++ b/docs/framework/unmanaged-api/debugging/variablelocationtype-enumeration.md @@ -2,57 +2,57 @@ description: "Learn more about: VariableLocationType Enumeration" title: "VariableLocationType Enumeration" ms.date: "03/30/2017" -api_name: +api_name: - "VariableLocationType" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" -f1_keywords: +f1_keywords: - "VariableLocationType" -helpviewer_keywords: +helpviewer_keywords: - "VariableLocationType enumeration [.NET Framework debugging]" ms.assetid: 8635ee3a-c84b-4626-876c-416bee54f787 -topic_type: +topic_type: - "apiref" --- # VariableLocationType Enumeration -Indicates the native location type of a variable. - -## Syntax - -```cpp -typedef enum VariableLocationType -{ +Indicates the native location type of a variable. + +## Syntax + +```cpp +typedef enum VariableLocationType +{ VLT_REGISTER, VLT_REGISTER_RELATIVE, - VLT_INVALID -} VariableLocationType; -``` - -## Members - -|Member|Description| -|------------|-----------------| -|`VLT_REGISTER`|The variable is in a register.| -|`VLT_REGISTER_RELATIVE`|The variable is in a register-relative memory location.| -|`VLT_INVALID`|The variable is not stored in a register or a register-relative memory location.| - -## Remarks - - A member of the `VariableLocationType` enumeration is returned by the [ICorDebugVariableHome::GetLocationType](icordebugvariablehome-getlocationtype-method.md) method. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v462plus](../../../../includes/net-current-v462plus-md.md)] - + VLT_INVALID +} VariableLocationType; +``` + +## Members + +|Member|Description| +|------------|-----------------| +|`VLT_REGISTER`|The variable is in a register.| +|`VLT_REGISTER_RELATIVE`|The variable is in a register-relative memory location.| +|`VLT_INVALID`|The variable is not stored in a register or a register-relative memory location.| + +## Remarks + + A member of the `VariableLocationType` enumeration is returned by the [ICorDebugVariableHome::GetLocationType](icordebugvariablehome-getlocationtype-method.md) method. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v462plus](../../../../includes/net-current-v462plus-md.md)] + ## See also - [Debugging Enumerations](debugging-enumerations.md) diff --git a/docs/framework/unmanaged-api/debugging/writeablemetadataupdatemode-enumeration.md b/docs/framework/unmanaged-api/debugging/writeablemetadataupdatemode-enumeration.md index 52f4dee996125..ea09f0d6c4950 100644 --- a/docs/framework/unmanaged-api/debugging/writeablemetadataupdatemode-enumeration.md +++ b/docs/framework/unmanaged-api/debugging/writeablemetadataupdatemode-enumeration.md @@ -2,56 +2,56 @@ description: "Learn more about: WriteableMetadataUpdateMode Enumeration" title: "WriteableMetadataUpdateMode Enumeration" ms.date: "03/30/2017" -dev_langs: +dev_langs: - "cpp" -api_name: +api_name: - "WriteableMetadataUpdateMode" -api_location: +api_location: - "mscordbi.dll" -api_type: +api_type: - "COM" ms.assetid: 6758f4d3-6bc7-4c99-8582-e9be00566784 -topic_type: +topic_type: - "apiref" --- # WriteableMetadataUpdateMode Enumeration -[Supported in the .NET Framework 4.5.2 and later versions] - - Provides values that specify whether in-memory updates to metadata are visible to a debugger. - -## Syntax - +[Supported in the .NET Framework 4.5.2 and later versions] + + Provides values that specify whether in-memory updates to metadata are visible to a debugger. + +## Syntax + ```cpp -typedef enum WriteableMetadataUpdateMode { - LegacyCompatPolicy, - AlwaysShowUpdates -} WriteableMetadataUpdateMode; -``` - -## Members - -|Member name|Description| -|-----------------|-----------------| -|`LegacyCompatPolicy`|Maintain compatibility with previous versions of the .NET Framework when making in-memory updates to metadata visible. See the Remarks section for more information.| -|`AlwaysShowUpdates`|Make in-memory updates to metadata visible to the debugger.| - -## Remarks - - A member of the `WriteableMetadataUpdateMode` enumeration can be passed to the [SetWriteableMetadataUpdateMode](icordebugprocess7-setwriteablemetadataupdatemode-method.md) method to control whether in-memory updates to metadata in the target process are visible to the debugger. - - The `LegacyCompatPolicy` option enforces the same behavior as in versions of the .NET Framework before 4.5.2. This often means that metadata from updates is not visible. However, calls to a number of debugging methods implicitly coerce the debugger to make updates visible. For example, if the debugger passes [ICorDebugILFrame::GetLocalVariable](icordebugilframe-getlocalvariable-method.md) the index of a variable not found in the method's original metadata, all metadata for the module is updated to a snapshot matching the current state of the process. In other words, with the `LegacyCompatPolicy` option, the debugger might see none, some, or all of the available metadata updates, depending on how it uses other parts of the unmanaged debugging API. - -## Requirements - - **Platforms:** See [System Requirements](../../get-started/system-requirements.md). - - **Header:** CorDebug.idl, CorDebug.h - - **Library:** CorGuids.lib - - **.NET Framework Versions:** [!INCLUDE[net_current_v452plus](../../../../includes/net-current-v452plus-md.md)] - +typedef enum WriteableMetadataUpdateMode { + LegacyCompatPolicy, + AlwaysShowUpdates +} WriteableMetadataUpdateMode; +``` + +## Members + +|Member name|Description| +|-----------------|-----------------| +|`LegacyCompatPolicy`|Maintain compatibility with previous versions of the .NET Framework when making in-memory updates to metadata visible. See the Remarks section for more information.| +|`AlwaysShowUpdates`|Make in-memory updates to metadata visible to the debugger.| + +## Remarks + + A member of the `WriteableMetadataUpdateMode` enumeration can be passed to the [SetWriteableMetadataUpdateMode](icordebugprocess7-setwriteablemetadataupdatemode-method.md) method to control whether in-memory updates to metadata in the target process are visible to the debugger. + + The `LegacyCompatPolicy` option enforces the same behavior as in versions of the .NET Framework before 4.5.2. This often means that metadata from updates is not visible. However, calls to a number of debugging methods implicitly coerce the debugger to make updates visible. For example, if the debugger passes [ICorDebugILFrame::GetLocalVariable](icordebugilframe-getlocalvariable-method.md) the index of a variable not found in the method's original metadata, all metadata for the module is updated to a snapshot matching the current state of the process. In other words, with the `LegacyCompatPolicy` option, the debugger might see none, some, or all of the available metadata updates, depending on how it uses other parts of the unmanaged debugging API. + +## Requirements + + **Platforms:** See [System Requirements](../../get-started/system-requirements.md). + + **Header:** CorDebug.idl, CorDebug.h + + **Library:** CorGuids.lib + + **.NET Framework Versions:** [!INCLUDE[net_current_v452plus](../../../../includes/net-current-v452plus-md.md)] + ## See also - [Debugging Enumerations](debugging-enumerations.md)