crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

4 страниц V  < 1 2 3 4 >  
Ответить в данную темуНачать новую тему
> Главное меню
Don
  опции профиля:
сообщение 11.5.2008, 17:23
Сообщение #21


Студент
*

Группа: Новичок
Сообщений: 59
Регистрация: 19.3.2008
Пользователь №: 127

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 10.5.2008, 23:48) *
проверь в слот mainwindow::restart() входит программа? Сообщение пошли для проверки. да и кстати про принудительный репаинт, я тебе в прошлой истории говорил.


Сам слот restart() работает. Проверял с помощью QMessaggeBox. А вот када в нём обращаешся к даннам класса Life, работа проги прекращается и выпадает окошко с предупреждением:

Unhandled exception at 0x0040270e in life.exe: 0xC0000005: Access violation writing location 0xcdcdcde1.

и внизу три кнопки Continue, Break, Ignore (не дуступна).
Это связано по ходу с кривым обращением к данным класса Life. Помогите плиз решить проблему.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Don
  опции профиля:
сообщение 11.5.2008, 21:15
Сообщение #22


Студент
*

Группа: Новичок
Сообщений: 59
Регистрация: 19.3.2008
Пользователь №: 127

Спасибо сказали: 0 раз(а)




Репутация:   0  


Ладно, поскажите пожалуйста хотя бы как средствами С++ или Qt можно найти и запустить exe-файл?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Admin
  опции профиля:
сообщение 11.5.2008, 21:30
Сообщение #23


Администратор
****

Группа: Администратор
Сообщений: 646
Регистрация: 9.10.2007
Из: crossplatform.ru
Пользователь №: 1

Спасибо сказали: 17 раз(а)




Репутация:   2  


Примерно так:
     QObject *parent;
     // ...
     QString program = "./path/to/Qt/examples/widgets/analogclock";
     QStringList arguments;
     arguments << "-style" << "motif";

     QProcess *myProcess = new QProcess(parent);
     myProcess->start(program, arguments);


Цитата(Don @ 11.5.2008, 17:23) *
Это связано по ходу с кривым обращением к данным класса Life. Помогите плиз решить проблему.
Угу именно так, я бы тебе посоветовл сделать так:
1. Из конструктора класса Life вынести код:
srand(time(0));
for (int i = 0; i < 10; i++)
    for(int j = 0; j < 10; j++) imatrix[i][j] = rand()%3;}
в отдельную функцию, и вызывать данную функцию в конструкторе и в слоте restart. Ну и правки нужно будет делать не в двую участках кода, а только в данной функции класса.

2. Посмотри в отладчике указатель board валиден или нет, если не валиден, то ищи где он у тебя портится...
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Don
  опции профиля:
сообщение 11.5.2008, 21:43
Сообщение #24


Студент
*

Группа: Новичок
Сообщений: 59
Регистрация: 19.3.2008
Пользователь №: 127

Спасибо сказали: 0 раз(а)




Репутация:   0  


Заносил в отдельную фукцию, всё равно из mainwindow.cpp не работает. А что значит валиден?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 11.5.2008, 21:50
Сообщение #25


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


валиден - показывает в конкретное место, а не на звезды :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 11.5.2008, 21:51
Сообщение #26


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Указывает на валидный участок памяти, а не на 0x000000, 0xffffff или 0xfefefe и т.д.

Наверняка исключение простреливается именно из-за этого.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Don
  опции профиля:
сообщение 11.5.2008, 22:09
Сообщение #27


Студент
*

Группа: Новичок
Сообщений: 59
Регистрация: 19.3.2008
Пользователь №: 127

Спасибо сказали: 0 раз(а)




Репутация:   0  


А смотреть в отладчике как? Это компилировать прогу построчно что-ли? Как им вобще пользоваться?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 11.5.2008, 22:12
Сообщение #28


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Вот можно почитать хорошии статьи по этому поводу:
Отладка в среде Visual C++


Сообщение отредактировал ViGOur - 11.5.2008, 22:17
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Don
  опции профиля:
сообщение 11.5.2008, 22:17
Сообщение #29


Студент
*

Группа: Новичок
Сообщений: 59
Регистрация: 19.3.2008
Пользователь №: 127

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(ViGOur @ 11.5.2008, 22:12) *
Вот можно почитать хорошую статью по этому поводу: Возможности встроенного отладчика Visual C++

Спасибо, конечно! Я прочту. Но можно в кратце, в двух словах. Как его запустить? И где мне там глянуть валиден ли мой board или нет? Просто нужно поскорей
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 11.5.2008, 22:25
Сообщение #30


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


Нужно поставить точку останова, на твоей проблемной строчке. Делается это так, поставь курсор на той строчке, что ты хочешь отладить и нажми кнопку F9, после чего с лева от нее должен появится красный кружечек, который называется брэкпоинт.
Затем нажимаешь кнопку F5, после чего запускается твое приложение, и делаешь в нем то, чтобы выполнился твой проблемный участок кода, когда это произойдет студия бросит тебя на установденный брэйкопоинт. Далее, чтобы пошагово ходить нужно работать клавишами F10 (шаг далее) или F11 (шаг в функцию)...

Далее объяснять не буду, так как назначение разного рода окошек описывается в статье...


p.s. я тебе выше добавил еще статей. :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

4 страниц V  < 1 2 3 4 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.4.2024, 17:21