Форум программистов, компьютерный форум CyberForum.ru

Отладка многопоточного приложения - C++

Восстановить пароль Регистрация
 
Andruxa-1
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 7
05.02.2012, 21:15     Отладка многопоточного приложения #1
Читаю РИхтера, пытаюсь выполнить его примеры, хотелось бы зайти в отладчик и посмотреть, что там происходит, но вовремя отладки все подвисает и висит, жму ф7, что б остановить отладку и после этого все нормализуется. В настройках проекта стоит мультитрединг дебуг длл. Помогите разобраться или здесь только логированием можно отлаживать
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.02.2012, 21:15     Отладка многопоточного приложения
Посмотрите здесь:

Отладка C++
C++ Отладка :)
C++ Отладка
Отладка C++
Отладка консольного приложения C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dekio
Фрилансер
Эксперт C++
 Аватар для Dekio
5816 / 1214 / 214
Регистрация: 23.11.2010
Сообщений: 3,378
Записей в блоге: 1
05.02.2012, 21:26     Отладка многопоточного приложения #2
IDE ?
Andruxa-1
0 / 0 / 0
Регистрация: 27.10.2011
Сообщений: 7
05.02.2012, 21:33  [ТС]     Отладка многопоточного приложения #3
Цитата Сообщение от Dekio Посмотреть сообщение
IDE ?
Да, совсем забыл, VS6

Добавлено через 2 минуты
Читаю про крит. секции соответственно код:
C++
1
2
3
4
5
6
7
8
9
10
11
InitializeCriticalSection(&m_CriticalSection);
m_hThread[0] = AfxBeginThread(CounterThread, m_chNumber, THREAD_PRIORITY_NORMAL);
 
.....
 
UINT CounterThread(LPVOID lpThreadParametr)
{
    //Что-то делаем
 
    return 0;
}
В CounterThread ставлю бряк, но туда я не попадаю...
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
05.02.2012, 22:46     Отладка многопоточного приложения #4
Вы бы сюда код выложили, чтобы камрады скопипастили к себе и попробовали воспроизвести у себя ваши проблемы. Желательно адаптированный код, чтобы можно было обойтись без посторонних инклудов и прочих классов, чтобы все в одном файле было.

Вообще проблема странная. Как бы там ни было, я бы посоветовал использовать что-нибудь по новее шестой студии.
-=ЮрА=-
Заблокирован
Автор FAQ
06.02.2012, 10:29     Отладка многопоточного приложения #5
Цитата Сообщение от DU Посмотреть сообщение
Как бы там ни было, я бы посоветовал использовать что-нибудь по новее шестой студии.
- thread нити отлично реализуются и в шестёрке, чтобы не было сомнений в моих словах, предлагаю оттестировать exe ниже, а на счёт технологи построения, по простому выглядит это всё так
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
typedef struct 
     { 
     HWND hwnd; 
     int  cxClient; 
     int  cyClient; 
     int  cyChar; 
     BOOL bKill; 
     } 
     PARAMS, *PPARAMS; 
 
void Thread1(PVOID pvoid) 
     { 
     int     iNum = 0, iLine = 0; 
     char    szBuffer[16]; 
     HDC     hdc; 
     PPARAMS pparams; 
 
     pparams =(PPARAMS) pvoid; 
 
     while(!pparams->bKill) 
          { 
          if(iNum < 0) 
               iNum = 0; 
 
          iLine = CheckBottom(pparams->hwnd,   pparams->cyClient, 
                               pparams->cyChar, iLine); 
 
          wsprintf(szBuffer, "%d", iNum++); 
 
          hdc = GetDC(pparams->hwnd); 
 
          TextOut(hdc, 0, iLine * pparams->cyChar, 
                   szBuffer, strlen(szBuffer)); 
                  ReleaseDC(pparams->hwnd, hdc); 
 
          iLine++; 
          } 
     _endthread(); 
     } 
 
LRESULT APIENTRY WndProc1(HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam) 
     { 
     static PARAMS params; 
 
     switch(iMsg) 
          { 
          case WM_CREATE :
                           params.hwnd = hwnd; 
               params.cyChar = HIWORD(GetDialogBaseUnits()); 
               _beginthread(Thread1, 0, &params); 
               return 0; 
 
          case WM_SIZE : 
               params.cyClient = HIWORD(lParam); 
               return 0; 
 
          case WM_DESTROY : 
               params.bKill = TRUE; 
               return 0; 
          } 
     return DefWindowProc(hwnd, iMsg, wParam, lParam); 
}
Миниатюры
Отладка многопоточного приложения  
Вложения
Тип файла: rar Project2.exe.rar (23.4 Кб, 15 просмотров)
Yandex
Объявления
06.02.2012, 10:29     Отладка многопоточного приложения
Ответ Создать тему
Опции темы

Текущее время: 08:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru