|
|
Опубликовано 03.08.2017 14:13:01
|
|
|
|

Недавно проект был развернут в производственной среде, и было обнаружено, что некоторые методы выдают аномальные сообщения
Однако приводится только информация об аномальной ошибке, и нет аномального номера строки, а только проблема с преобразованием модели в определённом методе
Но позвольте сравнить их по одному, это слишком раздражает, почему бы не записать неправильный номер строки?
Конфигурация log log4net следующая:
Я специально написал сообщение об исключении в методе Home/Index на своём локальном компьютере, чтобы проверить, будет ли записан номер строки:
Я обнаружил, что файл журнала ошибок записывает номер строки, что точно не проблема конфигурации log4net, потому что конфигурация с обеих сторон одинакова
Может быть, проблема в режиме компиляции???
Мой локальный компьютер в режиме отладки, а DLL, скомпилированный официальным сервером, находится в режиме релиза
Потом я сменил локальный проект на режим релиза и обнаружил, что это всё ещё номер записи.
Затем, Байду, первое предложение:Вам нужно скопировать .pdb-файл, соответствующий dll”
Ну, это проблема? Затем я сразу зашёл в каталог bin, удалил .pdb-файл, соответствующий dll, обновил сайт и нашёл журнал исключений следующим образом:
И действительно, аномальный номер линии не фиксируется!!!!
Это действительно проблема с .pdb!! Вам нужно хранить .pdb-файл, чтобы номер строки был записан, если он аномальный!!
Для чего нужен PDB-файл?
PDB-файлы: то, что должен знать каждый разработчик
Что такое PDB-файл?
Большинство разработчиков должны знать, что PDB-файлы используются для помощи в программной отладке. Но как именно он работает, нам может быть незнакомо. В этой статье описывается хранение и содержимое файлов PDB. Также описывается, как отладчик находит PDB-файл, соответствующий binay, и как отладчик находит исходный код, соответствующий binay. Эта статья предназначена для всех нативных и управляемых разработчиков.
Прежде чем начать, давайте определим два термина: приватная сборка, которая используется для обозначения сборки, сгенерированной на собственном компьютере разработчика; Публичная сборка, то есть сборка, сгенерированная на машине публичных сборок. частное строительство относительно простое, потому что PDB и Binay находятся в одном месте, и обычно проблемы связаны с общественной застройкой.
Самое важное, что должны знать все разработчики — «PDB-файлы так же важны, как и исходный код», без которого невозможно даже отладить. Для публичной сборки сервер символов должен хранить все PDB, а когда пользователь сообщает об ошибке, отладчик автоматически может найти соответствующий PDB-файл в binay, и Visual Studio и Windbg знают, как получить доступ к серверу символов. Перед хранением PDB и binay на сервере символов нужно также индексировать исходный код PDB run, то есть связать PDB и исходный код.
Следующая часть предполагает, что сервер символов и индексация сервера источника уже настроены. TFS2010 можно выполнить так же просто, как индексирование исходного кода и копирование сервера символов для новой сборки.
2. Содержимое файла PDB
Официально начиная содержимое PDB, PDB не является общедоступным файловым форматом, но Microsoft предоставляет API для получения данных из PDB.
Родной PDB C++ содержит следующую информацию: * публичные, частные и статические адреса функций; * Имя и адрес глобальной переменной; * Имена параметров и локальных переменных и смещений в стеке; * определения типов класса, структуры и данных; * Данные о пропуске указателя кадров для прохождения нативного стека на x86; * Название и количество строк в файле исходного кода;
.NET PDB содержит только 2 части информации: * Имя исходного кода и количество строк; * и название локальной переменной; * Все остальные данные уже включены в . Метаданные NET;
|
Предыдущий:Диск отключён из-за политики, установленной администраторомСледующий:Найдите специалиста по сайту, чтобы вместе начать бизнес
|