检测到堆栈粉碎 glGetTexImage
Posted
技术标签:
【中文标题】检测到堆栈粉碎 glGetTexImage【英文标题】:Stack smashing detected glGetTexImage 【发布时间】:2016-08-21 03:51:54 【问题描述】:以下是运行时导致堆栈崩溃的代码:
GLubyte pixels[SCREEN_WIDTH*SCREEN_HEIGHT*3];
glBindTexture(GL_TEXTURE_2D,fbo->renderedTexture);
glGetTexImage(GL_TEXTURE_2D,0,GL_RGB,GL_UNSIGNED_BYTE,pixels);
我已确定函数本身不是问题,因为它适用于 sdl 表面。
【问题讨论】:
GL_PACK_ALIGNMENT
设置为什么?
我们没有足够的信息来为您推断问题。请发布一个最小的工作示例。
【参考方案1】:
可能的原因:
pixels
的大小超过了剩余的堆栈数量(可用的堆栈数量有限),这就是破坏你的堆栈的原因。不要将堆栈用于大的东西。
另一个可能的原因是,pixels
的大小太小,以至于纹理数据在应用了所有打包参数(对齐方式、行跨度)后都无法适应它。
【讨论】:
以上是关于检测到堆栈粉碎 glGetTexImage的主要内容,如果未能解决你的问题,请参考以下文章