Amarengo

Articles and news

GDB Vs LLDB hibakeresők

1. A definíció különbsége szerint

először is, mi a GDB?

“a GDB a GNU szoftverrendszer szabványos hibakeresője”
a GNU hibakereső, amelyet általában csak GDB-nek hívnak, és futtatható fájlként gdb-nek neveznek, a GNU operációs rendszer szabványos hibakeresője. Használata azonban nem korlátozódik szigorúan a GNU operációs rendszerre; ez egy hordozható hibakereső, amely számos Unix-szerű rendszeren fut, és számos programozási nyelven működik, beleértve az Ada, C, C++, Objective-C, Free Pascal, Fortran, Java1 és részben mások.2
(idézet A Wikipédiából)

másodszor, mi az LLDB?

“LLDB egy hibakereső épül, mint egy sor újrafelhasználható komponensek, amelyek nagymértékben kihasználják a meglévő könyvtárak a nagyobb LLVM projekt, mint például a Clang kifejezés elemző és LLVM disassembler.
az LLDB az Apple “az alapoktól kezdve” helyettese a GDB-nek, amelyet az LLVM fordítóprogramokkal szoros együttműködésben fejlesztettek ki, hogy a legkorszerűbb hibakeresést biztosítsa az áramlásszabályozás és az adatellenőrzés kiterjedt képességeivel. Az Xcode 5-től kezdődően minden új és már létező fejlesztési projekt automatikusan ÚJRAKONFIGURÁLÓDIK az LLDB használatához. A szokásos LLDB telepítés kiterjedt parancskészletet kínál, amelyet úgy terveztek, hogy kompatibilis legyen az ismerős GDB parancsokkal. A szokásos konfiguráció használata mellett könnyedén testreszabhatja az LLDB-t az Ön igényeinek megfelelően.
(idézet az Apple hivatalos webhelyéről)
/* megpróbáltam tényleges / gyakorlati adatokat találni az állítás igazolására : az LLDB már sokkal gyorsabb, mint a GDB, amikor nagy programokat hibakeres.) Azonban nem találtam meg. ha van valaki, aki rendelkezik ezekkel a kapcsolódó adatokkal, kérjük, szerkessze ezt a cikket. */

mind a GDB, mind az LLDB kétségtelenül kiváló hibakeresők.
GDB debugger része a GNU projekt létre, hogy működjön együtt a GNU fordító.
az LLDB az LLVM projekt hibakereső része, amelyet az LLVM fordító mentén hoztak létre.

2. A hibakereső parancs használatának különbsége

a parancsok többsége azonos.
azonban az lldb és a gdb, két különböző hibakeresőt különböző fejlesztők fejlesztettek ki, és így egy kicsit más parancsokkal rendelkeznek.

ez az alábbi link jó a két hibakereső parancs különbségének összehasonlításához.
engedje meg, hogy összekapcsoljam az alábbi részleteket: https://developer.apple.com/library/content/documentation/IDEs/Conceptual/gdb_to_lldb_transition_guide/document/lldb-command-examples.html

http://lldb.llvm.org/lldb-gdb.html

ez egyértelműen jelzi és szervezi a parancsok különbségét.

abban az esetben, ha a webhely már nem érhető el, összefoglalom az alábbi parancsok fő különbségét a hivatkozott webhelyről.

végrehajtási parancs különbség GDB és LLDB közötttöréspont parancs különbség GDB és LLDB közöttváltozó parancs különbség GDB és LLDB közöttSzálállapot vizsgálata parancs különbség GDB és LLDB között
3. Személyes vélemény
LLDB már teljesen integrálva Xcode IDE 5 alapértelmezés szerint elsődleges hibakereső.
ettől az időtől kezdve panaszjelentés érkezett az LLDB stabilitásáról, teljesítményproblémáiról és hibáiról.
az LLVM az LLDB projekttel azonban hihetetlenül javult és továbbfejlesztett, mint a világ egyik legfontosabb nyílt forráskódú projektje.
szóval, azt hiszem, legalább LLDB kell használni az Apple fejlesztői környezet, mivel LLDB ellopta a helyzetét GDB és már elsődleges alapértelmezett hibakereső legalább az Apple world.
(2016. szeptember végén hivatalosan is megjelent az LLVM-et és LLDB-t integráló Xcode 8, ami azt jelenti, hogy elég sok idő telt el azóta, hogy az LLVM/LLDB az Xcode alapértelmezett eszközlánca.)
de mindannyian tudjuk, hogy a GDB történelmileg és erősen ellenőrzött és csata-bizonyított hibakereső 30 év alatt, ami félelmetes.

szóval, azt mondanám…
szeretném használni lldb használata közben clang, használja gdb használata közben gcc fordító, mint a jó kombináció vagy pár, mert lldb alapul llvm, mivel gdb egy GNU debugger.

bárcsak hasznos lehet az Ön számára.

köszönöm.

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.