Debugging Design Reference
Keyworks: Debug Compile NuGet Packages Symbols pdb
Conceitos
Debug
Depuração é o processo de encontrar e reduzir defeitos num aplicativo de software ou mesmo em hardware. Erros de software incluem aqueles que previnem o programa de ser executado e aqueles que produzem um resultado inesperado.
Symbols Server
"Microsoft Symbol Server is a Windows technology used to obtain symbol debugging information. It is built by using the SymSrv technology that is bundled with the Debugging Tools for Windows package. The SymChk.exe utility can be used to verify symbols and to build a local symbol cache in a convenient, non-invasive way. This utility is included with the Debugging Tools for Windows. Visual Studio 2005 and later can be set up to use the Microsoft Symbol Server.[1] The symbol server technology is built into Debugging Tools for Windows."
Tutorial
Debug de uma dll compilada por uma build:
(1) No Visual Studio, aceder à configuração do Nuget:

(2) Obter o Package Source URL do feed configurado para o ambiente de desenvolvimento:

(3) A esse URL, devem fazer o replace do “nuget” por “symbols”:
- Package Source URL: http://nuget.primaverabss.com:82/nuget/Elevation300
- Symbols Server URL: http://nuget.primaverabss.com:82/symbols/Elevation300
Ou alternativamente:
(1) Aceder ao portal do nuget: http://nuget.primaverabss.com:82/.
(2) Aceder ao feed do vosso ambiente de desenvolvimento:

(3) Consultar o Package Source URL:

(4) A esse URL, devem fazer o replace do “nuget” por “symbols”:
- Package Source URL: http://nuget.primaverabss.com:82/nuget/Elevation300
- Symbols Server URL: http://nuget.primaverabss.com:82/symbols/Elevation300
Nota: devem desactivar a opção de Options | Debugging | Ensable Just My Code.

Debug de código compilado localmente:
Exitem duas formas de fazer debug localmente:
- Usando a ferramenta "Replace Packages Assemblies in Local Repository" [1].
- Restaurando os packages a partir do feed local [2].
[1]
-
Garantir que a versão dos packages que se pretende analisar já foi restaurada para o repositório local. Para isso bastará abrir uma solução que os referencie e restaurar os packages.
-
Compilar o solução que se pretende depurar.
-
Executar a opção "Replace Packages Assemblies in Local Repository" no menu ELEVATION.
-
Selecionar a versão que se pretende atualizar (normalmente será a última).
-
Executar a solução original onde se executará a sessão de debug.
[2]
-
Compilar o projeto\solução que se pretende efetuar o debug.
- A compilação do projeto\solução fará com que sejam publicados packages nuget para o feed local de nupkgs
(tipicamente localizado em
%prjNET%\<PROJETO>\<PHASE>\_localPackages). - É preciso garantir que as versões das dll’s compiladas (
AssemblyInfo.cs) estão corretas com a versão do package que está a ser usado no projeto em que se pretende fazer o debug.
- A compilação do projeto\solução fará com que sejam publicados packages nuget para o feed local de nupkgs
(tipicamente localizado em
-
De seguida, na pasta de
_packages(tipicamente localizada em%prjNET%\<PROJETO>\_packages), apagar a pasta com o nome da dll mais a versão da dll que vamos efetuar o debug. -
No projeto em que se pretende efetuar o debug, devemos ativar o Feed local de packages.
- Este feed deve ser sempre o primeiro da lista.

- Devemos selecionar este Feed na consola NuGet e efetuar o restore.
- Devemos garantir que a versão do package está correta com a versão da dll compilada.
