Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2010, 09:31   #1
Servantes
 
Регистрация: 27.02.2010
Сообщений: 6
Восклицание Получение объектов из watch во время debug

Добрый день. Есть очень нетривиальная задача, может кто подскажет хотябы в какую сторону смотреть. в VS2008 во время отладки программы у нас в watch присутствуют некоторые объекты. Главный вопрос - как получить эти объекты, хотя бы что бы прочитать все поля этого объекта.

Последний раз редактировалось Servantes; 27.02.2010 в 09:36.
Servantes вне форума Ответить с цитированием
Старый 27.02.2010, 12:21   #2
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

Наводите на объект - возле него появляется плюсик, тыкаете на него и получаете все поля объекта и их значения.
MaTBeu вне форума Ответить с цитированием
Старый 27.02.2010, 13:03   #3
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Цитата:
Сообщение от Servantes Посмотреть сообщение
Есть очень нетривиальная задача
Ну прям самая нетривиальная задача
З.Ы. сорри за оффтоп
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 27.02.2010, 14:07   #4
KapeLLaN
Пользователь
 
Регистрация: 13.02.2008
Сообщений: 12
По умолчанию

Имеется ввиду ALT+F5 ?
KapeLLaN вне форума Ответить с цитированием
Старый 27.02.2010, 15:11   #5
Servantes
 
Регистрация: 27.02.2010
Сообщений: 6
По умолчанию

Я оценил ваше остроумие, но я бы посмотрел как вы отслеживали объект со структурой в 10000 полей... Мне нужно во время дебага, когда команда попала на брейкпоинт, получить объекты которые находятся в watch. И не просто глазюками посмотреть на эти поля как посоветовали, а хотя бы для начала вывести в файл.
Servantes вне форума Ответить с цитированием
Старый 28.02.2010, 00:47   #6
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Во-первых наличие объектов с 10000 полями верный знак того, что программа спроектирована плохо.
Во-вторых, если что-то нужно вывести в файл, что мешает написать вывод в файл? Прямо в коде программы? Отладочный код
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 28.02.2010, 19:50   #7
Servantes
 
Регистрация: 27.02.2010
Сообщений: 6
По умолчанию

Ну если бы мне можно было бы так сделать, я бы даже вопросов не задал. По поводу 10000 полей это просто пример, что бы поняли что глазками не всегда можно посмотреть. Мне нужно когда программа остановлена, добраться например до первого объекта watch и вывести все его поля в файл. Я даже не знаю с какой стороны подкопаться, кроме как поиск по адресу памяти, но в полном неведении я о размере объекта
Servantes вне форума Ответить с цитированием
Старый 28.02.2010, 21:35   #8
liljon
Форумчанин
 
Регистрация: 03.01.2010
Сообщений: 229
По умолчанию

смотри на пост выше
подпись
liljon вне форума Ответить с цитированием
Старый 01.03.2010, 00:41   #9
Blade
Software Engineer
Участник клуба
 
Аватар для Blade
 
Регистрация: 07.04.2007
Сообщений: 1,618
По умолчанию

Я не понял, что мешает вместо того, чтобы ставить точку останова, написать отладочный код с выводом в файл, после строчки (или блока), где должна быть точка?
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
Blade вне форума Ответить с цитированием
Старый 01.03.2010, 07:29   #10
Servantes
 
Регистрация: 27.02.2010
Сообщений: 6
По умолчанию

Замечательно, у меня это в результате будет Add-in. Как вы себе представляете заного писать отладочный код??? Я немного не понимаю, отладочный код это что - когда программа остановлена на брейке, написать прямо после него вывод в файл??? или добавить этот код до выполнения программы. Брейки могут быть поставлены где угодно и когда угодно, и там везде ввставлять отладочный код??? В любом случае это не поможет. Мне нужно получить эти объекты из watch, что бы в любой момент времени не приходилось отладочный код писать. а просто щелкнув на объект, появившийся в add-in, выполнить нужные действа.

Последний раз редактировалось Servantes; 01.03.2010 в 09:13.
Servantes вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
debug возможно ли? sw3n Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 10 20.01.2010 04:27
Что такое Shared Repository и как им пользоваться? Каким образом добавлять переменный в Watch List ... ? TwiX Общие вопросы Delphi 5 04.11.2009 20:47
X64 Debug BioS Общие вопросы C/C++ 6 07.10.2009 20:41
for z:=1 to 5 do Смотрю watch показывает декремент ... dx+ Общие вопросы Delphi 3 24.05.2008 17:47