【发布时间】:2018-07-23 17:52:25
【问题描述】:
我的主要问题:请您列举几个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 消息还是由其他原因引起的?
【问题讨论】:
-
我几乎可以肯定
double free or corruption不是 SDL 错误。 “我见过的所有 SDL wiki/文档都没有给出示例错误消息的列表”您可以在 SDL 源代码中简单地将grep替换为SDL_SetError并查看 SDL 使用的所有错误消息。跨度> -
@HolyBlackCat 我用的是大学电脑,不知道怎么找SDL源
-
您可以从 SDL 网站下载。
-
它旨在成为任何人类可读的消息,可以更好地解释请求操作失败的原因。人类可读的消息没有“格式”。您可以像 HolyBlackCat 所说的那样 grep source ,但我真的不明白为什么这可能很重要。 “双重释放或损坏”看起来像 libc 内存分配器故障,最有可能是内存踩踏(或实际上是双重释放同一地址)。