C ++分段错误仅在Eclipse外部

| 我已经在Eclipse中开发了一个C ++应用程序。当在Eclipse之外运行时,在执行了相同数量(4)的用户操作后,它将导致分段错误。起初似乎没有什么特别的。我以为我会使用Eclipse调试应用程序并找到错误。但是,当我从Eclipse运行该应用程序时,它运行得很好。有人对如何解决此问题有建议吗? 谢谢。 该代码库太大,无法在此处显示,但我缩小了导致分段错误的代码行:
SDL_Surface* textSurface = TTF_RenderText_Solid( font, text.c_str(), color );
奇怪的是,在完全相同的调用失败之前,它会多次调用该行代码。字体和颜色的值是在其他地方定义并每次都传入的常量。因此,它们每次都是完全相同的。文本的值为\“-\”。     
已邀请:
        首先,请确保您在eclipse中运行与命令行发行版与调试版本相同的版本。 由于不同的编译器设置或只是调试,某些错误将更改。这些通常是由于未初始化的数据引起的。诸如valgrind之类的内存调试器工具可以帮助您发现此类问题,因为它们可以使未初始化数据的内容随机化。 另外,请确保所有警告在您的编译设置中都处于启用状态。然后,编译器将警告您有关潜在的不正确内容。 编辑: 是的-Wall和-pedantic适用于获取所有警告。 有时,由于很难找到内存错误,因此错误实际上并不是发生段错误的地方。发生段错误仅是因为之前的错误并未引起注意。最好使用valgrind之类的内存调试器。否则,您将必须仔细检查大量代码。     
        在Node的建议下(请参阅原始问题的评论,我通过Valgrind运行了我的应用程序。清除了Valgrind确定的内存管理问题后,我的问题就解决了。谢谢!     

要回复问题请先登录注册