[LLDB][Breakpad] Make lldb understand INLINE and INLINE_ORIGIN records in breakpad.Teach LLDB to understand INLINE and INLINE_ORIGIN records in breakpad.They have the following formats:```INLINE
[LLDB][Breakpad] Make lldb understand INLINE and INLINE_ORIGIN records in breakpad.Teach LLDB to understand INLINE and INLINE_ORIGIN records in breakpad.They have the following formats:```INLINE inline_nest_level call_site_line call_site_file_num origin_num [address size]+INLINE_ORIGIN origin_num name````INLNIE_ORIGIN` is simply a string pool for INLINE so that we won't haveduplicated names for inlined functions and can show up anywhere in the symbolfile.`INLINE` follows immediately after `FUNC` represents the ranges of momeryaddress that has functions inlined inside the function.Differential Revision: https://reviews.llvm.org/D113330
show more ...
[lldb][NFC] Fix all formatting errors in .cpp file headersSummary:A *.cpp file header in LLDB (and in LLDB) should like this:```//===-- TestUtilities.cpp ----------------------------------------
[lldb][NFC] Fix all formatting errors in .cpp file headersSummary:A *.cpp file header in LLDB (and in LLDB) should like this:```//===-- TestUtilities.cpp -------------------------------------------------===//```However in LLDB most of our source files have arbitrary changes to this format andthese changes are spreading through LLDB as folks usually just use the existingsource files as templates for their new files (most notably the unnecessaryeditor language indicator `-*- C++ -*-` is spreading and in every reviewsomeone is pointing out that this is wrong, resulting in people pointing out that thisis done in the same way in other files).This patch removes most of these inconsistencies including the editor language indicators,all the different missing/additional '-' characters, files that center the file name, missingtrailing `===//` (mostly caused by clang-format breaking the line).Reviewers: aprantl, espindola, jfb, shafik, JDevlieghereReviewed By: JDevlieghereSubscribers: dexonsmith, wuzish, emaste, sdardis, nemanjai, kbarton, MaskRay, atanasyan, arphaman, jfb, abidh, jsji, JDevlieghere, usaxena95, lldb-commitsTags: #lldbDifferential Revision: https://reviews.llvm.org/D73258
Breakpad: Add support for parsing STACK WIN recordsSummary: The fields that aren't useful for us right now are simply ignored.Reviewers: amccarth, markmentovaiSubscribers: rnk, lldb-commitsDi
Breakpad: Add support for parsing STACK WIN recordsSummary: The fields that aren't useful for us right now are simply ignored.Reviewers: amccarth, markmentovaiSubscribers: rnk, lldb-commitsDifferential Revision: https://reviews.llvm.org/D66633llvm-svn: 369892
Breakpad: Match the new UUID algorithm in minidumpsD59433 and D60501 changed the way UUIDs are computed from minidumpfiles. This was done to synchronize the U(G)UID representation with thenative
Breakpad: Match the new UUID algorithm in minidumpsD59433 and D60501 changed the way UUIDs are computed from minidumpfiles. This was done to synchronize the U(G)UID representation with thenative tools of given platforms, but it created a mismatch betweenminidumps and breakpad files.This updates the breakpad algorithm to match the one found in minidumps,and also adds a couple of tests which should fail if these two ever getout of sync. Incidentally, this means that the module id in the breakpadfiles is almost identical to our notion of UUIDs, so the computationalgorithm can be somewhat simplified.llvm-svn: 358500
Breakpad: Parse Stack CFI recordsSummary:This patch adds support for parsing STACK CFI records from breakpadfiles. The expressions specifying the values of registers are notparsed.The idea is th
Breakpad: Parse Stack CFI recordsSummary:This patch adds support for parsing STACK CFI records from breakpadfiles. The expressions specifying the values of registers are notparsed.The idea is that these will be handed off to the postfixexpression -> dwarf compiler, once it is extracted from the internals ofthe NativePDB plugin.Reviewers: clayborg, amccarth, markmentovaiSubscribers: aprantl, lldb-commitsDifferential Revision: https://reviews.llvm.org/D60268llvm-svn: 357975
Breakpad: Refine record classification codePreviously we would classify all STACK records into a single bucket.This is not really helpful, because there are three distinct types ofrecords beginni
Breakpad: Refine record classification codePreviously we would classify all STACK records into a single bucket.This is not really helpful, because there are three distinct types ofrecords beginning with the token "STACK" (STACK CFI INIT, STACK CFI,STACK WIN). To be consistent with how we're treating other records, weshould classify these as three different record types.It also implements the logic to put "STACK CFI INIT" and "STACK CFI"records into the same "section" of the breakpad file, as they are meantto be read together (similar to how FUNC and LINE records are treated).The code which performs actual parsing of these records will come in aseparate patch.llvm-svn: 357691
BreakpadRecords: Add parsing code for FILE and LINE recordsThe two records aren't used by anything yet, but this part can beseparated out easily, so I am comitting it separately to simplifyreview
BreakpadRecords: Add parsing code for FILE and LINE recordsThe two records aren't used by anything yet, but this part can beseparated out easily, so I am comitting it separately to simplifyreviews of the followup patch.llvm-svn: 352507
breakpad: Add FUNC records to the symtabThis patch extends SymbolFileBreakpad::AddSymbols to include the symbolsfrom the FUNC records too. These symbols come from the debug info andhave a size as
breakpad: Add FUNC records to the symtabThis patch extends SymbolFileBreakpad::AddSymbols to include the symbolsfrom the FUNC records too. These symbols come from the debug info andhave a size associated with them, so they are given preference in casethere is a PUBLIC record for the same address.To achieve this, I first pre-process the symbols into a temporaryDenseMap, and then insert the uniqued symbols into the module's symtab.Reviewers: clayborg, lemo, zturnerReviewed By: clayborgSubscribers: lldb-commitsDifferential Revision: https://reviews.llvm.org/D56590llvm-svn: 351781
Update the file headers across all of the LLVM projects in the monorepoto reflect the new license.We understand that people may be surprised that we're moving the headerentirely to discuss the ne
Update the file headers across all of the LLVM projects in the monorepoto reflect the new license.We understand that people may be surprised that we're moving the headerentirely to discuss the new license. We checked this carefully with theFoundation's lawyer and we believe this is the correct approach.Essentially, all code in the project is now made available by the LLVMproject under our new license, so you will see that the license headersinclude that license only. Some of our contributors have contributedcode under our old license, and accordingly, we have retained a copy ofour old license notice in the top-level files in each project andrepository.llvm-svn: 351636
Breakpad: Extract parsing code into a separate fileSummary:This centralizes parsing of breakpad records, which was previouslyspread out over ObjectFileBreakpad and SymbolFileBreakpad.For each r
Breakpad: Extract parsing code into a separate fileSummary:This centralizes parsing of breakpad records, which was previouslyspread out over ObjectFileBreakpad and SymbolFileBreakpad.For each record type X there is a separate breakpad::XRecord class, andan associated parse function. The classes just store the information inthe breakpad records in a more accessible form. It is up to the users todetermine what to do with that data.This separation also made it possible to write some targeted tests forthe parsing code, which was previously unaccessible, so I write a coupleof those too.Reviewers: clayborg, lemo, zturnerReviewed By: clayborgSubscribers: mgorny, fedor.sergeev, lldb-commitsDifferential Revision: https://reviews.llvm.org/D56844llvm-svn: 351541