Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    372

    c++ errore in allocator.h

    uso codeblock 8.02
    compilando con gcc 3.4.5 sotto Vista
    Gui mdi application

    se compongo una stringa con append, nei seguenti casi:

    a) appendo un stringa esterna (extern char *txt) questa è stata trasformata con .c_str() (era una string formata con append)

    b) formo la stringa prendendo i valori inseriti in un contenitore list<string>xxx

    pensado fosse un problema di allocazione dinamica ho provato a definire un array globale statico, ma è lo stesso
    c) formo la stringa prendendo in valori inseriti in un char **subTitle=new char[4];

    codice:
    string tmpStr, tywin;
    
    tywin="win test";
    
    tmpStr.append(tywin);
    tmpStr.append(" prova");
    
    //questo si riferisce al tentativo c).
    if(*getSubTitle==1) {
      for(int i=0; i<*nrsubT; i++) {
          tmpStr.append(subTitle[i]);
      }
    }
    
    SetWindowText(hwnd,tmpStr.c_str());
    non sempre si presenta questo errore, a volte blocca solamente l'applicazione;

    da debug ho questo:
    Management.exe caused an Access Violation at location 77d81ad5 in module ntdll.dll Reading from location 003f0024.

    Registers:
    eax=00b86e98 ebx=00b80000 ecx=003f0020 edx=00290020 esi=00b86e90 edi=00b86e60
    eip=77d81ad5 esp=0022eda0 ebp=0022edc8 iopl=0 nv up ei pl zr na po nc
    cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010246

    Call stack:
    77D81AD5 ntdll.dll:77D81AD5 RtlTryEnterCriticalSection
    77D81D37 ntdll.dll:77D81D37 RtlTryEnterCriticalSection
    77D81C21 ntdll.dll:77D81C21 RtlTryEnterCriticalSection
    773A7A7E kernel32.dll:773A7A7E HeapFree
    7744A097 msvcrt.dll:7744A097 free
    0042A655 Management.exe:0042A655
    004344CC Management.exe:004344CC _ZNSaIiED1Ev allocator.h:103
    0043642F Management.exe:0043642F _ZNSaIiED1Ev allocator.h:103
    00434C18 Management.exe:00434C18 _ZNSaIiED1Ev allocator.h:103
    00434B89 Management.exe:00434B89 _ZNSaIiED1Ev allocator.h:103
    0041BBE6 Management.exe:0041BBE6 _Z14SetTitleWindowP6HWND struct.h:238
    0041C9D3 Management.exe:0041C9D3 _Z15MDIChildWndProcP6HWND__jjl main.cpp:296
    77801A10 USER32.dll:77801A10 GetMessageW
    77803123 USER32.dll:77803123 GetWindow
    77801C03 USER32.dll:77801C03 GetMessageW
    777F8562 USER32.dll:777F8562 GetThreadDesktop
    77D80E6E ntdll.dll:77D80E6E KiUserCallbackDispatcher
    777F848B USER32.dll:777F848B GetThreadDesktop
    777ED7F9 USER32.dll:777ED7F9 CreateWindowExA
    778117A9 USER32.dll:778117A9 VkKeyScanExA
    7781CDC6 USER32.dll:7781CDC6 GetPropA
    77801A10 USER32.dll:77801A10 GetMessageW
    77801AE8 USER32.dll:77801AE8 GetMessageW
    7780286A USER32.dll:7780286A GetDesktopWindow
    777ED93C USER32.dll:777ED93C SendMessageA
    0041BD24 Management.exe:0041BD24 _Z17CreateNewMDIChildP6HWND main.cpp:104
    0040314E Management.exe:0040314E _Z10Dlg_elencoP6HWND__jjl dlg_elenco.cpp:205
    0041C335 Management.exe:0041C335 _Z7WndProcP6HWND__jjl main.cpp:200
    77801A10 USER32.dll:77801A10 GetMessageW
    77801AE8 USER32.dll:77801AE8 GetMessageW
    7780286A USER32.dll:7780286A GetDesktopWindow
    77802BBA USER32.dll:77802BBA SendMessageW
    734A2A02 COMCTL32.DLL:734A2A02 CreateToolbar
    734620E6 COMCTL32.DLL:734620E6 Ordinal301
    77801A10 USER32.dll:77801A10 GetMessageW
    77801AE8 USER32.dll:77801AE8 GetMessageW
    77802A47 USER32.dll:77802A47 IsWindow
    777F3C8A USER32.dll:777F3C8A DispatchMessageA
    0041E115 Management.exe:0041E115 WinMain main.cpp:520
    0042FADA Management.exe:0042FADA
    00401237 Management.exe:00401237
    004012A8 Management.exe:004012A8
    773A3833 kernel32.dll:773A3833 BaseThreadInitThunk
    77D5A9BD ntdll.dll:77D5A9BD LdrInitializeThunk



    se invece appendo di seguito nello stesso file valori statici (cosa che non posso fare perchè i valori sono presenti
    in win diverse ed in tempi divesi ed ogni volta sono diversi) non ho questo problema.


    come posso risolvere ????

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381

    Re: c++ errore in allocator.h

    c) formo la stringa prendendo in valori inseriti in un char **subTitle=new char[4];
    Così però allochi un char*, non un char**

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    372

    Re: Re: c++ errore in allocator.h

    Originariamente inviato da shodan
    Così però allochi un char*, non un char**
    scusa ho scritto di corsa, nel codice è: char **subTitle=new *char[4];

    ho evitato di usare char per i vari problemi, a favore di std string più efficienti, ma è veramente così o devo ricredermi perchè stanno accadendo cose strane:

    ho compilato lo stesso progetto in win98 mingw 3.4.2, ho poi eseguito il programma in Vista ... non si verfica il problema segnalato dal debug in allocator.h

    ... perchè questo comportamento anomalo???
    sono abbastanza frustato, cosa c'è di certo a questo punto per avere una stringa variabile in lunghezza e valore?????

    è forse un problema di Buffer Overflow, ma il debug non mi segnala un SIGENV???

  4. #4
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381

    Re: Re: Re: c++ errore in allocator.h

    Originariamente inviato da stefanoB
    sono abbastanza frustato, cosa c'è di certo a questo punto per avere una stringa variabile in lunghezza e valore?????
    Usa uno stringstream per comporre la stringa che serve.
    Per il resto, non disponendo ne di vista ne del compilatore che indichi, non so dirti altro. Comunque è strano che una libreria del compilatore abbia un bug simile.

  5. #5
    Non è che magari la tmpStr muore prima della hwnd e la SetWindowText non duplica la stringa in argomento?

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    372
    Originariamente inviato da MacApp
    Non è che magari la tmpStr muore prima della hwnd e la SetWindowText non duplica la stringa in argomento?
    ho controllato non è questo il problema ho fatto dei test

    aiutatemi a capirci qualcosa, ....

    ... premetto che faccio eseguire le stesse operazioni su piattaforme diverse (es: apro la stessa win di ricerca e ricerco sempre gli stessi dati in db e le mostro a video nella stessa datagrid):

    1) per eliminare il problema (di cui sopra) devo limitarmi ad utilizzare string ed usare sprintf e lstrcat in questo modo in Vista gira

    2) lo stesso eseguibile (con uso limitato di string) e lo metto su macchina Xp Sp3 Intel Celeron non va ogni tanto l'applicazione si blocca e poi si chiude da debug (DrMingw): un indirizzo non leggibile, ma se lo esegui non da alcun riferimento

    3) mentre l'eseguibile che ha un uso pesante di string sulla macchina Xp Sp3 ripeto le stesse operazioni all'infinito senza alcun problema


    ... un bel casino

    a naso percepisco che c'è da qualche parte un accesso ad una variabile/puntatore non più valido o qualcosa di simile,
    debugando le parti sospette non trovo nulla, magari non è li, o non riesco a vederlo o a comportamenti diversi a seconda
    del SO, ... insomma un bel casino

    cosa possa e come utilizzare un debug che scovi ogni possibile bug sull'intera applicazione???

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    372
    per garantire la portabilità tra Vista e Xp ho eliminato al massimo l'uso di string (però è assurdo)
    poi di assurdo c'è anche questo:

    a) se eseguo l'applicazione (avendo però il debug in monitor) posso aprire quante finestre voglio (sono arrivato a contarle 150 dello stesso menu) e non ottengo nessun avviso

    b) se eseguo direttamente il debug su Vista ottengo un SIGENV (provo a cercalo ma senza risultato per capirsi non ho un palese Management.exe caused an Access Violation ...) provando disassemblare ...

    Project title : Management
    Project path : E:\CodeBlocks\Management\

    Frame function: ntdll!RtlAddCompoundAce
    Frame address : 0022EC6C
    --------------------------------------------------------------------------------
    7739F224 push $0x14
    7739F226 push $0x773cf328
    7739F22B call 0x773c47d8 <tan+184>
    7739F230 pushl 0x8(%ebp)
    7739F233 call 0x773a2172 <ntdll!RtlCreateEnvironment+997>
    7739F238 test %al,%al
    7739F23A je 0x773fc467 <ntdll!RtlDeleteCriticalSection+44632>
    7739F240 xor %esi,%esi
    7739F242 mov %esi,-0x4(%ebp)
    7739F245 lea 0xc(%ebp),%eax
    7739F248 push %eax
    7739F249 mov 0xc(%ebp),%ebx
    7739F24C push %ebx
    7739F24D call 0x773b95d9 <ntdll!RtlGetLengthWithoutTrailingPathSeperators >
    7739F252 test %al,%al
    7739F254 jne 0x773fc471 <ntdll!RtlDeleteCriticalSection+44642>
    7739F25A cmp %si,(%ebx)
    7739F25D je 0x773fc49f <ntdll!RtlDeleteCriticalSection+44688>
    7739F263 lea -0x20(%ebp),%eax
    7739F266 push %eax
    7739F267 lea 0xc(%ebp),%eax
    7739F26A push %eax
    7739F26B push %ebx
    7739F26C pushl 0x8(%ebp)
    7739F26F call 0x773a21b8 <ntdll!RtlCreateEnvironment+1067>
    7739F274 cmp %esi,%eax
    7739F276 je 0x7739f2e5 <ntdll!RtlAddCompoundAce+193>
    7739F278 testb $0x1,0xa(%eax)
    7739F27C jne 0x7739f292 <ntdll!RtlAddCompoundAce+110>
    7739F27E cmpw $0xffffffff,0x8(%eax)
    7739F283 je 0x773fc4ab <ntdll!RtlDeleteCriticalSection+44700>
    7739F289 movzwl 0x8(%eax),%ecx
    7739F28D inc %ecx
    7739F28E mov %cx,0x8(%eax)
    7739F292 mov 0x10(%ebp),%ecx
    7739F295 cmp %esi,%ecx
    7739F297 je 0x7739f2a0 <ntdll!RtlAddCompoundAce+124>
    7739F299 mov 0x6(%eax),%ax
    7739F29D mov %ax,(%ecx)
    7739F2A0 mov %esi,-0x1c(%ebp)
    7739F2A3 movl $0xfffffffe,-0x4(%ebp)
    7739F2AA pushl 0x8(%ebp)
    7739F2AD call 0x773a219e <ntdll!RtlCreateEnvironment+1041>
    7739F2B2 mov -0x1c(%ebp),%eax
    7739F2B5 call 0x773c481d <tan+253>
    7739F2BA ret $0xc
    7739F2BD nop
    7739F2BE nop
    7739F2BF nop
    7739F2C0 nop
    7739F2C1 nop
    7739F2C2 mov %edi,%edi
    7739F2C4 push %ebp
    7739F2C5 mov %esp,%ebp
    7739F2C7 pushl 0x8(%ebp)
    7739F2CA mov %fs:0x18,%eax
    7739F2D0 pushl 0x7744cdb4
    7739F2D6 mov 0x30(%eax),%eax
    7739F2D9 pushl 0x18(%eax)
    7739F2DC call 0x773e162d <ntdll!RtlAnsiStringToUnicodeString>
    7739F2E1 pop %ebp
    7739F2E2 ret $0x8
    7739F2E5 cmp %esi,0xc(%ebp)
    7739F2E8 je 0x7739f377 <ntdll!RtlAddCompoundAce+339>
    7739F2EE movl $0xc0000017,-0x1c(%ebp)
    7739F2F5 push $0x416d7441
    7739F2FA mov -0x20(%ebp),%edi
    7739F2FD lea 0xe(%edi),%eax
    7739F300 push %eax
    7739F301 call 0x7739f2c2 <ntdll!RtlAddCompoundAce+158>
    7739F306 mov %eax,%esi
    7739F308 test %esi,%esi
    7739F30A je 0x7739f2a3 <ntdll!RtlAddCompoundAce+127>
    7739F30C andl $0x0,(%esi)
    7739F30F movw $0x1,0x8(%esi)
    7739F315 movb $0x0,0xa(%esi)
    7739F319 push %edi
    7739F31A push %ebx
    7739F31B lea 0xc(%esi),%eax
    7739F31E push %eax
    7739F31F call 0x773c3a60 <ntdll!memcpy>
    7739F324 add $0xc,%esp
    7739F327 mov %edi,%eax
    7739F329 shr %eax
    7739F32B mov %al,0xb(%esi)
    7739F32E movzbl %al,%eax
    7739F331 andw $0x0,0xc(%esi,%eax,2)
    7739F337 push %esi
    7739F338 pushl 0x8(%ebp)
    7739F33B call 0x7739f388 <ntdll!RtlAddCompoundAce+356>
    7739F340 test %al,%al
    7739F342 je 0x7739f36c <ntdll!RtlAddCompoundAce+328>
    7739F344 mov 0x4(%esi),%ax
    7739F348 or $0xc000,%ax
    7739F34C mov %ax,0x6(%esi)
    7739F350 mov 0xc(%ebp),%eax
    7739F353 mov %esi,(%eax)
    7739F355 mov 0x10(%ebp),%eax
    7739F358 test %eax,%eax
    7739F35A je 0x7739f363 <ntdll!RtlAddCompoundAce+319>
    7739F35C mov 0x6(%esi),%cx
    7739F360 mov %cx,(%eax)
    7739F363 andl $0x0,-0x1c(%ebp)
    7739F367 jmp 0x7739f2a3 <ntdll!RtlAddCompoundAce+127>
    7739F36C push %esi
    7739F36D call 0x773e5251 <ntdll!RtlDeleteNoSplay>
    7739F372 jmp 0x7739f2a3 <ntdll!RtlAddCompoundAce+127>
    7739F377 movl $0xc000000d,-0x1c(%ebp)
    7739F37E jmp 0x7739f2a3 <ntdll!RtlAddCompoundAce+127>
    7739F383 nop
    7739F384 nop
    7739F385 nop
    7739F386 nop
    7739F387 nop
    7739F388 mov %edi,%edi
    7739F38A push %ebp
    7739F38B mov %esp,%ebp
    7739F38D push %esi
    7739F38E mov 0x8(%ebp),%esi
    7739F391 lea 0x8(%ebp),%eax
    7739F394 push %eax
    7739F395 add $0x1c,%esi
    7739F398 push %esi
    7739F399 call 0x773b9fd6 <ntdll!RtlAnsiStringToUnicodeSize>
    7739F39E test %eax,%eax
    7739F3A0 je 0x773fc3d9 <ntdll!RtlDeleteCriticalSection+44490>
    7739F3A6 mov 0x8(%ebp),%edx
    7739F3A9 mov $0xffff,%ecx
    7739F3AE cmp %ecx,%edx
    7739F3B0 push %edi
    7739F3B1 ja 0x7739f3e7 <ntdll!RtlAddCompoundAce+451>
    7739F3B3 lea 0xc000(%edx),%edi
    7739F3B9 cmp %edx,%edi
    7739F3BB jb 0x7739f3e7 <ntdll!RtlAddCompoundAce+451>
    7739F3BD cmp %ecx,%edi
    7739F3BF ja 0x7739f3e7 <ntdll!RtlAddCompoundAce+451>
    7739F3C1 mov 0xc(%ebp),%ecx
    7739F3C4 mov %dx,0x4(%ecx)
    7739F3C8 add $0xffffc000,%edx
    7739F3CE mov %dx,0x6(%ecx)
    7739F3D2 andw $0x0,0x2(%eax)
    7739F3D7 mov %ecx,0x4(%eax)
    7739F3DA movw $0x1,(%eax)
    7739F3DF mov $0x1,%al
    7739F3E1 pop %edi
    7739F3E2 pop %esi
    7739F3E3 pop %ebp
    7739F3E4 ret $0x8
    7739F3E7 push %eax
    7739F3E8 push %esi
    7739F3E9 call 0x773ba115 <ntdll!RtlFreeSid>
    7739F3EE jmp 0x773fc3e0 <ntdll!RtlDeleteCriticalSection+44497>
    7739F3F3 sub %esi,%ebx
    7739F3F5 push %ebx
    7739F3F6 push $0x0
    7739F3F8 add %esi,%edi
    7739F3FA push %edi
    7739F3FB call 0x773c4100 <ntdll!memset>
    7739F400 add $0xc,%esp
    7739F403 jmp 0x773a214e <ntdll!RtlCreateEnvironment+961>
    7739F408 movb $0x0,-0x19(%ebp)
    7739F40C movl $0x4,-0x80(%ebp)
    7739F413 test $0x61000000,%edx
    7739F419 je 0x773e1c70 <ntdll!RtlUnhandledExceptionFilter+906>
    7739F41F jmp 0x773fd9e4 <ntdll!RtlDeleteCriticalSection+50133>
    7739F424 call 0x773e2b01 <ntdll!RtlGetParentLocaleName>
    7739F429 test $0x800,%ax
    7739F42D je 0x773e1d1f <ntdll!RtlUnhandledExceptionFilter+1081>
    7739F433 jmp 0x773fda38 <ntdll!RtlDeleteCriticalSection+50217>
    7739F438 movzwl %ax,%edi
    7739F43B mov %edi,-0x20(%ebp)
    7739F43E mov 0x2(%esi),%al
    7739F441 and $0xf0,%al
    7739F443 mov %al,0x2(%esi)
    7739F446 movb $0x0,0x7(%esi)
    7739F44A testb $0x40,0x40(%ebx)
    7739F44E jne 0x773fda94 <ntdll!RtlDeleteCriticalSection+50309>
    7739F454 mov 0xb8(%ebx),%eax
    7739F45A test %eax,%eax
    7739F45C je 0x7739eb68 <ntdll!TpWaitForWait+393>
    7739F462 mov %eax,-0xb0(%ebp)
    7739F468 mov 0x4(%eax),%ecx
    7739F46B cmp %ecx,%edi
    7739F46D jae 0x77397805 <ntdll!RtlIsCriticalSectionLockedByThread+450>
    7739F473 mov %edi,-0x58(%ebp)
    7739F476 mov %eax,%ecx
    7739F478 mov %ecx,-0x2c(%ebp)
    7739F47B mov -0x58(%ebp),%eax
    7739F47E sub 0x14(%ecx),%eax
    7739F481 mov %eax,-0x34(%ebp)
    7739F484 mov 0x18(%ecx),%edx
    7739F487 mov %edx,-0x24(%ebp)
    7739F48A mov 0x4(%edx),%eax
    7739F48D mov %eax,-0x70(%ebp)
    7739F490 cmp %eax,%edx
    7739F492 je 0x773979d2 <ntdll!RtlIpv4StringToAddressW+184>
    7739F498 mov 0x4c(%ebx),%edx
    7739F49B test %edx,%edx
    7739F49D je 0x7739eb4e <ntdll!TpWaitForWait+367>
    7739F4A3 mov -0x8(%eax),%eax
    7739F4A6 mov %eax,-0xc0(%ebp)
    7739F4AC mov 0x4c(%ebx),%edx
    7739F4AF test %eax,%edx
    7739F4B1 je 0x7739f4bc <ntdll!RtlAddCompoundAce+664>
    7739F4B3 xor 0x50(%ebx),%eax
    7739F4B6 mov %eax,-0xc0(%ebp)
    7739F4BC movzwl %ax,%eax
    7739F4BF mov 0x8(%ebp),%esi
    7739F4C2 movzwl %ax,%eax
    7739F4C5 sub %eax,%edi
    7739F4C7 mov -0x24(%ebp),%eax
    7739F4CA test %edi,%edi
    7739F4CC jg 0x7739f59c <ntdll!RtlAddCompoundAce+888>
    7739F4D2 mov (%eax),%eax
    7739F4D4 sub $0x8,%eax
    7739F4D7 test %edx,%edx
    7739F4D9 je 0x7739eb57 <ntdll!TpWaitForWait+376>
    7739F4DF mov (%eax),%eax
    7739F4E1 mov %eax,-0xc8(%ebp)
    7739F4E7 mov 0x4c(%ebx),%edx
    7739F4EA test %eax,%edx
    7739F4EC je 0x7739f4f7 <ntdll!RtlAddCompoundAce+723>
    7739F4EE xor 0x50(%ebx),%eax
    7739F4F1 mov %eax,-0xc8(%ebp)
    7739F4F7 movzwl %ax,%eax
    7739F4FA mov 0x8(%ebp),%esi
    7739F4FD movzwl %ax,%eax
    7739F500 mov -0x20(%ebp),%edi
    7739F503 sub %eax,%edi
    7739F505 test %edi,%edi
    7739F507 jle 0x77397830 <ntdll!RtlIsCriticalSectionLockedByThread+493>
    7739F50D cmpl $0x0,(%ecx)
    7739F510 jne 0x7739f51f <ntdll!RtlAddCompoundAce+763>
    7739F512 mov 0x4(%ecx),%eax
    7739F515 dec %eax
    7739F516 cmp %eax,-0x58(%ebp)
    7739F519 je 0x77392d15 <strtol+122>
    7739F51F mov -0x34(%ebp),%ecx
    7739F522 mov %ecx,%edi
    7739F524 shr $0x5,%edi
    7739F527 mov -0x2c(%ebp),%eax
    7739F52A mov 0x4(%eax),%edx
    7739F52D sub 0x14(%eax),%edx
    7739F530 shr $0x5,%edx
    7739F533 dec %edx
    7739F534 mov 0x1c(%eax),%eax
    7739F537 lea (%eax,%edi,4),%eax
    7739F53A mov %eax,-0x54(%ebp)
    7739F53D and $0x1f,%ecx
    7739F540 xor %eax,%eax
    7739F542 inc %eax
    7739F543 shl %cl,%eax
    7739F545 dec %eax
    7739F546 not %eax
    7739F548 mov -0x54(%ebp),%ecx
    7739F54B and (%ecx),%eax
    7739F54D mov %edi,-0x64(%ebp)
    7739F550 test %eax,%eax
    7739F552 je 0x7739da8e <ntdll!RtlCreateHeap+504>
    7739F558 movzwl %ax,%ecx
    7739F55B test %ecx,%ecx
    7739F55D mov %eax,%ecx
    7739F55F je 0x7739f6bd <ntdll!RtlAddCompoundAce+1177>
    7739F565 and $0xff,%ecx
    7739F56B jne 0x7739dc17 <ntdll!RtlCreateRegistryKey+365>
    7739F571 movzbl %ah,%eax
    7739F574 movzbl 0x773e1920(%eax),%eax
    7739F57B add $0x8,%eax
    7739F57E shl $0x5,%edi
    7739F581 add %eax,%edi
    7739F583 mov %edi,-0x64(%ebp)
    7739F586 mov -0x2c(%ebp),%eax
    7739F589 cmpl $0x0,0x8(%eax)
    7739F58D lea (%edi,%edi,1),%ecx
    7739F590 je 0x773fdab7 <ntdll!RtlDeleteCriticalSection+50344>
    7739F596 mov 0x20(%eax),%eax
    7739F599 mov (%eax,%ecx,4),%eax
    7739F59C mov %eax,-0x40(%ebp)
    7739F59F mov -0x40(%ebp),%eax
    7739F5A2 mov -0x20(%ebp),%edi
    7739F5A5 test %eax,%eax
    7739F5A7 je 0x7739eb01 <ntdll!TpWaitForWait+290>
    7739F5AD mov %eax,-0xa0(%ebp)
    7739F5B3 lea 0xc4(%ebx),%ecx
    7739F5B9 cmp %eax,%ecx
    7739F5BB je 0x7739f5e9 <ntdll!RtlAddCompoundAce+965>
    7739F5BD cmpl $0x0,0x4c(%ebx)
    7739F5C1 je 0x7739eb73 <ntdll!TpWaitForWait+404>
    7739F5C7 mov -0x8(%eax),%ecx
    7739F5CA mov %ecx,-0x5c(%ebp)
    7739F5CD test %ecx,0x4c(%ebx)
    7739F5D0 je 0x7739f5d8 <ntdll!RtlAddCompoundAce+948>
    7739F5D2 xor 0x50(%ebx),%ecx
    7739F5D5 mov %ecx,-0x5c(%ebp)
    7739F5D8 movzwl %cx,%ecx
    7739F5DB mov 0x8(%ebp),%esi
    7739F5DE movzwl %cx,%ecx
    7739F5E1 cmp %ecx,%edi
    7739F5E3 ja 0x773fdabe <ntdll!RtlDeleteCriticalSection+50351>
    7739F5E9 lea 0x8(%esi),%edx
    7739F5EC mov %edx,-0x34(%ebp)
    7739F5EF mov 0x4(%eax),%ecx
    7739F5F2 mov (%ecx),%edi
    7739F5F4 cmp %eax,%edi
    7739F5F6 jne 0x773fdac5 <ntdll!RtlDeleteCriticalSection+50358>
    7739F5FC mov %eax,(%edx)
    7739F5FE mov %ecx,0x4(%edx)
    7739F601 mov %edx,(%ecx)
    7739F603 mov %edx,0x4(%eax)
    7739F606 movzwl (%esi),%eax
    7739F609 add %eax,0x78(%ebx)
    7739F60C mov 0xb8(%ebx),%eax
    7739F612 test %eax,%eax
    7739F614 je 0x773e1fd8 <ntdll!RtlUnhandledExceptionFilter+1778>
    7739F61A movzwl (%esi),%edi
    7739F61D mov %eax,-0xa4(%ebp)
    7739F623 mov 0x4(%eax),%ecx
    7739F626 cmp %ecx,%edi
    7739F628 jae 0x77397818 <ntdll!RtlIsCriticalSectionLockedByThread+469>
    7739F62E mov %edi,%ecx
    7739F630 mov %ecx,-0x84(%ebp)
    7739F636 sub 0x14(%eax),%ecx
    7739F639 mov %ecx,-0x20(%ebp)
    7739F63C cmpl $0x0,0x8(%eax)
    7739F640 lea (%ecx,%ecx,1),%edx
    7739F643 je 0x773fdad8 <ntdll!RtlDeleteCriticalSection+50377>
    7739F649 incl 0xc(%eax)

    ne ho postato un pezzo altrimenti non entrava e spero sia quello significativo
    potreste darmi indicazioni perchè sinceramente comincio a dar di fuori

  8. #8
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    Riesci a produrre un pezzo di codice che dia lo stesso problema, che non sia quello in oggetto?

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2001
    Messaggi
    372
    Originariamente inviato da shodan
    Riesci a produrre un pezzo di codice che dia lo stesso problema, che non sia quello in oggetto?
    ci provo ... perchè quando eseguo direttamente il debug questo non mi da un riferimento di riga ma solo il frame stack in questo caso ntdll!RtlAddCompoundAce ... e arragiati

    ci lavoro un pò ed appena ho qualcosa di più preciso posto molto volentieri !!!

  10. #10
    Hai provato a vedere se ci sono versioni più aggiornate della tua libreria standard C++? (EDIT: sì, ci sono di sicuro, visto che stai usando una versione di gcc di quasi 3 anni fa). Magari si tratta di un bug corretto.
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.