![]() |
|
|
![]()
|
|
| fell |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 17.12.2008 Где: Санкт-Петербург Репутация: нет Всего: нет |
Понадобилось давеча провести debugging одного файла. Конкретнее
http://github.com/rails/rails/blob/master/...dependencies.rb строка 457 trace = caller.reject {|l| l =~ %r{#{Regexp.escape(__FILE__)}}} вот как бы добраться до переменной trace и посмотреть ее значение ? обычно использую ruby -r debug file.rb. Но если ставить breakpoint в этом месте ( строка 457) то дебагер выкидывает. Пробовал через next и step добраться, дохожу до функции и перепрыгивает с одной функции на другую, в саму функцию не входит. Может есть какие то другие программулины, методы и способы ? посоветуйте... Это сообщение отредактировал(а) fell - 29.7.2010, 10:00 |
|||
|
||||
| source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: 6 Всего: 56 |
Ну способов масса, от банального puts trace.inspect в следующей строке, до навороченных IDE типа NetBeans и RubyMine. P.S. один топик - один вопрос Это сообщение отредактировал(а) source777 - 28.7.2010, 23:50 -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
| fell |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 17.12.2008 Где: Санкт-Петербург Репутация: нет Всего: нет |
от навороченных IDE никого толку, они используют тот же debug...
подскажите конкретно, как вывести значение переменной в примере ? |
|||
|
||||
| source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: 6 Всего: 56 |
Просто тебе будет проще поставить брейкпоинт и посмотреть значения переменных. ruby-debug работает без проблем, но вот с консольным интерфейсом справляются далеко не все и ты тут не исключение. puts trace.inspect из консоли отладчика Другое дело, что отладчик может просто не дойти до нужной строки, а экстрасенсы все в отпуске... поэтому никто не знает, что именно ты пытаешься отдебажить и насколько сообразно этому запускаешь отладчик. Кстати указанная в топике строка имеет номер 464, а не 457. -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
| fell |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 17.12.2008 Где: Санкт-Петербург Репутация: нет Всего: нет |
да строка 464
Что я хотел увидеть, это значение переменной trace. Я об этом писал в самом начале, причем тут экстрасенсы не очень понятно, может нужно немного внимательнее читать текст .... Отладчик и не доходит до нужной точки, брекпойнт на это строку я выставлял, программа просто завершается и выкидывает в консоль. |
|||
|
||||
| source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: 6 Всего: 56 |
А притом, что в твоих действиях есть причина почему отладчик не доходит до желаемой строки, однако действия эти известны только тебе и экстрасенсам. -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
| fell |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 17.12.2008 Где: Санкт-Петербург Репутация: нет Всего: нет |
действия стандартные
ruby -r debug file.rb list 1-644 b 464 c и тут выкидывает в консоль. По-моему цель вполне ясная, вывести значение переменной trace. Лучше бы показали как это можно сделать, если это возможно и каким способом это сделать. |
|||
|
||||
| bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: нет Всего: 317 |
fell, блоки я бы развернул на несколько строк.
разбил бы на промежопочные куски. каждый { } на do |l| end -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
| source777 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: 6 Всего: 56 |
Что за файл file.rb? Если ты пытаешься запустить отдельно сам dependencies.rb, то из этого ничего путного выйти не должно. Да и с какой стати я должен гадать, как ты там отлаживаешь, если ты сам этого рассказать не желаешь. Ты даже не написал с какой ошибкой вылетает отладчик. А если под "вылетает" подразумевается завершает работу в штатном режиме, то значит поток управления просто ни разу не зашёл в функцию load_missing_constant. Да какая ж это нафиг цель? Это даже на полноценный шаг на пути к цели не тянет, т.е. либо ты сам не знаешь для чего тебе это надо, либо просто решил попридуриваться на форуме. Так как от тебя не удалось выведать никакой информации о том, что ты делаешь. Придётся без объяснений и разбора ошибок рассказать как надо делать: Раз уж тебе так нравится file.rb, то внутри у него должно быть нечто подобное
Это сообщение отредактировал(а) source777 - 7.8.2010, 13:27 -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
||||
|
|||||
| fell |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 17.12.2008 Где: Санкт-Петербург Репутация: нет Всего: нет |
товарищ эксперт, вы наверно после работы читаете форум, на работе сильно устаете и плохо соображаете... я писал в предыдущем посте, что именно происходит и что я конкретно делаю. Да file.rb просто как пример привел, вместо file.rb был dependecies.rb. О чем я писал вообще в начале топика. Придуриваться по таким серьезным вопросам вообще не имел ни какого желания.
почти то что надо ... ps. поскольку кроме вас тут руби никто не интересуется, да и вы отвечаете на вопросы скорее из необходимости, как модератор ветки, больше отвлекать вас глупыми темами и вопросами не буду... |
||||
|
|||||
| source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: 6 Всего: 56 |
Неа, не писал. Ты написал, что хочешь поставить точку останова внутри dependecies.rb, но то что ты непосредственно его пытаешься запустить в отладчике про это не было ни слова. А догадаться о столь нелогичном действии ой как не просто -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
![]()
|
| Правила форума "Ruby: Общие вопросы" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, source777. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Ruby: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |