如果发生错误,SDL_GetError会怎么说?

时间:2018-07-23 17:52:25

标签: c terminal sdl sdl-2

我的主要问题:请问您列出SDL_GetError将要打印的内容的几个示例吗?

我想使用SDL_GetError来帮助我调试,但是我不知道会发生什么或如何创建自己的故意错误。 libsdl Wiki说:

  

仅当SDL功能已发出信号通知   错误。您必须检查SDL函数调用的返回值以确定   何时适当调用SDL_GetError()。

但是http://sdl.beuc.net/sdl.wiki/SDL_GetError说:

  

尽管此示例使用SDL_Init,但SDL_GetError提供了一个错误   SDL操作失败的错误消息。

那是什么?只有部分或全部?我见过的SDL Wiki /文档中没有一个提供示例错误消息的列表,因此我不知道如何启动错误,或者在内容和格式方面期望什么。是

  

“ ./ foo”中的错误:两次释放或损坏(顶部):

SDL_GetError消息还是其他原因引起的?

1 个答案:

答案 0 :(得分:0)

The wiki entry for SDL_Error列出错误字符串:

  

SDL_errorcode |相应的错误字符串

     
     

SDL_ENOMEM |内存不足

     

SDL_EFREAD |从数据流读取错误

     

SDL_EFWRITE |写入数据流时出错

     

SDL_EFSEEK |在数据流中查找错误

     

SDL_UNSUPPORTED |未知的SDL错误

     

SDL_LASTERROR |未知的SDL错误

     

任何其他值|未知的SDL错误

另请参见SDL_error.c。维基条目之一似乎不正确。正确的错误代码-错误字符串对为:

  

SDL_UNSUPPORTED |该操作不受支持

您可以使用SDL_SetError设置自定义错误消息-请参见上方的.c。最后,“双重释放或损坏”不是由SDL引起的错误,而是最有可能由双重释放引起的错误。我建议gdb / valgrind对其进行调试。