Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Возможно ли runtime сделать остановку breakpoint ? 
:(
    Опции темы
Gradov
Дата 25.3.2009, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 31.10.2006

Репутация: 2
Всего: 3



Возможно ли runtime сделать остановку breakpoint по условию и переключиться в Debug-режим? В общем создать программно debug breakpoint по условию также как они ставятся в IDE. 
PM MAIL   Вверх
Lazin
Дата 25.3.2009, 16:04 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 18
Всего: 154



как-то так
Код

asm
{
int 3
};

правда, если приложение работает не под отладчиком, оно этого не переживет smile 
зы..
есть еще ф-я OutputDebugString, которая посылает сообщение отладчику (правда я не в курсе, как builder на это отреагирует)
ззы
а разве в builer-e нет условных брэйкпоинтов?
PM MAIL Skype GTalk   Вверх
xvr
Дата 26.3.2009, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 48
Всего: 223



Можно:
Цитата

DebugBreak Function

Causes a breakpoint exception to occur in the current process. This allows the calling thread to signal the debugger to handle the exception.

To cause a breakpoint exception in another process, use the DebugBreakProcess function.
Syntax
C++

void WINAPI DebugBreak(void);

Parameters
This function has no parameters.
Return Value

This function does not return a value.
Remarks

If the process is not being debugged, the function uses the search logic of a standard exception handler. In most cases, this causes the calling process to terminate because of an unhandled breakpoint exception.

Requirements
Minimum supported client    Windows 2000 Professional
Minimum supported server    Windows 2000 Server
Header    Winbase.h (include Windows.h)
Library    Kernel32.lib
DLL    Kernel32.dll

PM MAIL   Вверх
Gradov
Дата 26.3.2009, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 124
Регистрация: 31.10.2006

Репутация: 2
Всего: 3



Lazin, спасибо.  smile  То что надо!

xvr, спасибо. DebugBreak это как раз и есть:
Код

void WINAPI DebugBreak(void)
{
  asm int 3;
  asm ret;
}


Поэтому asm int 3; предпочтительнее так как отладчик останавливается точно также как и по проставленному вручную breakpoint, т.е. на строчке в исходном файле.  А DebugBreak переключается в режим CPU.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0669 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.