Gata, am rezolvat. Sunt prea obosit. La SetFilePointer puneam FILE_CURRENT in loc de FILE_BEGIN. Multumesc de ajutor si scuze ca v-am pierdut timpul pe un lucru stupid.
În mar., 16 apr. 2019 la 17:42, Mihai Barbulescu <[email protected]> a scris: > Salut Ionut, > > Da un ochi pe optiunile lui [1] s-ar putea ca -dump_at_unaddressable > si poate -pause_at_unaddressable si poate reusesti sa afli si unde in > cod s-a oprit programul tau si poate asa afli accesul invalid. Show > reachable e util doar pentru leak-uri, poti sa lasi pornita si > optiunea asta. > > Mai ai optiunile -light si -brief poate gasesti ceva mai repede cu astea. > > [1] https://drmemory.org/docs/page_options.html > > On Tue, 16 Apr 2019 at 17:34, Ionuț Mihalache <[email protected]> > wrote: > > > > Salut modul cum folosesc Dr Memory este acesta: "drmemory.exe > -show_reachable .\so_exec.exe so_test_prog.exe". Eroarea pe care o primesc > este urmatoarea: > > > > Dr. Memory version 1.11.0 build 2 built on Aug 29 2016 02:42:07 > > Dr. Memory results for pid 3856: "so_exec.exe" > > Application cmdline: ".\so_exec.exe so_test_prog.exe" > > Recorded 115 suppression(s) from default C:\Program Files\Dr. > Memory\bin\suppress-default.txt > > > > WARNING: application is missing line number information. > > > > Error #1: UNADDRESSABLE ACCESS: reading 0x1000003c-0x10000040 4 byte(s) > > # 0 so_loader.dll!so_execute +0x679 (0x54511c29 > <so_loader.dll+0x1c29>) > > # 1 so_loader.dll!so_execute +0x17d (0x5451172e > <so_loader.dll+0x172e>) > > # 2 so_exec.exe!? +0x0 (0x20001050 > <so_exec.exe+0x1050>) > > # 3 so_exec.exe!? +0x0 (0x2000153a > <so_exec.exe+0x153a>) > > # 4 KERNEL32.dll!BaseThreadInitThunk +0x11 (0x75801174 > <KERNEL32.dll+0x51174>) > > Note: @0:00:00.265 in thread 2028 > > Note: instruction: mov 0x3c(%ecx) -> %edx > > > > Error #2: UNADDRESSABLE ACCESS: reading 0x10030000-0x10030004 4 byte(s) > > # 0 so_loader.dll!so_execute +0x6e2 (0x54511c92 > <so_loader.dll+0x1c92>) > > # 1 so_loader.dll!so_execute +0x692 (0x54511c43 > <so_loader.dll+0x1c43>) > > # 2 so_loader.dll!so_execute +0x17d (0x5451172e > <so_loader.dll+0x172e>) > > # 3 so_exec.exe!? +0x0 (0x20001050 > <so_exec.exe+0x1050>) > > # 4 so_exec.exe!? +0x0 (0x2000153a > <so_exec.exe+0x153a>) > > # 5 KERNEL32.dll!BaseThreadInitThunk +0x11 (0x75801174 > <KERNEL32.dll+0x51174>) > > Note: @0:00:00.343 in thread 2028 > > Note: instruction: cmp (%ecx) $0x00000000 > > > > Error #3: UNADDRESSABLE ACCESS: executing 0x10010005-0x10010006 1 byte(s) > > # 0 <not in a module> (0x10010005) > > # 1 so_loader.dll!so_execute +0x69d (0x54511c4e > <so_loader.dll+0x1c4e>) > > # 2 so_loader.dll!so_execute +0x17d (0x5451172e > <so_loader.dll+0x172e>) > > # 3 so_exec.exe!? +0x0 (0x20001050 > <so_exec.exe+0x1050>) > > # 4 so_exec.exe!? +0x0 (0x2000153a > <so_exec.exe+0x153a>) > > # 5 KERNEL32.dll!BaseThreadInitThunk +0x11 (0x75801174 > <KERNEL32.dll+0x51174>) > > Note: @0:00:00.374 in thread 2028 > > > > Mai sunt erori dar sunt leak-uri cel mai probabil cauzate de faptul ca > programul primeste segmentaion fault, cele de mai sus sunt cele care sunt > cel mai de interes. Clar fac un acces invalid la memorie insa nu imi este > inca clar unde se intampla, dar mai investighez. > > > > În mar., 16 apr. 2019 la 10:30, Mihai Barbulescu <[email protected]> a > scris: > >> > >> Paul, > >> > >> Dacă ai fi citit cu atenție măcar subiectul problema lui Ionuț este pe > Windows. Nu are cum să folosească utilitarele de Linux acolo (valgrind sau > gdb) > >> > >> Ionuț spune-mi dacă nu te descurci să folosești Dr Memory pe testul cu > probleme arata-ne cum folosești în cazul în care acesta nu te ajuta sa afli > informații utile > >> > >> Cu stimă, > >> Mihai Bărbulescu > >> > >> > >> -------- Original Message -------- > >> Subject: Re: [so] [Tema3][Windows] - Permisiuni VirtualAlloc, > VirtualProtect > >> From: Paul Olaru via so > >> To: Ionuț Mihalache > >> CC: Sisteme de Operare > >> > >> > >> Adresa 1 sună suspect (NULL pointer dereference). Memory allocation > failure? Încearcă să reduci utilizarea de memorie dinamică pe cât posibil. > Vezi cu Valgrind/GDB care pointer încerci să îl folosești deși e nul. > >> > >> On Tue, Apr 16, 2019, 9:37 AM Ionuț Mihalache <[email protected]> > wrote: > >>> > >>> Problema care apare este faptul că loader-ul primește segfault. Am > printat adresa la care are loc page fault și de la un moment dat apare > adresa 1 și nu ar trebui. VirtualAlloc și VirtualProtect nu eșuează însă nu > pot să-mi dau seama exact de unde ar mai putea fi problema. Din printare > am văzut că anumite pagini se mapează însă nu-mi dau seama care ar putea fi > cauza pentru care primesc segfault pentru că nu fac altceva decât să aplic > logica de pe linux cu alt page size și mod de a mapa. Este posibil să iau > adresa greșit dar la început merge. Am presupus că este de la mapare pentru > că tot primesc page fault. Rulez programul de test, cel cu hello world. Am > postat doar ca să mă asigur că abordarea mea de a mapa este bună ca să nu > depanez ce nu trebuie. > >>> > >>> mar., 16 apr. 2019, 09:14 Razvan Crainea <[email protected]> a > scris: > >>>> > >>>> Salutare! > >>>> > >>>> Am rugămintea ca atunci când raportați o problemă, să descrieți exact > >>>> comportamentul programului, și ce debugging ați făcut. Dacă vreți să > >>>> vă putem ajuta, trebuie să avem toate datele problemei. > >>>> Nu ne mai cereți să ne uităm pe sursele voastre, asta ar trebui să > >>>> facem doar în cazuri excepționale, când debugging-ul făcut de voi nu > >>>> este de ajuns să identificăm problema. Dacă va fi nevoie de asta, vom > >>>> cere noi acces la surse. > >>>> Prin urmare, Ionuț, spune-ne de ce crezi că este de la mapare? În ce > >>>> moment al execuției? Ce fel de acces nu merge? > >>>> > >>>> Numai bine! > >>>> Răzvan > >>>> > >>>> On Tue, Apr 16, 2019 at 12:04 AM Paul-Stelian Olaru via so > >>>> <[email protected]> wrote: > >>>> > > >>>> > Pentru handlerul default pe Windows trebuie să returnezi ceva cu > CONTINUE_SEARCHING din handlerul apelat de sistem. Honestly chestia asta e > mai ușoară pe Windows decât pe Linux. > >>>> > > >>>> > > >>>> > > >>>> > Sent from Mail for Windows 10 > >>>> > > >>>> > > >>>> > > >>>> > From: Ionuț Mihalache via so > >>>> > Sent: Tuesday, April 16, 2019 12:01 AM > >>>> > To: Sisteme de Operare > >>>> > Subject: [so] [Tema3][Windows] - Permisiuni VirtualAlloc, > VirtualProtect > >>>> > > >>>> > > >>>> > > >>>> > Salut, > >>>> > > >>>> > > >>>> > > >>>> > Se poate uita cineva din echipa va rog daca permisiunile din > parametri pentru VirtualAlloc si VirtualProtect sunt in regula? Si nu stiu > exact cum sa fac cu handler-ul default insa nu asta este problema acum ci > faptul ca primesc segmentation fault in loader si cred ca este de la mapare. > >>>> > > >>>> > > >>>> > > >>>> > Multumesc. > >>>> > > >>>> > > >>>> > > >>>> > > https://gitlab.cs.pub.ro/ionut.mihalache1506/l3-so-assignments/blob/master/3-loader/skel-win/loader.c > >>>> > > >>>> > > >>>> > > >>>> > _______________________________________________ > >>>> > http://ocw.cs.pub.ro/courses/so/info/lista-discutii > >>>> > >>>> > >>>> > >>>> -- > >>>> Răzvan Crainea > > > > -- > Cu stimă, > Mihai Bărbulescu >
_______________________________________________ http://ocw.cs.pub.ro/courses/so/info/lista-discutii
