Re[8]: Школа С++ от UNIGINE
От: Molchalnik  
Дата: 04.03.18 20:31
Оценка: +1
Здравствуйте, alex_public, Вы писали:

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


M>>Однако, у визуал студии лучший отладчик из существующих, значительно обгоняющий по возможности кьют, андроид студию, эклипс и уж точно круче gdb + vim.

M>>Юзабилити не хуже. Так что, если речь идёт о серьёзной отладке, линукс вэй отсасывает полностью. Говорю, как человек, который и модули под ядро линухи писал, и с андроидом баловался, и на кьюте писал. Сред разработки хлебнул красивых и разных. Фанатом винды не являюсь. Впрочем, и линухе три раза ку тоже не делаю.

_>А можно тогда узнать, что является у отладчика VisualStudio аналогом встроенных в gdb скриптов на Питоне? )


А что мешает вам в бряке студии написать ЛЮБОЙ код, причём не на левом относительно с++ языке, а на родном с++, да ещё и с макросами, да ещё и с возможностью вывода в лог, да ещё и с возможностью останова только на 117м срабатывании при условии Condition?

какой уж тут питон, я вас умоляю...
Re[9]: Школа С++ от UNIGINE
От: alex_public  
Дата: 04.03.18 23:23
Оценка:
Здравствуйте, Molchalnik, Вы писали:

_>>А можно тогда узнать, что является у отладчика VisualStudio аналогом встроенных в gdb скриптов на Питоне? )

M>А что мешает вам в бряке студии написать ЛЮБОЙ код, причём не на левом относительно с++ языке, а на родном с++, да ещё и с макросами, да ещё и с возможностью вывода в лог, да ещё и с возможностью останова только на 117м срабатывании при условии Condition?
M>какой уж тут питон, я вас умоляю...

И какое отношение код, исполняющийся под отладчиком, имеет к коду управляющему работой отладчика? )))
Re[10]: Школа С++ от UNIGINE
От: Molchalnik  
Дата: 07.03.18 03:59
Оценка: +1
Здравствуйте, alex_public, Вы писали:

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


_>>>А можно тогда узнать, что является у отладчика VisualStudio аналогом встроенных в gdb скриптов на Питоне? )

M>>А что мешает вам в бряке студии написать ЛЮБОЙ код, причём не на левом относительно с++ языке, а на родном с++, да ещё и с макросами, да ещё и с возможностью вывода в лог, да ещё и с возможностью останова только на 117м срабатывании при условии Condition?
M>>какой уж тут питон, я вас умоляю...

_>И какое отношение код, исполняющийся под отладчиком, имеет к коду управляющему работой отладчика? )))


Простите, я не понял вопрос
gdb с питоном позволяет использовать скрипты, которые управляют работой отладчика
breakpoint'ы визуалстудии позволяют использовать скрипты, которые управляют работой отладчика.

Просветите меня, в чём разница и в чём преимущество именно питоновых скриптов перед визуалстудийными?
Re[11]: Школа С++ от UNIGINE
От: alex_public  
Дата: 07.03.18 10:44
Оценка:
Здравствуйте, Molchalnik, Вы писали:

_>>И какое отношение код, исполняющийся под отладчиком, имеет к коду управляющему работой отладчика? )))

M>Простите, я не понял вопрос
M>gdb с питоном позволяет использовать скрипты, которые управляют работой отладчика
M>breakpoint'ы визуалстудии позволяют использовать скрипты, которые управляют работой отладчика.
M>Просветите меня, в чём разница и в чём преимущество именно питоновых скриптов перед визуалстудийными?

Что такое "скрипты visualstudio"? Вроде бы только что у нас шла речь и "коде на C++ в брейкпоинте". И если у нас до сих пор речь об этом, то хотелось бы поинтересоваться, вызов каких функций отладчика доступен из этого "кода в бряке".
Re[12]: Школа С++ от UNIGINE
От: Molchalnik  
Дата: 07.03.18 22:05
Оценка:
Здравствуйте, alex_public, Вы писали:

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


_>>>И какое отношение код, исполняющийся под отладчиком, имеет к коду управляющему работой отладчика? )))

M>>Простите, я не понял вопрос
M>>gdb с питоном позволяет использовать скрипты, которые управляют работой отладчика
M>>breakpoint'ы визуалстудии позволяют использовать скрипты, которые управляют работой отладчика.
M>>Просветите меня, в чём разница и в чём преимущество именно питоновых скриптов перед визуалстудийными?

_>Что такое "скрипты visualstudio"? Вроде бы только что у нас шла речь и "коде на C++ в брейкпоинте". И если у нас до сих пор речь об этом, то хотелось бы поинтересоваться, вызов каких функций отладчика доступен из этого "кода в бряке".


В условии срабатывания — любых функций на языке отладки
В действиях по результату срабатывания брикпоинта победнее — можно выбрать произвольный вывод в лог с остановом или без останова

естественно, что брикпоинт может быть не только на строку, но и на запись в данные. В результате получается тот же скрипт, а масса разнообразных питоновых смотрелок не особенно нужна, т.к. их заменяет адекватный графический интерфейс с тем же функционалом.
Re[13]: Школа С++ от UNIGINE
От: alex_public  
Дата: 09.03.18 14:13
Оценка:
Здравствуйте, Molchalnik, Вы писали:

_>>Что такое "скрипты visualstudio"? Вроде бы только что у нас шла речь и "коде на C++ в брейкпоинте". И если у нас до сих пор речь об этом, то хотелось бы поинтересоваться, вызов каких функций отладчика доступен из этого "кода в бряке".

M>В условии срабатывания — любых функций на языке отладки
M>В действиях по результату срабатывания брикпоинта победнее — можно выбрать произвольный вывод в лог с остановом или без останова

Т.е. по сути никаких функций нет.

M>естественно, что брикпоинт может быть не только на строку, но и на запись в данные. В результате получается тот же скрипт, а масса разнообразных питоновых смотрелок не особенно нужна, т.к. их заменяет адекватный графический интерфейс с тем же функционалом.


Речь вообще не о смотрелках — такие вещи вообще скорее из консоли запускают. Речь о полноценном управление отладчиком из скрипта, которому доступные все функции и переменные отладчика! Ты можешь посмотреть как это выглядит например в этом видео: https://www.youtube.com/watch?v=PorfLSr3DDI
Re[14]: Школа С++ от UNIGINE
От: Molchalnik  
Дата: 21.04.18 16:59
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Т.е. по сути никаких функций нет.


M>>естественно, что брикпоинт может быть не только на строку, но и на запись в данные. В результате получается тот же скрипт, а масса разнообразных питоновых смотрелок не особенно нужна, т.к. их заменяет адекватный графический интерфейс с тем же функционалом.


_>Речь вообще не о смотрелках — такие вещи вообще скорее из консоли запускают.


ну всякие олдфажные фанаты и консоледрочеры запускают. А люди, ценящие своё время и комфорт, юзают IDE и RAD

Речь о полноценном управление отладчиком из скрипта, которому доступные все функции и переменные отладчика!

А смысл? в чём реальное преимущество в практической работе? ты же не можешь написать скрипт, который отладит прогу за тебя. В чём моральное превосходство?
Re[15]: Школа С++ от UNIGINE
От: alex_public  
Дата: 23.04.18 06:03
Оценка:
Здравствуйте, Molchalnik, Вы писали:

_>>Речь вообще не о смотрелках — такие вещи вообще скорее из консоли запускают.

M>ну всякие олдфажные фанаты и консоледрочеры запускают. А люди, ценящие своё время и комфорт, юзают IDE и RAD

Я с удовольствием пользуюсь и IDE и консолью. Ограниченных фанатов чего-то одного мне просто жаль...

_>>Речь о полноценном управление отладчиком из скрипта, которому доступные все функции и переменные отладчика!

M>А смысл? в чём реальное преимущество в практической работе? ты же не можешь написать скрипт, который отладит прогу за тебя. В чём моральное превосходство?

Вообще то могу. Более того, иногда это единственный возможный вариант (иначе пришлось бы кликать тысячи раз в кнопку "далее", отслеживая нужный момент).
Re[16]: Школа С++ от UNIGINE
От: Molchalnik  
Дата: 24.07.18 20:09
Оценка:
Здравствуйте, alex_public, Вы писали:


_>Вообще то могу. Более того, иногда это единственный возможный вариант (иначе пришлось бы кликать тысячи раз в кнопку "далее", отслеживая нужный момент).


ну так зачем трахаться с консольными скриптами, если тоже самое предоставляет IDE?
Записываете в бряк произвольную функцию как критерий останова, и наслаждаетесь.

В чём преимущество скриптов перед интеллектуальными бряками? Кроме выбора момента останова, который могут выбирать и те, и другие
Re[17]: Школа С++ от UNIGINE
От: alex_public  
Дата: 25.07.18 14:27
Оценка:
Здравствуйте, Molchalnik, Вы писали:

_>>Вообще то могу. Более того, иногда это единственный возможный вариант (иначе пришлось бы кликать тысячи раз в кнопку "далее", отслеживая нужный момент).

M>ну так зачем трахаться с консольными скриптами, если тоже самое предоставляет IDE?
M>Записываете в бряк произвольную функцию как критерий останова, и наслаждаетесь.
M>В чём преимущество скриптов перед интеллектуальными бряками? Кроме выбора момента останова, который могут выбирать и те, и другие

Ну и как мне написать "в бряк произвольную функцию", которая остановит исполнение скажем после 1000 проходов данного куска кода? ) Или предложишь менять отлаживаемый код? А если он во внешней библиотеке? )))
Re[18]: Школа С++ от UNIGINE
От: Molchalnik  
Дата: 30.07.18 18:00
Оценка:
Здравствуйте, alex_public, Вы писали:

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



M>>В чём преимущество скриптов перед интеллектуальными бряками? Кроме выбора момента останова, который могут выбирать и те, и другие


_>Ну и как мне написать "в бряк произвольную функцию", которая остановит исполнение скажем после 1000 проходов данного куска кода? ) Или предложишь менять отлаживаемый код? А если он во внешней библиотеке? )))


Я же ответил на этот вопрос — "с помощью IDE". Это значит, что есть специальная формочка, в которой можно вписать условие останова и номер запуска, начиная с которого срабатывает бряк

например, записать, что номер потока должен быть 2004, а останавливаться нужно только на 10012 срабатывании

если нужны подробности. то извольте. жмём

alt+F9, C

или пкм + "условия"

далее выбираем одно из 3х:
1) условное выражение
2) фильтр
3) число попаданий

а дальше сами разберётесь

потому они и интеллектуальные бряки, а не просто бряки

в связи с вышеизложенным повторяю вопрос:

В чём преимущество скриптов перед интеллектуальными бряками? Кроме выбора момента останова, который могут выбирать и те, и другие
Re[19]: Школа С++ от UNIGINE
От: alex_public  
Дата: 30.07.18 20:18
Оценка:
Здравствуйте, 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>В чём преимущество скриптов перед интеллектуальными бряками? Кроме выбора момента останова, который могут выбирать и те, и другие

Так ты всё же определись о чём ты говоришь. В начале ты писал про "произвольную функцию как критерий останова", а теперь уже про "интеллектуальные бряки", которые естественно не требуют никаких модификаций кода, но при этом даже близко не подходят под определение произвольной функции.
Re[20]: Школа С++ от UNIGINE
От: Molchalnik  
Дата: 31.07.18 18:00
Оценка:
Здравствуйте, alex_public, Вы писали:

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


M>>в связи с вышеизложенным повторяю вопрос:

M>>В чём преимущество скриптов перед интеллектуальными бряками? Кроме выбора момента останова, который могут выбирать и те, и другие

_>Так ты всё же определись о чём ты говоришь. В начале ты писал про "произвольную функцию как критерий останова", а теперь уже про "интеллектуальные бряки", которые естественно не требуют никаких модификаций кода, но при этом даже близко не подходят под определение произвольной функции.


так никакого противоречия — нажимаешь пкм на breakpoint, после этого возникает форма, в эту форму вводишь набор условий останова. одним из условий может быть функция. берёшь и херачишь плюсовую функцию (точнее вызов плюсовой функции или вычисляемое выражение) прямо в форме — где здесь модификация кода? Код вызова функции есть только в breakpoint. Код программы никак не изменяется при этом.

а теперь, уважаемые знатоки, повторяем вопрос:


В чём преимущество скриптов перед интеллектуальными бряками? Кроме выбора момента останова, который могут выбирать и те, и другие
Re[21]: Школа С++ от UNIGINE
От: alex_public  
Дата: 31.07.18 23:55
Оценка:
Здравствуйте, Molchalnik, Вы писали:

_>>Так ты всё же определись о чём ты говоришь. В начале ты писал про "произвольную функцию как критерий останова", а теперь уже про "интеллектуальные бряки", которые естественно не требуют никаких модификаций кода, но при этом даже близко не подходят под определение произвольной функции.

M>так никакого противоречия — нажимаешь пкм на breakpoint, после этого возникает форма, в эту форму вводишь набор условий останова. одним из условий может быть функция. берёшь и херачишь плюсовую функцию (точнее вызов плюсовой функции или вычисляемое выражение) прямо в форме — где здесь модификация кода? Код вызова функции есть только в breakpoint. Код программы никак не изменяется при этом.

"Вычисляемое выражение" и "произвольный код" — это абсолютно разные вещи. Например, как ты задашь с помощью этого самого вычисляемого выражения, чтобы исполнения остановилось после 1000 итераций в цикле одного потока при условии равенства нулю локальной переменной в стеке другого потока?
Re[22]: Школа С++ от UNIGINE
От: Molchalnik  
Дата: 01.08.18 19:30
Оценка:
Здравствуйте, alex_public, Вы писали:

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


_>>>Так ты всё же определись о чём ты говоришь. В начале ты писал про "произвольную функцию как критерий останова", а теперь уже про "интеллектуальные бряки", которые естественно не требуют никаких модификаций кода, но при этом даже близко не подходят под определение произвольной функции.

M>>так никакого противоречия — нажимаешь пкм на breakpoint, после этого возникает форма, в эту форму вводишь набор условий останова. одним из условий может быть функция. берёшь и херачишь плюсовую функцию (точнее вызов плюсовой функции или вычисляемое выражение) прямо в форме — где здесь модификация кода? Код вызова функции есть только в breakpoint. Код программы никак не изменяется при этом.

_>"Вычисляемое выражение" и "произвольный код" — это абсолютно разные вещи. Например, как ты задашь с помощью этого самого вычисляемого выражения, чтобы исполнения остановилось после 1000 итераций в цикле одного потока при условии равенства нулю локальной переменной в стеке другого потока?


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