Отладка
От: IT Россия linq2db.com
Дата: 12.08.07 05:01
Оценка: 43 (3)
Я тут последнее время усиленно занимаюсь сабжем и в резултате ряда смелых экспериментов советских учёных наконец-то удалось добиться определённых результатов.

Большая просьба потестировать на предмет неправильного поведения отладчика в различных условиях.

Также возможны ICE в режиме отладки. Boot компилируется, интеграция собирается, тесты проходят, но всё возможно. Дело в том, что новый вариант отладки построен на добавлении дополнительного элемента в typed tree и вполне возможно, что я не выявил все места где этот элемент не ожидается.

Именами переменных и методов пока не занимался, поэтому не обращайте пока на это внимание. Это надо делать совместно с интеграцией. Займусь этим позже.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re: Отладка
От: Сергей Туленцев Россия http://software.tulentsev.com
Дата: 12.08.07 08:10
Оценка:
Здравствуйте, IT, Вы писали:

IT>Я тут последнее время усиленно занимаюсь сабжем и в резултате ряда смелых экспериментов советских учёных наконец-то удалось добиться определённых результатов.


IT>Большая просьба потестировать на предмет неправильного поведения отладчика в различных условиях.


Ага, в процессе твоей работы ты поломал локейшоны для заголовков методов: теперь заголовок метода имеет локейшон, распространющийся на всё тело метода.
Я решил подебажить компилятор, чтобы узнать, где имеено рассчитывается неправильное значение, но попытка провалилась. По наведении на мышку ни одно значение не показывается, по F10 управление вообще переходит в непредсказуемые места (как будто .pdb и исходники рассинхронизированы)
Вот.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
--
Re[2]: Отладка
От: IT Россия linq2db.com
Дата: 12.08.07 15:01
Оценка:
Здравствуйте, Сергей Туленцев, Вы писали:

СТ>Ага, в процессе твоей работы ты поломал локейшоны для заголовков методов: теперь заголовок метода имеет локейшон, распространющийся на всё тело метода.


Дай примерчик.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[3]: Отладка
От: Сергей Туленцев Россия http://software.tulentsev.com
Дата: 12.08.07 15:44
Оценка:
Здравствуйте, IT, Вы писали:

IT>Здравствуйте, Сергей Туленцев, Вы писали:


СТ>>Ага, в процессе твоей работы ты поломал локейшоны для заголовков методов: теперь заголовок метода имеет локейшон, распространющийся на всё тело метода.


IT>Дай примерчик.

using System;
using System.Collections.Generic;
using System.Text;

using Nemerle;
using Nemerle.Collections;

namespace SPlaneCutter2Lib
{
  /// <summary>
  /// Description of SimpleSolver.
  /// </summary>
  class SimpleSolver
  {
    public event Progress : CutterProgressDelegate; // здесь, в локейшон не включается public. Это я сам попробую поправить.
    protected OnProgress(message : string) : void
    {
      when(Progress != null)
    {
  
    Progress(this, CutterProgressEventArgs(message, 0, 0, 0, 0));
    }
    }

    public Process() : void  // вот этот вот метод
    {

    }
  }
}
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
--
Re[4]: Отладка
От: IT Россия linq2db.com
Дата: 12.08.07 16:17
Оценка:
Здравствуйте, Сергей Туленцев, Вы писали:

СТ> public event Progress : CutterProgressDelegate; // здесь, в локейшон не включается public. Это я сам попробую поправить.


Здесь лучше не public включить, а event убрать.

СТ> public Process() : void // вот этот вот метод


Это место отлично работает.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[5]: Отладка
От: Сергей Туленцев Россия http://software.tulentsev.com
Дата: 12.08.07 16:45
Оценка:
Здравствуйте, IT, Вы писали:

IT>Здравствуйте, Сергей Туленцев, Вы писали:


СТ>> public event Progress : CutterProgressDelegate; // здесь, в локейшон не включается public. Это я сам попробую поправить.


IT>Здесь лучше не public включить, а event убрать.


Это тогда будет несогласнованным с остальными частями, потому что во всех остальных местах (которые помню) модификаторы доступа включаются. И это полезно для форматтера.

СТ>> public Process() : void // вот этот вот метод


IT>Это место отлично работает.


А нажми ка Ctrl+K, D (или Edit->Advanced->Format document) при включенном форматировании. Что будет? У меня эксепшон, потому что он пытается найти открывающую скобку после заголовка метода, а не может её найти (потому что локейшон заголовка заканчивается в конце метода, а дальне нет открывающих скобок)
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
--
Re[6]: Отладка
От: IT Россия linq2db.com
Дата: 12.08.07 17:00
Оценка:
Здравствуйте, Сергей Туленцев, Вы писали:

IT>>Здесь лучше не public включить, а event убрать.


СТ>Это тогда будет несогласнованным с остальными частями, потому что во всех остальных местах (которые помню) модификаторы доступа включаются. И это полезно для форматтера.


Модификаторы нужно исключать. Если что-то полезно для форматера, то для него нужно сделать это отдельно.

IT>>Это место отлично работает.


СТ>А нажми ка Ctrl+K, D (или Edit->Advanced->Format document) при включенном форматировании. Что будет? У меня эксепшон, потому что он пытается найти открывающую скобку после заголовка метода, а не может её найти (потому что локейшон заголовка заканчивается в конце метода, а дальне нет открывающих скобок)


Я бы сделал для форматера отдельный поиск лексем. К тому же для форматера не нужна типизация, т.е. этот поиск можно сделать быстрее.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[7]: Отладка
От: Сергей Туленцев Россия http://software.tulentsev.com
Дата: 12.08.07 17:04
Оценка:
Здравствуйте, IT, Вы писали:

СТ>>Это тогда будет несогласнованным с остальными частями, потому что во всех остальных местах (которые помню) модификаторы доступа включаются. И это полезно для форматтера.

IT>Модификаторы нужно исключать. Если что-то полезно для форматера, то для него нужно сделать это отдельно.

Отдельный парсер писать?

IT>>>Это место отлично работает.


СТ>>А нажми ка Ctrl+K, D (или Edit->Advanced->Format document) при включенном форматировании. Что будет? У меня эксепшон, потому что он пытается найти открывающую скобку после заголовка метода, а не может её найти (потому что локейшон заголовка заканчивается в конце метода, а дальне нет открывающих скобок)


IT>Я бы сделал для форматера отдельный поиск лексем. К тому же для форматера не нужна типизация, т.е. этот поиск можно сделать быстрее.


Отдельный лексер и отдельный поиск уже есть. Но писать еще и отдельный парсер считаю делом нецелсообразным. Да и по сути вопроса: ошибка воспроизводится?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
--
Re[8]: Отладка
От: IT Россия linq2db.com
Дата: 12.08.07 17:17
Оценка:
Здравствуйте, Сергей Туленцев, Вы писали:

СТ>Отдельный парсер писать?


Зачем? Можно задействовать всё тот-же ExprWalker. Просто ExprFinder заточен на GoTo и подсказки. Если мы будем мешать всё в одну кучу, то скорее всего у нас получится плохо и то и другое.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[9]: Отладка
От: Сергей Туленцев Россия http://software.tulentsev.com
Дата: 12.08.07 17:26
Оценка:
Здравствуйте, IT, Вы писали:

IT>Здравствуйте, Сергей Туленцев, Вы писали:


СТ>>Отдельный парсер писать?


IT>Зачем? Можно задействовать всё тот-же ExprWalker. Просто ExprFinder заточен на GoTo и подсказки. Если мы будем мешать всё в одну кучу, то скорее всего у нас получится плохо и то и другое.


Я не использую ExprFinder/ExprWalker. Но зато использую штатный парсер и результаты его работы.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
--
Re[10]: Отладка
От: IT Россия linq2db.com
Дата: 12.08.07 17:45
Оценка:
Здравствуйте, Сергей Туленцев, Вы писали:

СТ>Я не использую ExprFinder/ExprWalker. Но зато использую штатный парсер и результаты его работы.


Тогда у тебя есть всё, что нужно.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[11]: Отладка
От: Сергей Туленцев Россия http://software.tulentsev.com
Дата: 12.08.07 17:55
Оценка:
Здравствуйте, IT, Вы писали:

IT>Здравствуйте, Сергей Туленцев, Вы писали:


СТ>>Я не использую ExprFinder/ExprWalker. Но зато использую штатный парсер и результаты его работы.


IT>Тогда у тебя есть всё, что нужно.


IT, сколько раз говорить, что поломан парсер то... Причем поломан в процессе твоей работы над отладкой. Ты так и не ответил, вылетает ли эксепшон при попытке форматирования того куска кода.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
--
Re[12]: Отладка
От: IT Россия linq2db.com
Дата: 12.08.07 18:57
Оценка:
Здравствуйте, Сергей Туленцев, Вы писали:

СТ>IT, сколько раз говорить, что поломан парсер то...


Парсер не поломан. Как раз теперь он работает как надо, учитывая нужды большей части потребителей.

СТ>Причем поломан в процессе твоей работы над отладкой.


Отладка comes first. Всё остальное потом.

СТ>Ты так и не ответил, вылетает ли эксепшон при попытке форматирования того куска кода.


Вылетает диалог с каким-то сообщением.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[13]: Отладка
От: Сергей Туленцев Россия http://software.tulentsev.com
Дата: 12.08.07 19:06
Оценка:
Здравствуйте, IT, Вы писали:

IT>Здравствуйте, Сергей Туленцев, Вы писали:


СТ>>IT, сколько раз говорить, что поломан парсер то...

IT>Парсер не поломан. Как раз теперь он работает как надо, учитывая нужды большей части потребителей.
СТ>>Ты так и не ответил, вылетает ли эксепшон при попытке форматирования того куска кода.
IT>Вылетает диалог с каким-то сообщением.

Странные какие-то нужды. Не зря же у метода есть Header, а есть Body. И физически она располагаются в разных местах.
Как я понял, тебе это чинить недосуг/лень/что-то-еще. Попробую сам поправить.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
--
Re[14]: Отладка
От: IT Россия linq2db.com
Дата: 12.08.07 19:19
Оценка:
Здравствуйте, Сергей Туленцев, Вы писали:

СТ>Попробую сам поправить.


Только отлдку не сломай.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[15]: Отладка
От: Сергей Туленцев Россия http://software.tulentsev.com
Дата: 12.08.07 19:28
Оценка:
Здравствуйте, IT, Вы писали:

IT>Здравствуйте, Сергей Туленцев, Вы писали:


СТ>>Попробую сам поправить.


IT>Только отлдку не сломай.


У меня она и так не работает.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
--
Re[16]: Отладка
От: IT Россия linq2db.com
Дата: 12.08.07 20:46
Оценка:
Здравствуйте, Сергей Туленцев, Вы писали:

IT>>Только отлдку не сломай.


СТ>У меня она и так не работает.


Давай примеры, будем фиксить.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[17]: Отладка
От: Сергей Туленцев Россия http://software.tulentsev.com
Дата: 12.08.07 20:58
Оценка:
Здравствуйте, IT, Вы писали:

IT>Здравствуйте, Сергей Туленцев, Вы писали:


IT>>>Только отлдку не сломай.


СТ>>У меня она и так не работает.


IT>Давай примеры, будем фиксить.

Поставь бряк на MainParser.n, line 854.
И попробуй пошагово оттуда идти. У меня не показывается ни одного значения по наведению на мышку, плюс, управление прыгает в совершенно непонятные места.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
--
Re: Отладка
От: Kisloid Мухосранск  
Дата: 13.08.07 08:27
Оценка:
Здравствуйте, IT, Вы писали:

IT>Большая просьба потестировать на предмет неправильного поведения отладчика в различных условиях.


А msi'ка будет? А то у меня нет возможности собрать самому с исходников
((lambda (x) (list x (list 'quote x))) '(lambda (x) (list x (list 'quote x))))
Re[18]: Отладка
От: IT Россия linq2db.com
Дата: 13.08.07 15:29
Оценка:
Здравствуйте, Сергей Туленцев, Вы писали:

СТ>Поставь бряк на MainParser.n, line 854.

СТ>И попробуй пошагово оттуда идти. У меня не показывается ни одного значения по наведению на мышку, плюс, управление прыгает в совершенно непонятные места.

Ты бут пересобирал?
Если нам не помогут, то мы тоже никого не пощадим.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.