Share via


DkmResolvedDocument Class

Definition

Object which represents the result of a source file query against a symbol file (PDB). The resolved document object might encapsulate multiple document records with the symbol file. For example, in C++ compilation, each time that a header file is included there is another reference within the PDB. However, there is only one DkmResolvedDocument object for the header file.

Derived classes: DkmResolvedMappedDocument

public ref class DkmResolvedDocument : Microsoft::VisualStudio::Debugger::DkmDataContainer, IDisposable
[System.Runtime.InteropServices.Guid("79baa60b-1e97-ac96-0d95-996e6b997c33")]
public class DkmResolvedDocument : Microsoft.VisualStudio.Debugger.DkmDataContainer, IDisposable
[<System.Runtime.InteropServices.Guid("79baa60b-1e97-ac96-0d95-996e6b997c33")>]
type DkmResolvedDocument = class
    inherit DkmDataContainer
    interface IDisposable
Public Class DkmResolvedDocument
Inherits DkmDataContainer
Implements IDisposable
Inheritance
DkmResolvedDocument
Inheritance
DkmResolvedDocument
Derived
Attributes
Implements

Properties

DocumentName

Name of the source file. This is generally a full path, but in some scenarios it make be a partial path or just a name with extension (ex: example.cpp). In the case of a dynamic document (ex: running script from internet explorer) 'Path' could be a URL rather than a local file path.

IsUnloaded

Returns true if a 'unloaded' event has been raised for this object (example: DkmThread::Unload is called) or if the object has been closed. Note that care must be used when checking this status as, without synchronization, the returned status may no longer be accurate the instruction after it is read.

(Inherited from DkmDataContainer)
MatchStrength

Indicates how strong of a match there was between the DkmDocumentQuery and the resulting DkmResolvedDocument.

Module

The DkmModule class represents a code bundle (ex: dll or exe) which is or once was loaded into one or more processes. The DkmModule class is the central object to the symbol APIs, and is 1:1 with the symbol handler's notation of what is loaded. If a code bundle loads into three different processes (or the same process but with three different base addresses or three different app domains) but the symbol handler thinks of all of these as being identical, there will be only one module object.

ScriptDocument

[Optional] Script document which this resolved document represents. This should be null for non script-based symbol providers.

TextRequested

If true, return the source text.

UniqueId

Guid which uniquely identifies this object.

Warning

Warning that occurred during the match. Depending on context, these may need to be surfaced to the user.

Methods

Close()

Closes the resolved document object. This method must be invoked when the component which requested the resolved document is done with the object.

DkmResolvedDocument objects are automatically closed when their associated DkmModule object is closed.

Create(DkmModule, String, DkmScriptDocument, DkmDocumentMatchStrength, DkmResolvedDocumentWarning, Boolean, DkmDataItem)

Creates a new resolved document object. Resolved document objects are created by a symbol provider. They are a data container so that a symbol provider may back the resolved document with their own internal state.

FindSymbols(DkmTextSpan, String, DkmSourcePosition[])

Finds the symbols within the document which best match the input text span.

For IL-based languages, the symbol handler always return the DkmInstructionSymbol for sequence points. It will prefer sequence points which exactly match the text span followed by the sequence point or points which is left-most and which is inside the input span.

Location constraint: API must be called from an IDE component (component level > 100,000).

FindSymbols(DkmWorkList, DkmTextSpan, String, DkmCompletionRoutine<DkmFindSymbolsAsyncResult>)

Finds the symbols within the document which best match the input text span.

For IL-based languages, the symbol handler always return the DkmInstructionSymbol for sequence points. It will prefer sequence points which exactly match the text span followed by the sequence point or points which is left-most and which is inside the input span.

This method will append a new work item to the specified work list, and return once the work item has been appended. The actual processing of the work item is asynchronous. The caller will be notified that the request is complete through the completion routine.

Location constraint: API must be called from an IDE component (component level > 100,000).

GetDataItem<T>()

Gets the instance of 'T' which has been added to this container instance. If this container does not contain a 'T', this function will return null.

(Inherited from DkmDataContainer)
RemoveDataItem<T>()

Remove the instance of 'T' from this container. It is usually unnecessary to call this method as a data container will automatically be emptied when the object is closed.

(Inherited from DkmDataContainer)
SetDataItem<T>(DkmDataCreationDisposition, T)

Place a new item in the data container.

(Inherited from DkmDataContainer)

Explicit Interface Implementations

IDisposable.Dispose()

Applies to