我在使用SDL 1.2.15调试C ++项目时遇到麻烦,而我的程序运行正常,没有任何问题。实际上启动调试,错误"在[十六进制地址]处没有源()的源代码可用,并且我在Eclipse中唯一能做的就是点击"查看反汇编",这显示我所有的汇编程序执行的istructions,实际上错误中指定的地址不是main()的地址,而是前一个地址。
include "SDL/SDL.h"
int main(int argc, char* args[]) {
SDL_Surface* screen;
SDL_Surface* sur;
screen=SDL_SetVideoMode(1280,720,32,SDL_SWSURFACE);
//Start SDL
SDL_Init( SDL_INIT_EVERYTHING);
sur=SDL_LoadBMP("immagine.bmp");
SDL_BlitSurface(sur,NULL,screen,NULL);
SDL_Flip(screen);
SDL_Delay(4000);
//Quit SDL
SDL_Quit();
return 0;
}
该程序非常简单,所以我不认为该问题与代码内容有关,它似乎与gdb无关,因为它与C ++项目一起工作正常,但问题只出现在SDL中。
我尝试将默认编译器标签从-g3更改为-g,但没有任何更改。
我使用MinGW gcc和gdb在Windows 10(64位)上使用Eclipse Mars.2。
也许问题与MinGW中调试libreries的不正确链接有关?
答案 0 :(得分:1)
问题出在Debugger的入口点上,实际上SDL定义了自己的主要(SDL_main),所以我解决了从" Debug Configuration"菜单,调试器标签,字段&#34改变的问题;在"启动时停止来自默认值" main"在" SDL_main"。