Это улучшенный вариант Edit.GoToBrace (Ctrl+]) команды: набор двойных "аккордов" — Alt+[ или Alt+] для перехода к открывающей или закрывающей фигурной скобке, в зависимости от второй клавиши — [ или ] для блока, F для функции, C для класса, N для namespace.
Критика, замечания, предложения и комплименты приветствуются.
Здравствуйте, VladFein, Вы писали:
VF>Еще один БЕСПЛАТНЫЙ инструмент для Visual Studio 2012 и 2013: VF>www.FeinSoftware.com/FeinBrace
VF>Это улучшенный вариант Edit.GoToBrace (Ctrl+]) команды: набор двойных "аккордов" — Alt+[ или Alt+] для перехода к открывающей или закрывающей фигурной скобке, в зависимости от второй клавиши — [ или ] для блока, F для функции, C для класса, N для namespace.
VF>Критика, замечания, предложения и комплименты приветствуются.
запили лучше плагин, который будет по right-click в watch добавлять memory breakpoint по адресу переменной. работы на полчаса, а я бы за такой баксов 5 заплатил. и может быть, не один я.
Здравствуйте, bazis1, Вы писали:
B>запили лучше плагин, который будет по right-click в watch добавлять memory breakpoint по адресу переменной. работы на полчаса, а я бы за такой баксов 5 заплатил. и может быть, не один я.
Здравствуйте, bazis1, Вы писали:
B>запили лучше плагин, который будет по right-click в watch добавлять memory breakpoint по адресу переменной. работы на полчаса, а я бы за такой баксов 5 заплатил. и может быть, не один я.
полчаса my ass...
Во-первых, я сперва хотел рассказать почему Data Breakpoint — плохая идея. Но подумал, что это будет звучать убедительнее ПОСЛЕ того как я напишу такой плагин.
Ковыряние в меню не укладывается в полчаса, поэтому подвешу это дело на какой-нибудь shortcut.
D (для Data)? Ctrl+D, Ctrl+Alt+D, Ctrl+Shift+D, Shift+Alt+D заняты... Та же картина для B (Breakpoint).
О! Alt+Break! Гениально! Как у нас со временем? 15 минут?
Дальше. Попытка #1. Делаю Breakpoint по адресу выделенной переменной. Сколько байт смотреть? Разумеется, по размеру этой переменной!
Играю с long long. Хмм...
"The breakpoint cannot be set. The hardware does not support monitoring the requested number of bytes."
Без объяснения! Help на это дело (http://msdn.microsoft.com/en-us/library/5557y8b4%28v=vs.120%29.aspx) в секции о Data breakpoints приводит картинку про Function
Далее пишет: "For example, if you type 4,..." А если у мене НЕ 4??? К доктору.
Короче, предлагаю компромис: на x86 будем смотреть 4 байта, на x64 — 8. Или я могу сделать несколько breakpoints, что бы покрыть всю переменную. Но это — за отдельную плату, ver. 2.0
Итак, я уже вышел за пределы полчаса, а мне ещё нужно copyright вставить, пересобрать начисто, upload...
В общем — "вечером стулья"
Только никому не говорите, что я работал почти час за $5.
Здравствуйте, VladFein, Вы писали:
VF>Здравствуйте, bazis1, Вы писали:
B>>запили лучше плагин, который будет по right-click в watch добавлять memory breakpoint по адресу переменной. работы на полчаса, а я бы за такой баксов 5 заплатил. и может быть, не один я.
VF>полчаса my ass...
VF>Во-первых, я сперва хотел рассказать почему Data Breakpoint — плохая идея. Но подумал, что это будет звучать убедительнее ПОСЛЕ того как я напишу такой плагин.
VF>Ковыряние в меню не укладывается в полчаса, поэтому подвешу это дело на какой-нибудь shortcut. VF>D (для Data)? Ctrl+D, Ctrl+Alt+D, Ctrl+Shift+D, Shift+Alt+D заняты... Та же картина для B (Breakpoint).
Ковыряние в меню делается с помощью VSCT Powertoy, причем оттуда тупо копипейстится фрагмент в VSCT-файл. VF>О! Alt+Break! Гениально! Как у нас со временем? 15 минут? VF>Дальше. Попытка #1. Делаю Breakpoint по адресу выделенной переменной. Сколько байт смотреть? Разумеется, по размеру этой переменной! VF>Играю с long long. Хмм...
Evaluate sizeof({expression}) и все дела VF>"The breakpoint cannot be set. The hardware does not support monitoring the requested number of bytes." VF>Без объяснения! Help на это дело (http://msdn.microsoft.com/en-us/library/5557y8b4%28v=vs.120%29.aspx) в секции о Data breakpoints приводит картинку про Function VF>Далее пишет: "For example, if you type 4,..." А если у мене НЕ 4??? К доктору. VF>Короче, предлагаю компромис: на x86 будем смотреть 4 байта, на x64 — 8. Или я могу сделать несколько breakpoints, что бы покрыть всю переменную. Но это — за отдельную плату, ver. 2.0
Можно просто показать диалог и предложить там выбрать (подставив 4 или полученный sizeof() по умолчанию). VF>Итак, я уже вышел за пределы полчаса, а мне ещё нужно copyright вставить, пересобрать начисто, upload... VF>В общем — "вечером стулья"
"Вечером стулья" несовместимо с "copyright вставить". VF>Только никому не говорите, что я работал почти час за $5.
$5 с носа же. Я не думаю, что я единственный юзер студии, которому не хватает этой фичи.
Здравствуйте, bazis1, Вы писали:
B>Ковыряние в меню делается с помощью VSCT Powertoy, причем оттуда тупо копипейстится фрагмент в VSCT-файл.
Вставить в VSCT-файл я и сам могу, я говорил про поиск правильного меню (куда вставить).
B>Evaluate sizeof({expression}) и все дела
Я же писал:
VF>>"The breakpoint cannot be set. The hardware does not support monitoring the requested number of bytes."
B>"Вечером стулья" несовместимо с "copyright вставить".
Совместимо, поскольку "чистую" сборку надо делать на чистой машине. Вечером.
VF>>Только никому не говорите, что я работал почти час за $5. B>$5 с носа же. Я не думаю, что я единственный юзер студии, которому не хватает этой фичи.
Давайте сравним:
Я сейчас могу, выделив в дебагере переменную, нажать "Alt+D, B, D" и получить New Breakpoint диалог, с подставленным выделенным текстом, Byte Count — 1, Language — C++.
Я могу вставить "&", заменить 1 на 4 и кликнуть Enter.
Или, заплатив $5, просто нажать Alt+Break. Хмм... $5???
Здравствуйте, VladFein, Вы писали:
VF>Здравствуйте, bazis1, Вы писали:
B>>$5 с носа же. Я не думаю, что я единственный юзер студии, которому не хватает этой фичи.
VF>ОК, готово: http://www.FeinSoftware.com/files/FeinBrace.vsix VF>Обратите внимание: сообщения об ошибках и об успехе — в Visual Studio status bar.
VF>Критика, замечания, предложения и комплименты приветствуются. (c)
FeinBrace? Ты ссылку не перепутал?
Здравствуйте, VladFein, Вы писали:
VF>Здравствуйте, bazis1, Вы писали:
VF>>>Критика, замечания, предложения и комплименты приветствуются. (c) B>>FeinBrace? Ты ссылку не перепутал?
VF>Перепутал, конечно. Проклятый copy/paste! VF>http://www.FeinSoftware.com/files/FeinBreak.vsix
Поставил. Ничего кроме нового плагина в Extensions and Updates не заметил. VS2013Pro.
Скриншот:
я в идеале хочу, чтобы рядом с edit value и add watch появился пункт "add data breakpoint" (VSIX Powertoy найдет ID этого меню поиском в два счета и сгенерирует snippet для вставки своей команды).
ну ладно, пробовал нажимать alt-break — никакого эффекта. ЧЯНТД?
Здравствуйте, bazis1, Вы писали:
B>я в идеале хочу, чтобы рядом с edit value и add watch появился пункт "add data breakpoint" (VSIX Powertoy найдет ID этого меню поиском в два счета и сгенерирует snippet для вставки своей команды).
Посмотрю. B>ну ладно, пробовал нажимать alt-break — никакого эффекта. ЧЯНТД?
А в статус-строке что-то есть?
Нужно сперва выделить название переменной (например, s.Field2), что бы я знал, за чем следить.
Здравствуйте, bazis1, Вы писали:
B>я в идеале хочу, чтобы рядом с edit value и add watch появился пункт "add data breakpoint" (VSIX Powertoy найдет ID этого меню поиском в два счета и сгенерирует snippet для вставки своей команды).
Здравствуйте, bazis1, Вы писали:
B>Image: watch.png B>я в идеале хочу, чтобы рядом с edit value и add watch появился пункт "add data breakpoint" (VSIX Powertoy найдет ID этого меню поиском в два счета и сгенерирует snippet для вставки своей команды).
Добавил feature: если ничего не выбрано, выбираю текущее слово под курсором.
"по right-click в watch" — в полчаса не влезет, даже само по себе: интерфейс не документирован, текущее выделенное слово так запросто не найти. Это — R&D, по крайней мере несколько часов.
Здравствуйте, VladFein, Вы писали:
VF>Еще один БЕСПЛАТНЫЙ инструмент для Visual Studio 2012 и 2013: VF>www.FeinSoftware.com/FeinBrace
VF>Это улучшенный вариант Edit.GoToBrace (Ctrl+]) команды: набор двойных "аккордов" — Alt+[ или Alt+] для перехода к открывающей или закрывающей фигурной скобке, в зависимости от второй клавиши — [ или ] для блока, F для функции, C для класса, N для namespace.
VF>Критика, замечания, предложения и комплименты приветствуются.
Разговор в этой теме как-то сам собой (?) перешёл на Breakpoints.
А что насчёт FeinBrace? Неужели только у меня одного иногда возникает желание за один шаг перейти к началу (или концу) блока, функции, класса или (как это будет по-русски) namespace?
Здравствуйте, VladFein, Вы писали:
VF>Здравствуйте, bazis1, Вы писали:
B>>я в идеале хочу, чтобы рядом с edit value и add watch появился пункт "add data breakpoint" (VSIX Powertoy найдет ID этого меню поиском в два счета и сгенерирует snippet для вставки своей команды). VF>Посмотрю. B>>ну ладно, пробовал нажимать alt-break — никакого эффекта. ЧЯНТД? VF>А в статус-строке что-то есть? VF>Нужно сперва выделить название переменной (например, s.Field2), что бы я знал, за чем следить.
т.е. твой плагин работает только если у меня полное выражение набрано в редакторе? Тогда он чуть более чем полностью бесполезен. Скопировать из редактора я и сам могу.
Сложность возникает, когда я навожу мышь на какую-нибудь переменную, прощелкиваю 5-10 уровней, чтобы докопаться до какого-нибудь reference counter-а и хочу быстро туда поставить break, чтобы увидеть, кто его будет менять. еще было бы полезно memory открывать из того же меню. а уже выделенный в редакторе текст я и сам скопипейстить могу.
Здравствуйте, bazis1, Вы писали:
B>т.е. твой плагин работает только если у меня полное выражение набрано в редакторе? Тогда он чуть более чем полностью бесполезен. Скопировать из редактора я и сам могу. B>Сложность возникает, когда я навожу мышь на какую-нибудь переменную, прощелкиваю 5-10 уровней, чтобы докопаться до какого-нибудь reference counter-а и хочу быстро туда поставить break, чтобы увидеть, кто его будет менять. еще было бы полезно memory открывать из того же меню. а уже выделенный в редакторе текст я и сам скопипейстить могу.
Это то, что можно было сделать "за полчаса".
Как я писал выше, Watch и Datatip своими данными не делятся (документированно).
Будем искать...
Здравствуйте, VladFein, Вы писали:
VF>Здравствуйте, bazis1, Вы писали:
B>>т.е. твой плагин работает только если у меня полное выражение набрано в редакторе? Тогда он чуть более чем полностью бесполезен. Скопировать из редактора я и сам могу. B>>Сложность возникает, когда я навожу мышь на какую-нибудь переменную, прощелкиваю 5-10 уровней, чтобы докопаться до какого-нибудь reference counter-а и хочу быстро туда поставить break, чтобы увидеть, кто его будет менять. еще было бы полезно memory открывать из того же меню. а уже выделенный в редакторе текст я и сам скопипейстить могу.
VF>Это то, что можно было сделать "за полчаса". VF>Как я писал выше, Watch и Datatip своими данными не делятся (документированно). VF>Будем искать...
см. OleCommandTarget. для контекстного меню довольно легко получается IUnknown объекта, на котором оно активировано. дальше делается QueryInterface, step in в disassembly и смотрится список guid-ов, которые там проверяются. дальше guidы гуглятся и... PROFIT!
Здравствуйте, bazis1, Вы писали:
VF>>Как я писал выше, Watch и Datatip своими данными не делятся (документированно). VF>>Будем искать... B>см. OleCommandTarget. для контекстного меню довольно легко получается IUnknown объекта, на котором оно активировано. дальше делается QueryInterface, step in в disassembly и смотрится список guid-ов, которые там проверяются. дальше guidы гуглятся и... PROFIT!
Как найдёшь — поделись
Я пока что нашёл меню (Watch и Datatip), вставил свои команды.
Пытаюсь докопаться до внутренних данных.