Re[2]: Добил навигацию.
От: IT Россия linq2db.com
Дата: 15.11.06 17:05
Оценка: 1 (1)
Здравствуйте, PhantomIvan, Вы писали:

PI>а этот временный проект, он где находится?


Он же временный. Создаётся, используется и прибивается

БП>>P.S. Требуются тестеры. Нужно пройтись по всем доступным проектам и найти места, где навигация не работает, а должна бы. Также приветствуется информация о местах, где она стреляется.


PI>чтоб тестеры появились, нужно инсталлёр сделать


Что-то в каком-то виде есть в исходниках интеграции. Но что и в каком

PI>я не силен в вопросах pdb-файлов, если я перехожу куда нибудь по этой схеме, сколько сырцов грузится и откуда?


С pdb схема работы примерно следующая:

1. Определяется location объекта.
2. Если этот location является исполняемым модулем, то ищется файл с таким же именем в той же папке, но с расширением pdb.
3. Если искомый объект — метод, и в pdb файле обнаружено его место нахождение, то студии возвращается имя найденного исходного файла и координаты в нём.
4. Если искомый объект — класс (для объявления классов точных координат в pdb нет), то ищется любой из его методов для определения файл(ов) в котором определён класс. Файлов может быть несколько для partial classes.
5. Если файл имеет расширение '.n' (а если нет, то что делается?), то создаётся временный проект, найденный файл компилируется для определения места положения искомого класса.
6. Если из всего вышеперечисленного ничего не вышло, то исходный код класса будет сгенерирован как это сделано для C#.

В результате, мы убиваем сразу двух зайцев. Во-первых, не надо париться с переходом к исходникам в другом проекте солюшина, т.к. это при наличии pdb уже фактически сделано. Во-вторых, при наличии pdp файлов и исходников мы умеем открывать исходный код на том языке, на котором он написан.
Если нам не помогут, то мы тоже никого не пощадим.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.