2010-07-16 5 views
7

OK, PDB 파일이 .NET 어셈블리의 심볼 파일이라는 것을 알고 있습니다. 그러나 나는 결코 그들의 확장 된 사용법을 들여다 보지 못했다.pdb 파일은 실제로 무엇을합니까?

실행중인 코드가로드 된 Visual Studio에서 원격 디버거로 연결 한 경우 실제로 원격 컴퓨터에서 PDB 파일이 필요합니까?

소스 코드가 연결된 디버거와 PDB 파일없이 코드가 실행되는 컴퓨터에서 처리되지 않은 예외 정보가 표시됩니까?

그 밖의 다른 조치는 무엇입니까?

+0

[John Robbins의 블로그] (http://www.wintellect.com/CS/blogs/jrobbins/archive/2009/05/11/pdb-files-what-every-developer-must)에 대한 고전적인 리소스가 있습니다. -know.aspx). –

+0

매우 유용합니다! 감사! – Matt

답변

2

원격 디버깅 상황에서 PDB가 원격 컴퓨터에 필요하지만 PDB에 컴파일 된 코드 오프셋 맵에 대한 소스 코드 줄 번호가 포함되어있는 경우에는 필자는 그 사실을 기억하지 않습니다. 관리되는 어셈블리 만 사용하여 소스 코드를 단계별로 처리 할 수는 없습니다.

관리되는 어셈블리는 원래 소스 코드에서 많은 텍스트 심볼 이름을 유지하므로 PDB없이 디버거를 사용하여 관리되는 실행 파일을 훑어 볼 수 있지만 형식 이름과 공용 기호 만 볼 수 있습니다 - 로컬 심볼의 이름은 .NET 어셈블리에 바인딩하거나 IL을 런타임시 네이티브 코드에 바인딩하는 데 필요하지 않기 때문에 이름을 볼 수 없습니다.

처리되지 않은 예외 알림은 PDB가 있는지 여부와 관련이 없습니다. 디버거가 프로세스에 원격으로 연결되어 있거나 연결되어 있지 않으면 예외가 발생하면 디버거가 첫 번째 균열을 갖습니다.

1

원격 컴퓨터에는 pdb가 필요하지 않습니다. 디버거 자체는 원격 에이전트 부분이 아니라이를 찾을 수 있어야합니다.

관련 문제