<DebugType>pdbonly</DebugType>
От: _nn_ www.nemerleweb.com
Дата: 10.02.10 15:07
Оценка:
В Release не создаются pdb файлы, из-за того, что не выставлен элемент DebugType.
Нужно его поставить во всех проектах (если я не ошибся в названии), чтобы на каждый dll был соответсвующий pdb файл.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: <?if $(var.IncludePdb) ?>
От: _nn_ www.nemerleweb.com
Дата: 10.02.10 15:20
Оценка:
Здравствуйте, _nn_, Вы писали:

В файлах wxs есть код такой:
<?if $(var.IncludePdb) ?>
          <File Id="File_Nemerle.pdb" Name="Nemerle.pdb"  Source="dist\bin\"/>
<?endif ?>

<?if $(var.IncludePdb) ?>
          <File Id="File_Nemerle.Linq.pdb" Name="Nemerle.Linq.pdb"  Source="dist\bin\"/>
<?endif ?>


Насколько я понимаю правильней будет все же:
<?if $(var.IncludePdb) = "true"?>
          <File Id="File_Nemerle.pdb" Name="Nemerle.pdb"  Source="dist\bin\"/>
<?endif ?>

<?if $(var.IncludePdb) = "true"?>
          <File Id="File_Nemerle.Linq.pdb" Name="Nemerle.Linq.pdb"  Source="dist\bin\"/>
<?endif ?>


В любом случае, стоит генерировать PDB файлы для Release и Debug, и вообще убрать потребность в IncludePdb.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: <DebugType>pdbonly</DebugType>
От: para  
Дата: 25.02.10 12:55
Оценка:
Здравствуйте, _nn_, Вы писали:

__>В Release не создаются pdb файлы, из-за того, что не выставлен элемент DebugType.

__>Нужно его поставить во всех проектах (если я не ошибся в названии), чтобы на каждый dll был соответсвующий pdb файл.

Попробовал исправить этот недостаток.
Оказалось, что на самом деле конфликтуют ключи -optimize и -debug+(создание pdb)
Если так попробовать скомпилировать программу, то вылетит асерт:
http://code.google.com/p/nemerle/source/browse/nemerle/trunk/ncc/optimization/CFG.n#120

я в nemerle пока не очень разбираюсь, так что не знаю как это исправить.
наверное придётся ждать следующей версии))
Re[2]: <DebugType>pdbonly</DebugType>
От: _nn_ www.nemerleweb.com
Дата: 25.02.10 13:54
Оценка:
Здравствуйте, para, Вы писали:

P>Здравствуйте, _nn_, Вы писали:


__>>В Release не создаются pdb файлы, из-за того, что не выставлен элемент DebugType.

__>>Нужно его поставить во всех проектах (если я не ошибся в названии), чтобы на каждый dll был соответсвующий pdb файл.

P>Попробовал исправить этот недостаток.

P>Оказалось, что на самом деле конфликтуют ключи -optimize и -debug+(создание pdb)
P>Если так попробовать скомпилировать программу, то вылетит асерт:
P>http://code.google.com/p/nemerle/source/browse/nemerle/trunk/ncc/optimization/CFG.n#120

P>я в nemerle пока не очень разбираюсь, так что не знаю как это исправить.


Я тоже
Наверное надо смотреть где компилятор парсит аргументы, похоже там что-то не так идет.

P>наверное придётся ждать следующей версии))

Следующей ревизии может ? А то версии 1.0 то еще и нет.

В общем тут 2 варианта решения и надо просто выбрать:
1. Убрать pdb вообще в релизе и не просить их. &lt;?if $(var.IncludePdb) ?&gt;
Автор: _nn_
Дата: 10.02.10

2. Исправить ассерт.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[3]: <DebugType>pdbonly</DebugType>
От: para  
Дата: 25.02.10 14:14
Оценка:
Здравствуйте, _nn_, Вы писали:

__>Я тоже

__>Наверное надо смотреть где компилятор парсит аргументы, похоже там что-то не так идет.

Возможно, что надо хорошо в компиляторе разбираться, не зря же он ругается)
может конечно это и баг, а может он реально не знает как пдб делать после оптимизации(

P>>наверное придётся ждать следующей версии))

__>Следующей ревизии может ? А то версии 1.0 то еще и нет.

__>В общем тут 2 варианта решения и надо просто выбрать:

__>1. Убрать pdb вообще в релизе и не просить их. &lt;?if $(var.IncludePdb) ?&gt;
Автор: _nn_
Дата: 10.02.10

__>2. Исправить ассерт.

pdb-оно конечно не архиважно, но желательно.
я свои проекты с pdb вместе распространяю.
Если происходит ексепшн, то если есть pdb, в stackTrace будет сохранена строка, где оно произошло-
на порядок упрощает офлайн-отладку)
Re[4]: <DebugType>pdbonly</DebugType>
От: para  
Дата: 26.02.10 10:34
Оценка:
P>на порядок упрощает офлайн-отладку)
программа:

module Program
{
  Main() : void
  {
    try
    {
        throw Exception("1234");
    }
    catch
    {
        | e => WriteLine(e.ToString());
    }
    _ = ReadLine();
  }
}

Результат:
без pdb
System.Exception: 1234
   at Program.Main()

с pdb
System.Exception: 1234

   at Program.Main() in D:\tmp\MacroLibrary\ConsoleApplication2\Main.n:line 17
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.