<div dir="ltr"><div dir="ltr"><div dir="ltr">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:</div><div dir="ltr"><br></div><div dir="ltr">Dr. Memory version 1.11.0 build 2 built on Aug 29 2016 02:42:07<br>Dr. Memory results for pid 3856: "so_exec.exe"<br>Application cmdline: ".\so_exec.exe so_test_prog.exe"<br>Recorded 115 suppression(s) from default C:\Program Files\Dr. Memory\bin\suppress-default.txt<br><br>WARNING: application is missing line number information.<br><br>Error #1: UNADDRESSABLE ACCESS: reading 0x1000003c-0x10000040 4 byte(s)<br># 0 so_loader.dll!so_execute         +0x679    (0x54511c29 <so_loader.dll+0x1c29>)<br># 1 so_loader.dll!so_execute         +0x17d    (0x5451172e <so_loader.dll+0x172e>)<br># 2 so_exec.exe!?                    +0x0      (0x20001050 <so_exec.exe+0x1050>)<br># 3 so_exec.exe!?                    +0x0      (0x2000153a <so_exec.exe+0x153a>)<br># 4 KERNEL32.dll!BaseThreadInitThunk +0x11     (0x75801174 <KERNEL32.dll+0x51174>)<br>Note: @0:00:00.265 in thread 2028<br>Note: instruction: mov    0x3c(%ecx) -> %edx<br><br>Error #2: UNADDRESSABLE ACCESS: reading 0x10030000-0x10030004 4 byte(s)<br># 0 so_loader.dll!so_execute         +0x6e2    (0x54511c92 <so_loader.dll+0x1c92>)<br># 1 so_loader.dll!so_execute         +0x692    (0x54511c43 <so_loader.dll+0x1c43>)<br># 2 so_loader.dll!so_execute         +0x17d    (0x5451172e <so_loader.dll+0x172e>)<br># 3 so_exec.exe!?                    +0x0      (0x20001050 <so_exec.exe+0x1050>)<br># 4 so_exec.exe!?                    +0x0      (0x2000153a <so_exec.exe+0x153a>)<br># 5 KERNEL32.dll!BaseThreadInitThunk +0x11     (0x75801174 <KERNEL32.dll+0x51174>)<br>Note: @0:00:00.343 in thread 2028<br>Note: instruction: cmp    (%ecx) $0x00000000<br><br>Error #3: UNADDRESSABLE ACCESS: executing 0x10010005-0x10010006 1 byte(s)<br># 0 <not in a module>   (0x10010005)<br># 1 so_loader.dll!so_execute         +0x69d    (0x54511c4e <so_loader.dll+0x1c4e>)<br># 2 so_loader.dll!so_execute         +0x17d    (0x5451172e <so_loader.dll+0x172e>)<br># 3 so_exec.exe!?                    +0x0      (0x20001050 <so_exec.exe+0x1050>)<br># 4 so_exec.exe!?                    +0x0      (0x2000153a <so_exec.exe+0x153a>)<br># 5 KERNEL32.dll!BaseThreadInitThunk +0x11     (0x75801174 <KERNEL32.dll+0x51174>)<br>Note: @0:00:00.374 in thread 2028</div><div dir="ltr"><br></div><div>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.<br></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">În mar., 16 apr. 2019 la 10:30, Mihai Barbulescu <<a href="mailto:b12mihai@gmail.com">b12mihai@gmail.com</a>> a scris:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Paul, <br><br>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) <br><br>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 <br><br>Cu stimă,<br>Mihai Bărbulescu<div class="gmail-m_-2666284044142729026quote" style="line-height:1.5"><br><br>-------- Original Message --------<br>Subject: Re: [so] [Tema3][Windows] - Permisiuni VirtualAlloc, VirtualProtect<br>From: Paul Olaru via so <u></u><br>To: Ionuț Mihalache <u></u><br>CC: Sisteme de Operare <u></u><br><br><br type="attribution"><blockquote class="gmail-m_-2666284044142729026quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto">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.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Apr 16, 2019, 9:37 AM Ionuț Mihalache <<a href="mailto:ipopescu46@gmail.com" target="_blank">ipopescu46@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto">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. </div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">mar., 16 apr. 2019, 09:14 Razvan Crainea <<a href="mailto:razvan.crainea@gmail.com" rel="noreferrer" target="_blank">razvan.crainea@gmail.com</a>> a scris:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Salutare!<br>
<br>
Am rugămintea ca atunci când raportați o problemă, să descrieți exact<br>
comportamentul programului, și ce debugging ați făcut. Dacă vreți să<br>
vă putem ajuta, trebuie să avem toate datele problemei.<br>
Nu ne mai cereți să ne uităm pe sursele voastre, asta ar trebui să<br>
facem doar în cazuri excepționale, când debugging-ul făcut de voi nu<br>
este de ajuns să identificăm problema. Dacă va fi nevoie de asta, vom<br>
cere noi acces la surse.<br>
Prin urmare, Ionuț, spune-ne de ce crezi că este de la mapare? În ce<br>
moment al execuției? Ce fel de acces nu merge?<br>
<br>
Numai bine!<br>
Răzvan<br>
<br>
On Tue, Apr 16, 2019 at 12:04 AM Paul-Stelian Olaru via so<br>
<<a href="mailto:so@cursuri.cs.pub.ro" rel="noreferrer noreferrer" target="_blank">so@cursuri.cs.pub.ro</a>> wrote:<br>
><br>
> 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.<br>
><br>
><br>
><br>
> Sent from Mail for Windows 10<br>
><br>
><br>
><br>
> From: Ionuț Mihalache via so<br>
> Sent: Tuesday, April 16, 2019 12:01 AM<br>
> To: Sisteme de Operare<br>
> Subject: [so] [Tema3][Windows] - Permisiuni VirtualAlloc, VirtualProtect<br>
><br>
><br>
><br>
> Salut,<br>
><br>
><br>
><br>
> 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.<br>
><br>
><br>
><br>
> Multumesc.<br>
><br>
><br>
><br>
> <a href="https://gitlab.cs.pub.ro/ionut.mihalache1506/l3-so-assignments/blob/master/3-loader/skel-win/loader.c" rel="noreferrer noreferrer noreferrer" target="_blank">https://gitlab.cs.pub.ro/ionut.mihalache1506/l3-so-assignments/blob/master/3-loader/skel-win/loader.c</a><br>
><br>
><br>
><br>
> _______________________________________________<br>
> <a href="http://ocw.cs.pub.ro/courses/so/info/lista-discutii" rel="noreferrer noreferrer noreferrer" target="_blank">http://ocw.cs.pub.ro/courses/so/info/lista-discutii</a><br>
<br>
<br>
<br>
-- <br>
Răzvan Crainea<br>
</blockquote></div>
</blockquote></div>
</blockquote></div></blockquote></div>