Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Visual C++] Wykrywanie wycieków pamięci

Ostatnio zmodyfikowano 2012-01-25 20:57
Autor Wiadomość
Aclber
Temat założony przez niniejszego użytkownika
[Visual C++] Wykrywanie wycieków pamięci
» 2012-01-25 13:18:05
Witam.
Otóż sprawdziłem program( grę ) którą napisałem i niestety mam wyciek pamięci, jednak nie mogę go zlokalizować.
O to komunikat który pokazuje iż wyciek wystąpił:
Detected memory leaks!
Dumping objects ->
{250} normal block at 0x025563A0, 24 bytes long.
 Data: <PfQ             > 50 66 51 00 FF FF FF FF 00 00 00 00 00 00 00 00
Object dump complete.
Da się go jakoś zlokalzować ?
P-49405
madmike44
» 2012-01-25 13:42:20
Jeśli pokażesz kod źródłowy, to na pewno się da..
P-49406
DejaVu
» 2012-01-25 14:08:40
Napisz na początku programu:
C/C++
_CrtSetBreakAlloc( numerek_z_nawiasow_klamrowych );

[MSDN] _CrtSetBreakAlloc
P-49407
Aclber
Temat założony przez niniejszego użytkownika
» 2012-01-25 16:54:07
if (_crtBreakAlloc != -1L && lRequest == _crtBreakAlloc)
    _CrtDbgBreak();

W takim momencie mi zatrzymuje, wiecie może co to oznacza ?
P-49425
jsc
» 2012-01-25 17:00:48
Wykrycie wycieku?
P-49427
DejaVu
» 2012-01-25 17:00:52
Use callstack my friend :)
P-49428
Aclber
Temat założony przez niniejszego użytkownika
» 2012-01-25 17:06:18
Takie coś mam w call stacku.

> msvcr100d.dll!_heap_alloc_dbg_impl(unsigned int nSize, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp)  Line 393 C++
  msvcr100d.dll!_nh_malloc_dbg_impl(unsigned int nSize, int nhFlag, int nBlockUse, const char * szFileName, int nLine, int * errno_tmp)  Line 239 + 0x19 bytes C++
  msvcr100d.dll!_nh_malloc_dbg(unsigned int nSize, int nhFlag, int nBlockUse, const char * szFileName, int nLine)  Line 302 + 0x1d bytes C++
  msvcr100d.dll!malloc(unsigned int nSize)  Line 56 + 0x15 bytes C++
  allegro-5.0.5-monolith-md-debug.dll!al_malloc_with_context(unsigned int n, int line, const char * file, const char * func)  Line 44 + 0xa bytes C
  allegro-5.0.5-monolith-md-debug.dll!d3d_generate_display_format_list()  Line 578 + 0x19 bytes C++
  allegro-5.0.5-monolith-md-debug.dll!d3d_create_display_internals(ALLEGRO_DISPLAY_D3D * d3d_display)  Line 1808 C++
  allegro-5.0.5-monolith-md-debug.dll!d3d_create_display_locked(int w, int h)  Line 1921 + 0x9 bytes C++
  allegro-5.0.5-monolith-md-debug.dll!d3d_create_display(int w, int h)  Line 1977 + 0xd bytes C++
  allegro-5.0.5-monolith-md-debug.dll!al_create_display(int w, int h)  Line 47 + 0x10 bytes C
  BomberMan.exe!main()  Line 37 + 0x12 bytes C++
  BomberMan.exe!__tmainCRTStartup()  Line 555 + 0x19 bytes C
  BomberMan.exe!mainCRTStartup()  Line 371 C
  kernel32.dll!75b1339a()
  [Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]
  ntdll.dll!77ca9ed2()
  ntdll.dll!77ca9ea5()

Wiecie może o co chodzi ?
P-49429
DejaVu
» 2012-01-25 17:08:34
Uruchom w trybie debug => Skrót: ALT+7 lub Debug/Windows/Call stack
P-49431
« 1 » 2
  Strona 1 z 2 Następna strona