Usando arquivos de origem

O mecanismo do depurador mantém um caminho de origem, que é uma lista de diretórios e servidores de origem que contêm arquivos de código-fonte associados aos destinos atuais. O mecanismo do depurador pode pesquisar esses diretórios e servidores de origem para os arquivos de origem. Com a ajuda de arquivos de símbolo, o mecanismo do depurador pode corresponder linhas nos arquivos de origem com locais na memória do destino.

Para obter uma visão geral do uso de arquivos de origem com depuradores, consulte Depuração no modo de origem. Para obter uma visão geral dos caminhos de origem, consulte Caminho de origem. Para obter uma visão geral do uso de servidores de origem do mecanismo de depurador, consulte Usando um servidor de origem.

Caminho de origem

Para adicionar um diretório ou servidor de origem ao caminho de origem, use o método AppendSourcePath. Todo o caminho de origem é retornado por GetSourcePath e pode ser alterado usando SetSourcePath. Um único diretório ou servidor de origem pode ser recuperado do caminho de origem usando GetSourcePathElement.

Para localizar um arquivo de origem relativo ao caminho de origem, use FindSourceFile ou, para obter opções mais avançadas ao usar servidores de origem, use FindSourceFileAndToken. FindSourceFileAndToken também pode ser usado junto com GetSourceFileInformation para recuperar variáveis relacionadas a um arquivo em um servidor de origem.

Correspondência de arquivos de origem com código na memória

O mecanismo do depurador fornece três métodos para localizar os locais de memória que correspondem às linhas em um arquivo de origem. Para mapear uma única linha de código-fonte para um local de memória, use GetOffsetByLine. Para pesquisar locais de memória para mais de uma linha de origem ou para linhas de origem próximas, use GetSourceEntriesByLine. O método GetSourceFileLineOffsets retornará o local de memória de cada linha em um arquivo de origem.

Para executar a operação oposta e localizar a linha de um arquivo de origem que corresponda a um local na memória do destino, use GetLineByOffset.

Nota A relação entre locais de memória e linhas em um arquivo de origem não é necessariamente um para um. É possível que uma única linha de código-fonte corresponda a vários locais de memória e que um único local de memória corresponda a várias linhas do código-fonte.