Requests - Create Requests Request Id Debug Entries

Create debug entries for a symbol request as specified by its identifier.

POST https://artifacts.dev.azure.com/{organization}/_apis/symbol/requests/{requestId}?collection={collection}&api-version=6.0-preview.1

URI Parameters

Name In Required Type Description
organization
path True

string

The name of the Azure DevOps organization.

requestId
path True

string

The symbol request identifier.

api-version
query True

string

Version of the API to use. This should be set to '6.0-preview.1' to use this version of the api.

collection
query True

string

A valid debug entry collection name. Must be "debugentries".

Request Body

Name Type Description
createBehavior

DebugEntryCreateBehavior

Defines what to do when a debug entry in the batch already exists.

debugEntries

DebugEntry[]

The debug entries.

Responses

Name Type Description
200 OK

DebugEntry[]

Successfully created debug entries for the specified request.

400 Bad Request

DebugEntry[]

Could not create debug entries since the specified create behavior is not recognized.

Other Status Codes

DebugEntry[]

Could not create debug entries since at least one entry already exists and the specified create behavior is ThrowIfExists.

Security

oauth2

Type: oauth2
Flow: accessCode
Authorization URL: https://app.vssps.visualstudio.com/oauth2/authorize&response_type=Assertion
Token URL: https://app.vssps.visualstudio.com/oauth2/token?client_assertion_type=urn:ietf:params:oauth:client-assertion-type:jwt-bearer&grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer

Scopes

Name Description
vso.symbols_write Grants the ability to read and write symbols.

Examples

Sample request

POST https://artifacts.dev.azure.com/fabrikam/_apis/symbol/requests/9dc380b5c295c03188108014a73574987cdef9a4edce00b01c9ec2d05fa97c37?api-version=6.0-preview.1

{
  "blobIdentifier": {
    "identifierValue": "cZSUgWLJKRZmXuaLhvXo9NRdb2Be9Ek64KVv2qsz8jYA"
  },
  "clientKey": "symbol.exe/557a1d8ee000/symbol.exe",
  "informationLevel": "binary"
}

Sample response

{
  "blobIdentifier": {
    "identifierValue": "cZSUgWLJKRZmXuaLhvXo9NRdb2Be9Ek64KVv2qsz8jYA"
  },
  "blobUri": "https://fabrikam.blob.core.windows.net/b-22ed989c337948c0a3e3ab4910ff3c94/7194948162C92916665EE68B86F5E8F4D45D6F605EF4493AE0A56FDAAB33F23600.blob?sas",
  "clientKey": "symbol.exe/557a1d8ee000/symbol.exe",
  "informationLevel": "binary",
  "requestId": "9dc380b5c295c03188108014a73574987cdef9a4edce00b01c9ec2d05fa97c37",
  "status": "created",
  "createdBy": "00030000CA16C4DA@Live.com",
  "createdDate": "2015-07-17T20:14:52",
  "id": "symbol.exe/557a1d8ee000/symbol.exe/00000001",
  "storageETag": "W/\"datetime'2015-07-17T20%3A14%3A52.4410239Z'\"",
  "url": "https://artifacts.dev.azure.com/fabrikam/_apis/Symbol/requests/9dc380b5c295c03188108014a73574987cdef9a4edce00b01c9ec2d05fa97c37/debugentries/symbol.exe/557a1d8ee000/symbol.exe/00000001"
}

Definitions

Name Description
DebugEntry

A dual-purpose data object, the debug entry is used by the client to publish the symbol file (with file's blob identifier, which can be calculated from VSTS hashing algorithm) or query the file (with a client key). Since the symbol server tries to return a matched symbol file with the richest information level, it may not always point to the same symbol file for different queries with same client key.

DebugEntryCreateBatch

A batch of debug entry to create.

DebugEntryCreateBehavior

Defines what to do when a debug entry in the batch already exists.

DebugEntryStatus

The status of debug entry.

DebugInformationLevel

The information level this debug entry contains.

JsonBlobBlockHash

BlobBlock hash formatted to be deserialized for symbol service.

JsonBlobIdentifier
JsonBlobIdentifierWithBlocks

BlobIdentifier with block hashes formatted to be deserialzied for symbol service.

DebugEntry

A dual-purpose data object, the debug entry is used by the client to publish the symbol file (with file's blob identifier, which can be calculated from VSTS hashing algorithm) or query the file (with a client key). Since the symbol server tries to return a matched symbol file with the richest information level, it may not always point to the same symbol file for different queries with same client key.

Name Type Description
blobDetails

JsonBlobIdentifierWithBlocks

Details of the blob formatted to be deserialized for symbol service.

blobIdentifier

JsonBlobIdentifier

A blob identifier of the symbol file to upload to this debug entry. This property is mostly used during creation of debug entry (a.k.a. symbol publishing) to allow the server to query the existence of the blob.

blobUri

string

The URI to get the symbol file. Provided by the server, the URI contains authentication information and is readily accessible by plain HTTP GET request. The client is recommended to retrieve the file as soon as it can since the URI will expire in a short period.

clientKey

string

A key the client (debugger, for example) uses to find the debug entry. Note it is not unique for each different symbol file as it does not distinguish between those which only differ by information level.

createdBy

string (uuid)

The ID of user who created this item. Optional.

createdDate

string (date-time)

The date time when this item is created. Optional.

id

string

An identifier for this item. Optional.

informationLevel

DebugInformationLevel

The information level this debug entry contains.

requestId

string

The identifier of symbol request to which this debug entry belongs.

size

integer (int64)

The size for the debug entry.

status

DebugEntryStatus

The status of debug entry.

storageETag

string

An opaque ETag used to synchronize with the version stored at server end. Optional.

url

string

A URI which can be used to retrieve this item in its raw format. Optional. Note this is distinguished from other URIs that are present in a derived resource.

DebugEntryCreateBatch

A batch of debug entry to create.

Name Type Description
createBehavior

DebugEntryCreateBehavior

Defines what to do when a debug entry in the batch already exists.

debugEntries

DebugEntry[]

The debug entries.

DebugEntryCreateBehavior

Defines what to do when a debug entry in the batch already exists.

Value Description
throwIfExists

Throw exceptions at server end. This will translate to 409 (Conflict) HTTP status code.

skipIfExists

Do not add this debug entry. The rest of the batch, if any, is not affected.

overwriteIfExists

Overwrite the existing debug entry.

DebugEntryStatus

The status of debug entry.

Value Description
none

The status of this debug entry is undefined or irrelevant in the current context.

created

The debug entry is created and read to use.

blobMissing

The symbol file for the requested debug entry is missing.

DebugInformationLevel

The information level this debug entry contains.

Value Description
none

If set, the .pdb file contains no debug information.

binary

If set, the .pdb file contains debug information which is binary.

publics

If set, the .pdb file contains public symbols.

traceFormatPresent

If set, the .pdb file contains trace format.

typeInfo

If set, the .pdb file contains type information.

lineNumbers

If set, the .pdb file contains line number information.

globalSymbols

If set, the .pdb file contains symbol information.

private

If set, the .pdb file contains public symbols and has type, line number and symbol information.

sourceIndexed

If set, the .pdb file supports the source server.

JsonBlobBlockHash

BlobBlock hash formatted to be deserialized for symbol service.

Name Type Description
hashBytes

string[] (byte)

Array of hash bytes.

JsonBlobIdentifier

Name Type Description
identifierValue

string[] (byte)

JsonBlobIdentifierWithBlocks

BlobIdentifier with block hashes formatted to be deserialzied for symbol service.

Name Type Description
blockHashes

JsonBlobBlockHash[]

List of blob block hashes.

identifierValue

string[] (byte)

Array of blobId bytes.