Frage

I'm working on a custom symbols/source server. I've been able to produce pdb files which reference our sources. The most of our sources can be retrieved by Visual Studio. But sometimes, SRCSRV fails to retrieve them.

If I inspect the Visual Studio output window, I can get the following message

SRCSRV: Source server cannot retrieve the source code for file 'e:\SoftwareFactory\Projects\Product.Net Trunk\WorkingDirectory\Services\ErpWebServices\ErpServiceLegacyHost\Threading\ErpTransactionsSynchronizationContext.cs' in module 'C:\Program Files (x86)\Product\ProductCommon\ePgiStarterCS\server\Product.Erp.Services.LegacyHost.dll'. Données non valides.

The web server hosting the sources hasn't received any request for such file. So this must be an issue in the record concerning this precise file.

Is there any way to get more information by SRCSRV?

War es hilfreich?

Lösung

Apparently the answer is no: there is no way to obtain more information from srcsrv.dll.

The Microsoft forums moderators have told me that the message "Données non valides", "Invalid data" is possibly related to the length of the path of the file to be downloaded. This path is combined to the temporary symbol path you've specified in the Visual Studio/WinDBG settings.

e.g. If you've specified

%APPDATA%\Symbols 

as local symbol storage, and you're downloading a source file hosted by an HTTP server at the address

http://nightlybuilds.int/sources/get.svc/path/file.cs

the path

%APPDATA%\Symbols\sources\get.svc\path\file.cs

shall not be longer than 255 characters.

Other factors that can affect the behavior of SRCSRV:

  • The presence of characters invalid in a classic dos PATH (i.e. other than [0-9 A-Za-z\.])
  • The client debugger settings. (e.g. In the Native mode, the symbols for Managed code won't be downloaded. The Modules window will give you some hint about the symbols currently loaded.)

Andere Tipps

This is where SymChk can help. Using the /v switch, you get detailed output on how the symbols are resolved and what the symbol server responds with. Use this in conjunction with a tool like Fiddler which captures HTTP traffic, and you can analyze where your server is not responding with the expected protocol.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top