Visual Studio не загружает символы, а создает файл .pdb [duplicate]

Посмотрите на этот пример:

var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope,$http) {

    var getJoke = function(){
        return $http.get('http://api.icndb.com/jokes/random').then(function(res){
            return res.data.value;  
        });
    }

    getJoke().then(function(res) {
        console.log(res.joke);
    });
});

Как вы можете видеть, getJoke возвращает разрешенное обещание (оно разрешено при возврате res.data.value). Таким образом, вы ждете, пока запрос $ http.get не будет завершен, а затем выполнится console.log (res.joke) (как обычный асинхронный поток).

Это plnkr:

http://embed.plnkr.co/XlNR7HpCaIhJxskMJfSg/

53
задан DontVoteMeDown 2 December 2014 в 20:57
поделиться

9 ответов

-2
ответ дан Alex B. 25 August 2018 в 00:44
поделиться

Ошибка, которую я получил, это «соответствующий файл символов не был найден в этой папке» в окне Debug => Modules даже после того, как DLL и PDB были доступны и собраны вместе, поэтому мне не удалось отладить в целевой DLL на который ссылается мой основной проект.

Публикация этого здесь, если он помогает кому-то просматривать с сборкой «Смешанная платформа» для целевой DLL. Я сделал две вещи, чтобы пройти мимо этого:

  1. В решении, использующем целевую DLL, снимите флажок «Just My Code» в Tools => Options => Debugging => General => Enable Just My Code (JMC).
  2. Установите флажок «Включить отладку собственного кода» в целевом DLL-решении в соответствующих Project Properties => Debug.
1
ответ дан bkolluru 25 August 2018 в 00:44
поделиться

Я столкнулся с этой проблемой, и ответ был прост.

В Visual Studio есть две настройки уровня проекта, которые могут создавать файлы .pdb.

  1. Линкер: Свойства конфигурации - > Linker -> Debugging -> Generate Program Database File = "xxxx.pdb"
  2. Компилятор: Свойства конфигурации -> C / C ++ -> Файлы вывода -> Название файла базы данных программы = "yyyy.pdb"

Вы хотите # 1 для отладки. Забудьте о # 2. Дайте файлу №2 другое имя, чем файл # 1, чтобы решить эту ошибку.

Я не знаю, почему microsoft указывает # 2 как .pdb-файл. Это просто сбивает с толку.

4
ответ дан C Johnson 25 August 2018 в 00:44
поделиться

Я пробовал все возможные решения, и, наконец, он работал, когда я отключил опцию Enable native code debugging под Debugger engines из Properties > Debug.

4
ответ дан Dineshkumar Ponnusamy 25 August 2018 в 00:44
поделиться

У меня была та же проблема, что и @DmainEvent. По-видимому, DLL, которую я использовал, не была той же версией, что и pdb, которую я только что скомпилировал, поэтому я получил сообщение об ошибке.

Если у вас есть эта проблема, попробуйте использовать dll и pdb из того же сборник пробег.

6
ответ дан Jeff Piersol 25 August 2018 в 00:44
поделиться

Одна из вещей, с которыми я столкнулся, заключалась в том, что отладка была отключена в проекте, на который ссылается, где находится код. В моем случае я создал новую конфигурацию под названием «Разработчик», и по умолчанию отладка была отключена.

  1. Щелкните правой кнопкой мыши соответствующий проект
  2. Свойства
  3. Построить
  4. Дополнительно (правый нижний угол)
  5. Установить значение отладки в полном объеме
  6. Перекомпилировать
21
ответ дан Kevin Aung 25 August 2018 в 00:44
поделиться

Я обнаружил, что это произошло потому, что для свойства «Свойства» => «Отладка» => «Пуск» было выбрано «Запуск внешней программы» вместо «Проект». Таким образом, новый файл pdb не совпал, потому что фактический exe был неправильным.

0
ответ дан majjam 25 August 2018 в 00:44
поделиться

Без дополнительной информации о том, что вы делаете, трудно выйти за рамки «отладчик ищет файл символов, который соответствует скомпилированному коду и не может найти его в папке, в которой скомпилирован код».

Некоторые вещи, о которых нужно подумать:

  1. Создаете ли вы символы как часть своей компиляции? (проверьте свойства проекта)
  2. Используете ли вы сервер символов (если да, указывает ли он на нужное место)
  3. Является ли этот скомпилированный код третьим лицом? В этом случае, поскольку у вас, по-видимому, есть источник, скомпилируйте его самостоятельно.

Поясните свой вопрос, если вы хотите получить лучший ответ. Особенно, что вы подразумеваете под «Я хочу использовать символы».

2
ответ дан Massif 25 August 2018 в 00:44
поделиться

Для BizTalk (и других) проектов это может быть потому, что есть версия сборки, которую вы пытаетесь отлаживать уже в GAC. Когда вы запускаете единичный тест или удаляете F5 для отладки, новая версия компилируется локально. Тем не менее, версия в GAC используется, а вновь созданный PDB не соответствует DLL в GAC.

. Один из способов - отменить выбор сборки для всего, кроме вашего тестового проекта, используя Configuration Manager, как показано ниже:

0
ответ дан Rob Bowman 25 August 2018 в 00:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: