C 在SDL程序上使用Dr时内存崩溃

C 在SDL程序上使用Dr时内存崩溃,c,sdl,sdl-1.2,dr-memory,C,Sdl,Sdl 1.2,Dr Memory,我正在从事一个SDL1.2项目(Windows、C、Code::Blocks,也使用SDL_tff库)。我试图用Dr.memory检查内存泄漏,但我遇到的问题是它在启动时崩溃(下面提供了日志) exe本身会自行崩溃,一旦我将使用的tff文件添加到其目录中,它就会自行正常运行 这两个文件在哪里并不重要,只要它们都在同一个目录中,exe就可以正常运行 如何让Dr.Memory正确执行 Dr. Memory version 1.8.0 build 8 built on Sep 9 2014 16:2

我正在从事一个SDL1.2项目(Windows、C、Code::Blocks,也使用SDL_tff库)。我试图用Dr.memory检查内存泄漏,但我遇到的问题是它在启动时崩溃(下面提供了日志)

exe本身会自行崩溃,一旦我将使用的tff文件添加到其目录中,它就会自行正常运行

这两个文件在哪里并不重要,只要它们都在同一个目录中,exe就可以正常运行

如何让Dr.Memory正确执行

Dr. Memory version 1.8.0 build 8 built on Sep  9 2014 16:27:02
Dr. Memory results for pid 6168: "SDL_Project.exe"
Application cmdline: ""C:\CodeBlocks Projects\projectrepo\SDL_Project\bin\Debug\SDL_Project.exe""
Recorded 108 suppression(s) from default C:\Program Files (x86)\Dr. Memory\bin\suppress-default.txt

Error #1: UNADDRESSABLE ACCESS: reading 0x00000000-0x00000004 4 byte(s)
# 0 SDL_ttf.dll!?             +0x0      (0x6f4c2a9d <SDL_ttf.dll+0x2a9d>)
# 1 SDL_ttf.dll!?             +0x0      (0x6f4c2e1f <SDL_ttf.dll+0x2e1f>)
# 2 SDL_ttf.dll!?             +0x0      (0x6f4c3253 <SDL_ttf.dll+0x3253>)
# 3 createText                 [C:/CodeBlocks Projects/projectrepo/SDL_Project/menu.c:99]
# 4 startMenu                  [C:/CodeBlocks Projects/projectrepo/SDL_Project/menu.c:70]
# 5 SDL_main                   [C:/CodeBlocks Projects/projectrepo/SDL_Project/main.c:68]
# 6 console_main               [C:/CodeBlocks Projects/projectrepo/SDL_Project/menu.c:279]
# 7 WinMain@16                 [C:/CodeBlocks Projects/projectrepo/SDL_Project/menu.c:279]
# 8 main                       [../../../../src/gcc-4.7.1/libgcc/config/i386/cygwin.S:185]
Note: @0:00:08.932 in thread 2912
Note: instruction: mov    (%edi) -> %edx

===========================================================================
FINAL SUMMARY:

DUPLICATE ERROR COUNTS:

SUPPRESSIONS USED:

ERRORS FOUND:
      1 unique,     1 total unaddressable access(es)
      0 unique,     0 total uninitialized access(es)
      0 unique,     0 total invalid heap argument(s)
      0 unique,     0 total GDI usage error(s)
      0 unique,     0 total handle leak(s)
      0 unique,     0 total warning(s)
      0 unique,     0 total,      0 byte(s) of leak(s)
      0 unique,     0 total,      0 byte(s) of possible leak(s)
ERRORS IGNORED:
     82 potential error(s) (suspected false positives)
         (details: C:\Users\User\AppData\Roaming\Dr. Memory\DrMemory-SDL_Project.exe.6168.000\potential_errors.txt)
    183 potential leak(s) (suspected false positives)
         (details: C:\Users\User\AppData\Roaming\Dr. Memory\DrMemory-SDL_Project.exe.6168.000\potential_errors.txt)
     12 unique,    18 total,    323 byte(s) of still-reachable allocation(s)
         (re-run with "-show_reachable" for details)
Details: C:\Users\User\AppData\Roaming\Dr. Memory\DrMemory-SDL_Project.exe.6168.000\results.txt
Dr.Memory 1.8.0版本构建8于2014年9月9日16:27:02
pid 6168的Dr.内存结果:“SDL_Project.exe”
应用程序cmdline:“C:\CodeBlocks Projects\projectrepo\SDL\u Project\bin\Debug\SDL\u Project.exe”
从默认C:\Program Files(x86)\Dr.Memory\bin\suppress-default.txt记录了108次抑制
错误#1:不可寻址访问:读取0x00000000-0x00000004 4字节
#0 SDL_ttf.dll+0x0(0x6f4c2a9d)
#1 SDL_ttf.dll+0x0(0x6f4c2e1f)
#2 SDL_ttf.dll+0x0(0x6f4c3253)
#3 createText[C:/code块项目/projectrepo/SDL_项目/menu.C:99]
#4开始菜单[C:/CodeBlocks Projects/projectrepo/SDL_Project/menu.C:70]
#5 SDL_main[C:/code块项目/projectrepo/SDL_项目/main.C:68]
#6主控台[C:/CodeBlocks Projects/projectrepo/SDL_Project/menu.C:279]
# 7 WinMain@16[C:/CodeBlocks Projects/projectrepo/SDL_Project/menu.C:279]
#8 main[../../../../src/gcc-4.7.1/libgcc/config/i386/cygwin.S:185]
注:螺纹2912中的@0:00:08.932
注:说明:mov(%edi)->%edx
===========================================================================
最后总结:
重复错误计数:
使用的抑制:
发现错误:
1个唯一、1个总不可寻址访问
0个唯一,0个未初始化访问总数
0个唯一堆参数,总共0个无效堆参数
0个唯一,0个GDI使用总错误
0个唯一,0个总手柄泄漏
0个唯一警告,0个总警告
0个唯一、0个总计、0个字节的泄漏
0个唯一、0个总计、0个字节的可能泄漏
忽略错误:
82潜在错误(怀疑误报)
(详细信息:C:\Users\User\AppData\Roaming\Dr.Memory\DrMemory-SDL_Project.exe.6168.000\potential_errors.txt)
183潜在泄漏(怀疑误报)
(详细信息:C:\Users\User\AppData\Roaming\Dr.Memory\DrMemory-SDL_Project.exe.6168.000\potential_errors.txt)
12个唯一的、总共18个、323字节的仍然可到达的分配
(有关详细信息,请使用“-show_reachable”重新运行)
详细信息:C:\Users\User\AppData\Roaming\Dr.Memory\DrMemory-SDL_Project.exe.6168.000\results.txt

显然,该程序需要字体文件(而且,我可以补充一点,如果它因为这个原因崩溃的话,它的编写会很糟糕!)。你可能需要告诉Dr.Memory在可执行文件的文件夹中启动,而不是从Dr.M.的文件夹中调用程序。我想你是对的,我发现运行
path\u to\u Dr\u mem\u path to exe
失败,将exe拖放到
Dr.Memory(将你的应用拖到这里)
图标也失败了。但是在实际的
drmemory.exe
上拖放exe,是否有一个参数可以实现这一点?即从程序的正确文件夹中拖动到\u drmemory/drmemory.exe sdl\u exe的
/full\u path\u。没有等效的UI,请使用控制台。