Здравствуйте, alex_public, Вы писали:
_>Здравствуйте, Molchalnik, Вы писали:
M>>Однако, у визуал студии лучший отладчик из существующих, значительно обгоняющий по возможности кьют, андроид студию, эклипс и уж точно круче gdb + vim. M>>Юзабилити не хуже. Так что, если речь идёт о серьёзной отладке, линукс вэй отсасывает полностью. Говорю, как человек, который и модули под ядро линухи писал, и с андроидом баловался, и на кьюте писал. Сред разработки хлебнул красивых и разных. Фанатом винды не являюсь. Впрочем, и линухе три раза ку тоже не делаю.
_>А можно тогда узнать, что является у отладчика VisualStudio аналогом встроенных в gdb скриптов на Питоне? )
А что мешает вам в бряке студии написать ЛЮБОЙ код, причём не на левом относительно с++ языке, а на родном с++, да ещё и с макросами, да ещё и с возможностью вывода в лог, да ещё и с возможностью останова только на 117м срабатывании при условии Condition?
Здравствуйте, Molchalnik, Вы писали:
_>>А можно тогда узнать, что является у отладчика VisualStudio аналогом встроенных в gdb скриптов на Питоне? ) M>А что мешает вам в бряке студии написать ЛЮБОЙ код, причём не на левом относительно с++ языке, а на родном с++, да ещё и с макросами, да ещё и с возможностью вывода в лог, да ещё и с возможностью останова только на 117м срабатывании при условии Condition? M>какой уж тут питон, я вас умоляю...
И какое отношение код, исполняющийся под отладчиком, имеет к коду управляющему работой отладчика? )))
Здравствуйте, alex_public, Вы писали:
_>Здравствуйте, Molchalnik, Вы писали:
_>>>А можно тогда узнать, что является у отладчика VisualStudio аналогом встроенных в gdb скриптов на Питоне? ) M>>А что мешает вам в бряке студии написать ЛЮБОЙ код, причём не на левом относительно с++ языке, а на родном с++, да ещё и с макросами, да ещё и с возможностью вывода в лог, да ещё и с возможностью останова только на 117м срабатывании при условии Condition? M>>какой уж тут питон, я вас умоляю...
_>И какое отношение код, исполняющийся под отладчиком, имеет к коду управляющему работой отладчика? )))
Простите, я не понял вопрос
gdb с питоном позволяет использовать скрипты, которые управляют работой отладчика
breakpoint'ы визуалстудии позволяют использовать скрипты, которые управляют работой отладчика.
Просветите меня, в чём разница и в чём преимущество именно питоновых скриптов перед визуалстудийными?
Здравствуйте, Molchalnik, Вы писали:
_>>И какое отношение код, исполняющийся под отладчиком, имеет к коду управляющему работой отладчика? ))) M>Простите, я не понял вопрос M>gdb с питоном позволяет использовать скрипты, которые управляют работой отладчика M>breakpoint'ы визуалстудии позволяют использовать скрипты, которые управляют работой отладчика. M>Просветите меня, в чём разница и в чём преимущество именно питоновых скриптов перед визуалстудийными?
Что такое "скрипты visualstudio"? Вроде бы только что у нас шла речь и "коде на C++ в брейкпоинте". И если у нас до сих пор речь об этом, то хотелось бы поинтересоваться, вызов каких функций отладчика доступен из этого "кода в бряке".
Здравствуйте, alex_public, Вы писали:
_>Здравствуйте, Molchalnik, Вы писали:
_>>>И какое отношение код, исполняющийся под отладчиком, имеет к коду управляющему работой отладчика? ))) M>>Простите, я не понял вопрос M>>gdb с питоном позволяет использовать скрипты, которые управляют работой отладчика M>>breakpoint'ы визуалстудии позволяют использовать скрипты, которые управляют работой отладчика. M>>Просветите меня, в чём разница и в чём преимущество именно питоновых скриптов перед визуалстудийными?
_>Что такое "скрипты visualstudio"? Вроде бы только что у нас шла речь и "коде на C++ в брейкпоинте". И если у нас до сих пор речь об этом, то хотелось бы поинтересоваться, вызов каких функций отладчика доступен из этого "кода в бряке".
В условии срабатывания — любых функций на языке отладки
В действиях по результату срабатывания брикпоинта победнее — можно выбрать произвольный вывод в лог с остановом или без останова
естественно, что брикпоинт может быть не только на строку, но и на запись в данные. В результате получается тот же скрипт, а масса разнообразных питоновых смотрелок не особенно нужна, т.к. их заменяет адекватный графический интерфейс с тем же функционалом.
Здравствуйте, Molchalnik, Вы писали:
_>>Что такое "скрипты visualstudio"? Вроде бы только что у нас шла речь и "коде на C++ в брейкпоинте". И если у нас до сих пор речь об этом, то хотелось бы поинтересоваться, вызов каких функций отладчика доступен из этого "кода в бряке". M>В условии срабатывания — любых функций на языке отладки M>В действиях по результату срабатывания брикпоинта победнее — можно выбрать произвольный вывод в лог с остановом или без останова
Т.е. по сути никаких функций нет.
M>естественно, что брикпоинт может быть не только на строку, но и на запись в данные. В результате получается тот же скрипт, а масса разнообразных питоновых смотрелок не особенно нужна, т.к. их заменяет адекватный графический интерфейс с тем же функционалом.
Речь вообще не о смотрелках — такие вещи вообще скорее из консоли запускают. Речь о полноценном управление отладчиком из скрипта, которому доступные все функции и переменные отладчика! Ты можешь посмотреть как это выглядит например в этом видео: https://www.youtube.com/watch?v=PorfLSr3DDI
Здравствуйте, alex_public, Вы писали:
_>Т.е. по сути никаких функций нет.
M>>естественно, что брикпоинт может быть не только на строку, но и на запись в данные. В результате получается тот же скрипт, а масса разнообразных питоновых смотрелок не особенно нужна, т.к. их заменяет адекватный графический интерфейс с тем же функционалом.
_>Речь вообще не о смотрелках — такие вещи вообще скорее из консоли запускают.
ну всякие олдфажные фанаты и консоледрочеры запускают. А люди, ценящие своё время и комфорт, юзают IDE и RAD
Речь о полноценном управление отладчиком из скрипта, которому доступные все функции и переменные отладчика!
А смысл? в чём реальное преимущество в практической работе? ты же не можешь написать скрипт, который отладит прогу за тебя. В чём моральное превосходство?
Здравствуйте, Molchalnik, Вы писали:
_>>Речь вообще не о смотрелках — такие вещи вообще скорее из консоли запускают. M>ну всякие олдфажные фанаты и консоледрочеры запускают. А люди, ценящие своё время и комфорт, юзают IDE и RAD
Я с удовольствием пользуюсь и IDE и консолью. Ограниченных фанатов чего-то одного мне просто жаль...
_>>Речь о полноценном управление отладчиком из скрипта, которому доступные все функции и переменные отладчика! M>А смысл? в чём реальное преимущество в практической работе? ты же не можешь написать скрипт, который отладит прогу за тебя. В чём моральное превосходство?
Вообще то могу. Более того, иногда это единственный возможный вариант (иначе пришлось бы кликать тысячи раз в кнопку "далее", отслеживая нужный момент).
_>Вообще то могу. Более того, иногда это единственный возможный вариант (иначе пришлось бы кликать тысячи раз в кнопку "далее", отслеживая нужный момент).
ну так зачем трахаться с консольными скриптами, если тоже самое предоставляет IDE?
Записываете в бряк произвольную функцию как критерий останова, и наслаждаетесь.
В чём преимущество скриптов перед интеллектуальными бряками? Кроме выбора момента останова, который могут выбирать и те, и другие
Здравствуйте, Molchalnik, Вы писали:
_>>Вообще то могу. Более того, иногда это единственный возможный вариант (иначе пришлось бы кликать тысячи раз в кнопку "далее", отслеживая нужный момент). M>ну так зачем трахаться с консольными скриптами, если тоже самое предоставляет IDE? M>Записываете в бряк произвольную функцию как критерий останова, и наслаждаетесь. M>В чём преимущество скриптов перед интеллектуальными бряками? Кроме выбора момента останова, который могут выбирать и те, и другие
Ну и как мне написать "в бряк произвольную функцию", которая остановит исполнение скажем после 1000 проходов данного куска кода? ) Или предложишь менять отлаживаемый код? А если он во внешней библиотеке? )))
Здравствуйте, alex_public, Вы писали:
_>Здравствуйте, Molchalnik, Вы писали:
M>>В чём преимущество скриптов перед интеллектуальными бряками? Кроме выбора момента останова, который могут выбирать и те, и другие
_>Ну и как мне написать "в бряк произвольную функцию", которая остановит исполнение скажем после 1000 проходов данного куска кода? ) Или предложишь менять отлаживаемый код? А если он во внешней библиотеке? )))
Я же ответил на этот вопрос — "с помощью IDE". Это значит, что есть специальная формочка, в которой можно вписать условие останова и номер запуска, начиная с которого срабатывает бряк
например, записать, что номер потока должен быть 2004, а останавливаться нужно только на 10012 срабатывании
если нужны подробности. то извольте. жмём
alt+F9, C
или пкм + "условия"
далее выбираем одно из 3х:
1) условное выражение
2) фильтр
3) число попаданий
а дальше сами разберётесь
потому они и интеллектуальные бряки, а не просто бряки
в связи с вышеизложенным повторяю вопрос:
В чём преимущество скриптов перед интеллектуальными бряками? Кроме выбора момента останова, который могут выбирать и те, и другие
Здравствуйте, Molchalnik, Вы писали:
M>>>В чём преимущество скриптов перед интеллектуальными бряками? Кроме выбора момента останова, который могут выбирать и те, и другие _>>Ну и как мне написать "в бряк произвольную функцию", которая остановит исполнение скажем после 1000 проходов данного куска кода? ) Или предложишь менять отлаживаемый код? А если он во внешней библиотеке? ))) M>Я же ответил на этот вопрос — "с помощью IDE". Это значит, что есть специальная формочка, в которой можно вписать условие останова и номер запуска, начиная с которого срабатывает бряк M>например, записать, что номер потока должен быть 2004, а останавливаться нужно только на 10012 срабатывании M>если нужны подробности. то извольте. жмём M>alt+F9, C M>или пкм + "условия" M>далее выбираем одно из 3х: M>1) условное выражение M>2) фильтр M>3) число попаданий M>а дальше сами разберётесь M>потому они и интеллектуальные бряки, а не просто бряки M>в связи с вышеизложенным повторяю вопрос: M>В чём преимущество скриптов перед интеллектуальными бряками? Кроме выбора момента останова, который могут выбирать и те, и другие
Так ты всё же определись о чём ты говоришь. В начале ты писал про "произвольную функцию как критерий останова", а теперь уже про "интеллектуальные бряки", которые естественно не требуют никаких модификаций кода, но при этом даже близко не подходят под определение произвольной функции.
Здравствуйте, alex_public, Вы писали:
_>Здравствуйте, Molchalnik, Вы писали:
M>>в связи с вышеизложенным повторяю вопрос: M>>В чём преимущество скриптов перед интеллектуальными бряками? Кроме выбора момента останова, который могут выбирать и те, и другие
_>Так ты всё же определись о чём ты говоришь. В начале ты писал про "произвольную функцию как критерий останова", а теперь уже про "интеллектуальные бряки", которые естественно не требуют никаких модификаций кода, но при этом даже близко не подходят под определение произвольной функции.
так никакого противоречия — нажимаешь пкм на breakpoint, после этого возникает форма, в эту форму вводишь набор условий останова. одним из условий может быть функция. берёшь и херачишь плюсовую функцию (точнее вызов плюсовой функции или вычисляемое выражение) прямо в форме — где здесь модификация кода? Код вызова функции есть только в breakpoint. Код программы никак не изменяется при этом.
а теперь, уважаемые знатоки, повторяем вопрос:
В чём преимущество скриптов перед интеллектуальными бряками? Кроме выбора момента останова, который могут выбирать и те, и другие
Здравствуйте, Molchalnik, Вы писали:
_>>Так ты всё же определись о чём ты говоришь. В начале ты писал про "произвольную функцию как критерий останова", а теперь уже про "интеллектуальные бряки", которые естественно не требуют никаких модификаций кода, но при этом даже близко не подходят под определение произвольной функции. M>так никакого противоречия — нажимаешь пкм на breakpoint, после этого возникает форма, в эту форму вводишь набор условий останова. одним из условий может быть функция. берёшь и херачишь плюсовую функцию (точнее вызов плюсовой функции или вычисляемое выражение) прямо в форме — где здесь модификация кода? Код вызова функции есть только в breakpoint. Код программы никак не изменяется при этом.
"Вычисляемое выражение" и "произвольный код" — это абсолютно разные вещи. Например, как ты задашь с помощью этого самого вычисляемого выражения, чтобы исполнения остановилось после 1000 итераций в цикле одного потока при условии равенства нулю локальной переменной в стеке другого потока?
Здравствуйте, alex_public, Вы писали:
_>Здравствуйте, Molchalnik, Вы писали:
_>>>Так ты всё же определись о чём ты говоришь. В начале ты писал про "произвольную функцию как критерий останова", а теперь уже про "интеллектуальные бряки", которые естественно не требуют никаких модификаций кода, но при этом даже близко не подходят под определение произвольной функции. M>>так никакого противоречия — нажимаешь пкм на breakpoint, после этого возникает форма, в эту форму вводишь набор условий останова. одним из условий может быть функция. берёшь и херачишь плюсовую функцию (точнее вызов плюсовой функции или вычисляемое выражение) прямо в форме — где здесь модификация кода? Код вызова функции есть только в breakpoint. Код программы никак не изменяется при этом.
_>"Вычисляемое выражение" и "произвольный код" — это абсолютно разные вещи. Например, как ты задашь с помощью этого самого вычисляемого выражения, чтобы исполнения остановилось после 1000 итераций в цикле одного потока при условии равенства нулю локальной переменной в стеке другого потока?
Если нет доступа к переменной через код или функцию, или она как-то не копируется в коде — то возможно, и никак. А может быть, и есть способ — не могу точно сказать. Если можно написать дебажную функцию-геттер, или есть доступ напрямую, то точно возможно.