Memória profilózó eszközök beágyazott környezetben

OData támogatás
Konzulens:
Oláh István
Automatizálási és Alkalmazott Informatikai Tanszék

A diplomadolgozatom témája egy memória profilozó eszköz készítése volt C/C++ programokhoz, amely könnyen integrálható beágyazott szoftver rendszerekbe illetve nincs jelentős hatása a futási teljesítményre. Az eszköz két részből áll, egy osztott könyvtárból (shared library) amelyet össze kell linkelni a felhasználói alkalmazással és az adatgyűjtést végzi, továbbá egy önálló alkalmazásból, amely a gyűjtött adatokat értelmezi. A könyvtár C nyelven, míg az alkalmazás C++ nyelven került implementálásra, C++98 kompatibilitással figyelembe véve az esetleges régebbi fordítókkal való kompatibilitást. A fejlesztés során a GNU C könyvtárát használtam fel a hozzá tartozó gcc és g++ fordítókkal együtt, így mélyebb ismeretekre tettem szert a GNU C könyvtár által nyújtott lehetőségekkel és a saját GNU makefile-ok készítésében. Megismerkedtem a GNU binutils alkalmazás csomaggal is, ami hasznos eszközöket és könyvtárakat bocsát rendelkezésre Linux platformon a fejlesztők számára. Ebből a csomagból a profilozó alkalmazás a Binary File Descriptor (BFD) könyvtárat használja aktívan. Ez a könyvtár biztosít egy interfészt Executable and Linkable (ELF) fájlok megnyitására és értelmezésére. Az ELF fájltípus a standard fájl formátum az alkalmazások számára Linux alatt. A BFD könyvtárra akkor volt szükség, amikor a profilozó alkalmazás megpróbálja visszaállítani a hívási listát egy adott allokációs/felszabadító funkcióig, ugyanis ekkor ismerni kell információkat a binárisban található szimbólumokról. Az allokációs függvények és a felszabadító függvény (free) felüldefiniálása a gyenge (weak) és globális (global) szimbólumok elvén alapszik. A profilozó osztott könyvtár és az profilozó alkalmazás a hagyományos folyamatok közötti kommunikációs (IPC) objektumokat használják: osztott memória, osztott szemafor, közös csővezeték. Miután az adatgyűjtés befejeződött, a felhasználó egy parancssori interfészen keresztül tudja konfigurálni a profilozó alkalmazást, melyik szűrő és analizáló algoritmusok fussanak le a gyűjtött adatokon. A parancssor elkészítéséhez a LEX (lexikális elemző generátor) és YACC (Yet Another Compiler Compiler) szoftvercsomagokat használatam fel, amelyek egy könnyen használható interfészt biztosítanak parancssorok készítéséhez.

Letölthető fájlok

A témához tartozó fájlokat csak bejelentkezett felhasználók tölthetik le.