powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / c++ стеки потоков
19 сообщений из 19, страница 1 из 1
c++ стеки потоков
    #38620969
Galadriel75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрые сутки!

Кто может подсказать, как, используя WinAPI получить адрес начала стека потока и его размер. Надо сделать дамп стека потока. Все процессы я перебрал и понаходил все их потоки. Теперь вот со стеком разбираюсь...

Заранее спасибо!
...
Рейтинг: 0 / 0
c++ стеки потоков
    #38620972
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
StackWalk64
...
Рейтинг: 0 / 0
c++ стеки потоков
    #38620975
Galadriel75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
супер! спасибо! буду копать по этому слову!
...
Рейтинг: 0 / 0
c++ стеки потоков
    #38621263
smald
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Galadriel7
Кто может подсказать, как, используя WinAPI получить адрес начала стека потока и его размер. Надо сделать дамп стека потока. Все процессы я перебрал и понаходил все их потоки. Теперь вот со стеком разбираюсь...


Зачё Вам WinApi? Шмаляйте так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
#include <stdio.h>

int main(int c , char** s){

 unsigned long addr;

 __asm__(

  "movq %%rbp, %0;" : "=r" (addr)
 );

printf("ADDR=0x%x\n", addr);
};
...
Рейтинг: 0 / 0
c++ стеки потоков
    #38621287
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
smaldЗачё Вам WinApi? Шмаляйте так:
а чужой поток?
...
Рейтинг: 0 / 0
c++ стеки потоков
    #38621373
smald
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропила чужой поток?
Тут уже смотря как был создан. Если сисколом clone, то там стек сам ему создаёшь,
и передаёшь как параметр его адрес. То же, например, с boost::context.
Если с #pragma omp parallel, то тут и WinApi ничего знать не будет.
Уточните, про каким образом организованные потоки говорится.
...
Рейтинг: 0 / 0
c++ стеки потоков
    #38621406
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
smaldУточните, про каким образом организованные потоки говорится.
это не ко мне
...
Рейтинг: 0 / 0
c++ стеки потоков
    #38622469
Galadriel75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за помощь в решении! Но все же - условие задачи - исключительно WinAPI. Передернуть все потоки у всех процессов и у каждого потока выциганить стек и сделать его дамп. Что-то такое нашел похожее, буду пробовать. Потом выложу решение, если оно рабочим окажется ...
...
Рейтинг: 0 / 0
c++ стеки потоков
    #38622510
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Была прикольная библиотечка на эту тему, итальянская по происхождению, бесплатная.
stacktrace кажется называлась.
...
Рейтинг: 0 / 0
c++ стеки потоков
    #38622653
Galadriel75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivБыла прикольная библиотечка на эту тему, итальянская по происхождению, бесплатная.
stacktrace кажется называлась.


гы ! супер! щас попробую ее найти! спасибо!
...
Рейтинг: 0 / 0
c++ стеки потоков
    #38622665
Galadriel75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Galadriel75MasterZivБыла прикольная библиотечка на эту тему, итальянская по происхождению, бесплатная.
stacktrace кажется называлась.


гы ! супер! щас попробую ее найти! спасибо!

хотя с другой стороны... ... ... главное-то условие WinAPI ... и никак иначе....
...
Рейтинг: 0 / 0
c++ стеки потоков
    #38623178
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Galadriel75,

Она для WinAPI.
...
Рейтинг: 0 / 0
c++ стеки потоков
    #38623183
Galadriel75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivGaladriel75,

Она для WinAPI.
я что-то такое нашел на сайте мелкомягких - наверно она - тока если ее итальянец соорудил, как она перетекла к мелкомягким?.. Вот линка туда
...
Рейтинг: 0 / 0
c++ стеки потоков
    #38623205
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Galadriel75,

Она к мелкомягким ни при как. Это сторонняя библиотека с открытым кодом, написанная в каком-то итальянском университете (на сколько я понял). Автор -- итальянец. Она достаточно старая, времён WinNT, но это правда ничего не меняет.

Я её тоже так сходу не нашёл, зато нашёл кучу экзамплов на codeproject
...
Рейтинг: 0 / 0
c++ стеки потоков
    #38626624
Galadriel75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фрагмент исходника:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
while ( 				
				  StackWalk64( MachineType,
				                    process_handle,
				                    thread_handle,
				                    &sf,
				                    &cur_thread_context,
				                    NULL,
				                    SymFunctionTableAccess64,
				                    SymGetModuleBase64,
				                    NULL ) 
			)
			{






            } // while



ну вот все же кое что нарисовал...
это вложенная фича в цикле перебора всех процессов с потоками
допустим, имеется хэндл данного потока данного процесса.
Как в этой ситуации получить дамп стека, вывести его в консоль или еще куда...?
Заранее спасибо!
...
Рейтинг: 0 / 0
c++ стеки потоков
    #38626643
Galadriel75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скорее всего примерно догадываюь: зная адрес фрейма, можно из него дергать байты и тупо их выводит в Hex формате.... как-то так
...
Рейтинг: 0 / 0
c++ стеки потоков
    #38626663
Galadriel75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Galadriel75скорее всего примерно догадываюь: зная адрес фрейма, можно из него дергать байты и тупо их выводит в Hex формате.... как-то так

фрейм - структура.......
...
Рейтинг: 0 / 0
c++ стеки потоков
    #38626930
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Galadriel75Фрагмент исходника:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
while ( 				
				  StackWalk64( MachineType,
				                    process_handle,
				                    thread_handle,
				                    &sf,
				                    &cur_thread_context,
				                    NULL,
				                    SymFunctionTableAccess64,
				                    SymGetModuleBase64,
				                    NULL ) 
			)
			{






            } // while



ну вот все же кое что нарисовал...
это вложенная фича в цикле перебора всех процессов с потоками
допустим, имеется хэндл данного потока данного процесса.
Как в этой ситуации получить дамп стека, вывести его в консоль или еще куда...?
Заранее спасибо!

На кой тебе стэки других процессов?
...
Рейтинг: 0 / 0
c++ стеки потоков
    #38654268
Galadriel75
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv, та не мне это надо, это я халтурку делал... Это студентам такое сейчас задают...
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / c++ стеки потоков
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]