Невозможно сломать имя функции в gdb mingw

Моя программа состоит из нескольких файлов, и я компилирую с помощью g++ -g.
Когда я пытаюсь взломать WinMain, он говорит, что функция не определена, но когда я показываю листинг, он появляется прямо там.

(gdb) list Winmain.cpp:237
237     // WinMain
238     int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance
pCmdLine, int nCmdShow) {
239
240             //Debuging mode
(gdb)
241
242             // IO thread  ;;;; in charge of writing stuff to files
reak the mem thread
243             // /var/log/simulator.log
244             freopen ("debug.txt", "w", stdout);
245
246             // Strings
247             static TCHAR szWindowClass[] = TEXT("myWnd"); // std::s
indowClass = "myWnd";
248             static TCHAR szTitle[] = _T("Virtual Map");   // std::s
itle = "Virtual map";
249
250             // Windows Structure
(gdb) b Winmain.cpp:WinMain
Function "WinMain" not defined in "Winmain.cpp".
Make breakpoint pending on future shared library load? (y or [n]) n

Я могу сломать b Winmain.cpp:238, но почему не работает по имени?

mingw32 на windows7
GNU gdb (GDB) 7.6.1


person Lazik    schedule 01.07.2015    source источник


Ответы (1)


WinMain() — это __stdcall функция; (это знание передается с типичным запутыванием Microsoft с помощью квалификатора WINAPI). Таким образом, его общедоступное имя становится квалифицированным как WinMain@16(); вы должны установить точку останова gdb на это полное имя.

person Keith Marshall    schedule 01.07.2015