{"push_id":1120305043,"size":25,"distinct_size":25,"ref":"refs/heads/release_38","head":"2d1f71c77a8289427e189a54157fafad72fc7e4e","before":"badbf9c8bdd86306de10fd58607a765cab87dda3","commits":[{"sha":"184c6d7662c77e43284f3cbeda7909bf8b0717fd","author":{"email":"156c76b059d3590105c16ef0d016d45a20b6f1a2@gmail.com","name":"Francis Ricci"},"message":"Fix an issue where scripted commands would not actually print any of their output if an immediate output file was set in the result object via a Python file object\n\nFixes rdar://24130303\n\ngit-svn-id: https://llvm.org/svn/llvm-project/lldb/branches/release_38@270098 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/llvm-mirror/lldb/commits/184c6d7662c77e43284f3cbeda7909bf8b0717fd"},{"sha":"4ea8679f33a7386cfe7f7bff0d66a93eaed9b44d","author":{"email":"156c76b059d3590105c16ef0d016d45a20b6f1a2@gmail.com","name":"Francis Ricci"},"message":"Fixed a crasher when dealing with table entries that have blank names.\n\nThis can happen with -gmodules tables when an anonymous struct is referred to.\n\ngit-svn-id: https://llvm.org/svn/llvm-project/lldb/branches/release_38@270100 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/llvm-mirror/lldb/commits/4ea8679f33a7386cfe7f7bff0d66a93eaed9b44d"},{"sha":"e58028c6ce96fe4efbf2e278a42a10f68d48c947","author":{"email":"156c76b059d3590105c16ef0d016d45a20b6f1a2@gmail.com","name":"Francis Ricci"},"message":"Fix a problem where we were not calling fcntl() with the correct arguments for F_DUPFD\n\nOn Mac OS X, this was working just fine in debug builds (presumably, because the right value ended up being at the right location for the variadic ABI), but not in Release builds\nAs a result, we were seeing failures with commands that set their own immediate output stream - only in Release builds, which always makes for a fun little investigation\n\nI have removed those fcntl() calls and replaced them with dup() calls. This fixes the issue in both Debug and Release builds\n\ngit-svn-id: https://llvm.org/svn/llvm-project/lldb/branches/release_38@270102 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/llvm-mirror/lldb/commits/e58028c6ce96fe4efbf2e278a42a10f68d48c947"},{"sha":"a1f7560906de884e941859570f9d03d98108c5e7","author":{"email":"156c76b059d3590105c16ef0d016d45a20b6f1a2@gmail.com","name":"Francis Ricci"},"message":"Fix \"thread backtrace -s\": option was misparsed because of a missing break.\n\n<rdar://problem/24525106>\n\ngit-svn-id: https://llvm.org/svn/llvm-project/lldb/branches/release_38@270103 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/llvm-mirror/lldb/commits/a1f7560906de884e941859570f9d03d98108c5e7"},{"sha":"cc9af823aa4dbcbdc5a2dadf242a63e237e2150f","author":{"email":"156c76b059d3590105c16ef0d016d45a20b6f1a2@gmail.com","name":"Francis Ricci"},"message":"Fixed many issues that were causing differing type definition issues to show up when parsing expressions.\n\n1) Turns out we weren't correctly uniquing types for C++. We would search our repository for \"lldb_private::Process\", but yet store just \"Process\" in the unique type map. Now we store things correctly and correctly unique types.\n2) SymbolFileDWARF::CompleteType() can be called at any time in order to complete a C++ or Objective C class. All public inquiries into the SymbolFile go through SymbolVendor, and SymbolVendor correctly takes the module lock before it call the SymbolFile API call, but when we let CompilerType objects out in the wild, they can complete themselves at any time from the expression parser, so the ValueObjects or (SBValue objects in the public API), and many more places. So we now take the module lock when completing a type to avoid two threads being in the SymbolFileDWARF at the same time.\n3) If a class has a template member function like:\n\n    class A\n    { \n        <template T>\n        void Foo(T t);\n    };\n    \n    The DWARF will _only_ contain a DW_TAG_subprogram for \"Foo\" if anyone specialized it. This would cause a class definition for A inside a.cpp that used a \"int\" and \"float\" overload to look like:\n    class A\n    {\n        void Foo(int t);\n        void Foo(double t);\n    };\n    \n    And a version from b.cpp that used a \"float\" overload to look like:\n    class A\n    {\n        void Foo(float t);\n    };\n\n    And a version from c.cpp that use no overloads to look like:    \n    \n    class A\n    {\n    };\n    \n    Then in an expression if you have two variables, one name \"a\" from a.cpp in liba.dylib, and one named \"b\" from b.cpp in libb.dylib, you will get conflicting definitions for \"A\" and your expression will fail. This all stems from the fact that DWARF _only_ emits template specializations, not generic definitions, and they are only emitted if they are used. There are two solutions to this:\n    a) When ever you run into ANY class, you must say \"just because this class doesn't have templatized member functions, it doesn't mean that any other instances might not have any, so when ever I run into ANY class, I must parse all compile units and parse all instances of class \"A\" just in case it has member functions that are templatized.\". That is really bad because it means you always pull in ALL DWARF that contains most likely exact duplicate definitions of the class \"A\" and you bloat the memory that the SymbolFileDWARF plug-in uses in LLDB (since you pull in all DIEs from all compile units that contain a \"A\" definition) uses for little value most of the time.\n    b) Modify DWARF to emit generic template member function definitions so that you know from looking at any instance of class \"A\" wether it has template member functions or not. In order to do this, we would have to have the ability to correctly parse a member function template, but there is a compiler bug: \n    <rdar://problem/24515533> [PR 26553] C++ Debug info should reference DW_TAG_template_type_parameter\n    This bugs means that not all of the info needed to correctly make a template member function is in the DWARF. The main source of the problem is if we have DWARF for a template instantiation for \"int\" like: \"void A::Foo<int>(T)\" the DWARF comes out as \"void A::Foo<int>(int)\" (it doesn't mention type \"T\", it resolves the type to the specialized type to \"int\"). But if you actually have your function defined as \"<template T> void Foo(int t)\" and you only use T for local variables inside the function call, we can't correctly make the function prototype up in the clang::ASTContext. \n    \n    So the best we can do for now we just omit all member functions that are templatized from the class definition so that \"A\" never has any template member functions. This means all defintions of \"A\" look like:\n    \n    class A\n    {\n    };\n    \n    And our expressions will work. You won't be able to call template member fucntions in expressions (not a regression, we weren't able to do this before) and if you are stopped in a templatized member function, we won't know that are are in a method of class \"A\". All things we should fix, but we need <rdar://problem/24515533> fixed first, followed by:\n    \n    <rdar://problem/24515624> Classes should always include a template subprogram definition, even when no template member functions are used\n    \n    before we can do anything about it in LLDB.\n\nThis bug mainly fixed the following Apple radar:\n\n<rdar://problem/24483905>\n\ngit-svn-id: https://llvm.org/svn/llvm-project/lldb/branches/release_38@270104 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/llvm-mirror/lldb/commits/cc9af823aa4dbcbdc5a2dadf242a63e237e2150f"},{"sha":"0c805591d67f086de9280c7764a31c1ddd655268","author":{"email":"156c76b059d3590105c16ef0d016d45a20b6f1a2@gmail.com","name":"Francis Ricci"},"message":"Added code that was commented out during testing to stops template member functions from being added to class definitions (see revision 260308 for details).\n\n<rdar://problem/24483905>\n<rdar://problem/24508374>\n\ngit-svn-id: https://llvm.org/svn/llvm-project/lldb/branches/release_38@270105 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/llvm-mirror/lldb/commits/0c805591d67f086de9280c7764a31c1ddd655268"},{"sha":"79559a1dbc83c8c2d5bdf2d9f31b33deabcba16f","author":{"email":"156c76b059d3590105c16ef0d016d45a20b6f1a2@gmail.com","name":"Francis Ricci"},"message":"This is a cherry-pick of commit r260618\n\nAuthor:    Greg Clayton <gclayton@apple.com>\nDate:      Thu Feb 11 23:36:57 2016 +0000\n\nRemoved a bad assertion:\n\nassert(((SymbolFileDWARF*)m_ast.GetSymbolFile())->UserIDMatches(die.GetDIERef().GetUID()) &&\n       \"Adding incorrect type to forward declaration map\");\n\nThe problem is that \"m_ast.GetSymbolFile()\" can return a SymbolFileDWARFDebugMap. The code is doing the right thing if the assertion is ignored.\n\n<rdar://problem/24437972>\n\ngit-svn-id: https://llvm.org/svn/llvm-project/lldb/branches/release_38@270112 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/llvm-mirror/lldb/commits/79559a1dbc83c8c2d5bdf2d9f31b33deabcba16f"},{"sha":"e76f63508b0df15ee7bd2118a0175eeac6504bf1","author":{"email":"156c76b059d3590105c16ef0d016d45a20b6f1a2@gmail.com","name":"Francis Ricci"},"message":"Don't crash if we have a DIE that has a DW_AT_ranges attribute and yet the SymbolFileDWARF doesn't have a DebugRanges. If this happens print a nice error message to prompt the user to file a bug and attach the offending DWARF file so we can get the correct compiler fixed.\n\n<rdar://problem/24458016>\n\nThis is a cherry-pick of commit r260626\n\nAuthor:    Greg Clayton <gclayton@apple.com>\nDate:      Fri Feb 12 00:07:16 2016 +0000\n\ngit-svn-id: https://llvm.org/svn/llvm-project/lldb/branches/release_38@270114 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/llvm-mirror/lldb/commits/e76f63508b0df15ee7bd2118a0175eeac6504bf1"},{"sha":"ea3d2153f134cc131b62c0fdbc803ff84b851cd1","author":{"email":"156c76b059d3590105c16ef0d016d45a20b6f1a2@gmail.com","name":"Francis Ricci"},"message":"Make sure code that is in the middle of figuring out the correct architecture\non attach uses the architecture it has figured out, rather than the Target's\narchitecture, which may not have been updated to the correct value yet.\n\n<rdar://problem/24632895>\n\nAuthor:    Jim Ingham <jingham@apple.com>\nDate:      Thu Feb 18 23:58:45 2016 +0000\n\nThis is a cherry-pick of r261279\n\ngit-svn-id: https://llvm.org/svn/llvm-project/lldb/branches/release_38@270116 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/llvm-mirror/lldb/commits/ea3d2153f134cc131b62c0fdbc803ff84b851cd1"},{"sha":"d006d22a423613cd67061ff98c2a6bc42660e2d5","author":{"email":"156c76b059d3590105c16ef0d016d45a20b6f1a2@gmail.com","name":"Francis Ricci"},"message":"Fixed a problem where the DWARF for inline functions was mis-parsed.\n\nInline functions in DWARF have AT_abstract_origin set, but we only handled that\nif the functions were C++ methods.  Inline functions -- C or C++ -- have this\nalso, and as a result they got one FunctionDecl for each inlined instance.  When\ngoing to construct the locals, this meant that the arguments (which did properly\nhave their abstract origins handled) would get associated with the master\nFunctionDecl, and the inlined FunctionDecls would all appear to have no locals.\n\nThis manifested as not being able to look up local variables when stopped in an\ninline fuunction.  We should have had a test for this, but somewhere along the\nline the relevant test case lost its .py file (or it never had one).\n\nThis patch fixes this problem and restores the .py file.\n\n<rdar://problem/24712434>\n\nAuthor:    Sean Callanan <scallanan@apple.com>\nDate:      Tue Feb 23 00:51:52 2016 +0000\n\nThis is a cherry-pick of r261598\n\ngit-svn-id: https://llvm.org/svn/llvm-project/lldb/branches/release_38@270117 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/llvm-mirror/lldb/commits/d006d22a423613cd67061ff98c2a6bc42660e2d5"},{"sha":"3d490b0be092f0b6e19447ef40c31650676a1a37","author":{"email":"156c76b059d3590105c16ef0d016d45a20b6f1a2@gmail.com","name":"Francis Ricci"},"message":"Handle the case when a variable is only valid in part of the enclosing scope\n\nDWARF stores this information in the DW_AT_start_scope attribute. This\nCL add support for this attribute and also changes the functions\ndisplaying frame variables to only display the variables currently in\nscope.\n\nDifferential revision: http://reviews.llvm.org/D17449\n\nAuthor:    Tamas Berghammer <tberghammer@google.com>\nDate:      Thu Feb 25 12:23:37 2016 +0000\n\nThis is a cherry-pick of r261858\n\ngit-svn-id: https://llvm.org/svn/llvm-project/lldb/branches/release_38@270119 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/llvm-mirror/lldb/commits/3d490b0be092f0b6e19447ef40c31650676a1a37"},{"sha":"47802384404a8d987d87085d0dd53cfea6d39ab7","author":{"email":"156c76b059d3590105c16ef0d016d45a20b6f1a2@gmail.com","name":"Francis Ricci"},"message":"Fix deadlock due to thread list locking in 'bt all' with obj-c\n\nSummary:\nThe gdb-remote async thread cannot modify thread state while the main thread\nholds a lock on the state. Don't use locking thread iteration for bt all.\n\nSpecifically, the deadlock manifests when lldb attempts to JIT code to\nsymbolicate objective c while backtracing. As part of this code path,\nSetPrivateState() is called on an async thread. This async thread will\nblock waiting for the thread_list lock held by the main thread in\nCommandObjectIterateOverThreads. The main thread will also block on the\nasync thread during DoResume (although with a timeout), leading to a\ndeadlock. Due to the timeout, the deadlock is not immediately apparent,\nbut the inferior will be left in an invalid state after the bt all completes,\nand objective-c symbols will not be successfully resolved in the backtrace.\n\nReviewers: andrew.w.kaylor, jingham, clayborg\n\nSubscribers: sas, lldb-commits\n\nDifferential Revision: http://reviews.llvm.org/D18075\n\nChange by Francis Ricci <fjricci@fb.com>\n\nThis is a cherry-pick of r263735\n\ngit-svn-id: https://llvm.org/svn/llvm-project/lldb/branches/release_38@270120 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/llvm-mirror/lldb/commits/47802384404a8d987d87085d0dd53cfea6d39ab7"},{"sha":"5220fc69437f180c472b1ae345c4b5de066c6aef","author":{"email":"156c76b059d3590105c16ef0d016d45a20b6f1a2@gmail.com","name":"Francis Ricci"},"message":"Fixed a bug where DW_AT_start_scope would fall through to DW_AT_artificial in SymbolFileDWARF::ParseVariableDIE(). This was caught by the clang warning that catches unannotated case fall throughs.\n\nAuthor:    Greg Clayton <gclayton@apple.com>\nDate:      Fri Mar 18 20:33:49 2016 +0000\n\nThis is a cherry-pick of r263824\n\ngit-svn-id: https://llvm.org/svn/llvm-project/lldb/branches/release_38@270122 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/llvm-mirror/lldb/commits/5220fc69437f180c472b1ae345c4b5de066c6aef"},{"sha":"0abf07010f184623922bb56448d6d36a6af6ac8b","author":{"email":"156c76b059d3590105c16ef0d016d45a20b6f1a2@gmail.com","name":"Francis Ricci"},"message":"Make File option flags consistent for Python API\n\nSummary:\nFixes SBCommandReturnObject::SetImmediateOutputFile() and\nSBCommandReturnObject::SetImmediateOutputFile() for files opened\nwith \"a\" or \"a+\" by resolving inconsistencies between File and\nour Python parsing of file objects.\n\nReviewers: granata.enrico, Eugene.Zelenko, jingham, clayborg\n\nSubscribers: lldb-commits, sas\n\nDifferential Revision: http://reviews.llvm.org/D18228\n\nChange by Francis Ricci <fjricci@fb.com>\n\nThis is a cherry-pick of r264351\n\ngit-svn-id: https://llvm.org/svn/llvm-project/lldb/branches/release_38@270123 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/llvm-mirror/lldb/commits/0abf07010f184623922bb56448d6d36a6af6ac8b"},{"sha":"ec43c40d90bb167b691316643c7456caddaf986d","author":{"email":"156c76b059d3590105c16ef0d016d45a20b6f1a2@gmail.com","name":"Francis Ricci"},"message":"Allow gdbremote process to read modules from memory\n\nSummary:\nThe logic to read modules from memory was added to LoadModuleAtAddress\nin the dynamic loader, but not in process gdb remote. This means that when\nthe remote uses svr4 packets to give library info, libraries only present\non the remote will not be loaded.\n\nThis patch therefore involves some code duplication from LoadModuleAtAddress\nin the dynamic loader, but removing this would require some amount of code\nrefactoring.\n\nReviewers: ADodds, tberghammer, tfiala, deepak2427, ted\n\nSubscribers: tfiala, lldb-commits, sas\n\nDifferential Revision: http://reviews.llvm.org/D18531\n\nChange by Francis Ricci <fjricci@fb.com>\n\nThis is a cherry-pick of r265418\n\ngit-svn-id: https://llvm.org/svn/llvm-project/lldb/branches/release_38@270125 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/llvm-mirror/lldb/commits/ec43c40d90bb167b691316643c7456caddaf986d"},{"sha":"4c00d7fb94267ae28c5c8f507a3017175b319c36","author":{"email":"156c76b059d3590105c16ef0d016d45a20b6f1a2@gmail.com","name":"Francis Ricci"},"message":"Make sure to update Target arch if environment changed\n\nSummary: Fixes \"target list\" for non-android linux platforms (ie gnu, gnueabi)\n\nReviewers: jasonmolenda, tfiala, clayborg, tberghammer\n\nSubscribers: tberghammer, danalbert, lldb-commits, sas\n\nDifferential Revision: http://reviews.llvm.org/D18631\n\nChange by Francis Ricci <fjricci@fb.com>\n\nThis is a cherry-pick of r265419\n\ngit-svn-id: https://llvm.org/svn/llvm-project/lldb/branches/release_38@270126 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/llvm-mirror/lldb/commits/4c00d7fb94267ae28c5c8f507a3017175b319c36"},{"sha":"52be631c71bf70a29622dd455ba0012b4a6e114b","author":{"email":"156c76b059d3590105c16ef0d016d45a20b6f1a2@gmail.com","name":"Francis Ricci"},"message":"Print environment when dumping arch triple\n\nSummary: Print environment from triple if it exists.\n\nReviewers: tfiala, clayborg\n\nSubscribers: lldb-commits, sas\n\nDifferential Revision: http://reviews.llvm.org/D18620\n\nChange by Francis Ricci <fjricci@fb.com>\n\nThis is a cherry-pick of r265420\n\ngit-svn-id: https://llvm.org/svn/llvm-project/lldb/branches/release_38@270127 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/llvm-mirror/lldb/commits/52be631c71bf70a29622dd455ba0012b4a6e114b"},{"sha":"9adab63b8586654fd9d015edf732b762ac242c2c","author":{"email":"156c76b059d3590105c16ef0d016d45a20b6f1a2@gmail.com","name":"Francis Ricci"},"message":"Fix dotest.py '-p' option for multi-process mode\n\nSummary:\nThe '-p' option for dotest.py was ignored in multiprocess mode,\nas the -p argument to the inferior would overwrite the -p argument\npassed on the command line.\n\nReviewers: zturner, tfiala\n\nSubscribers: lldb-commits, sas\n\nDifferential Revision: http://reviews.llvm.org/D18779\n\nChange by Francis Ricci <fjricci@fb.com>\n\nThis is a cherry-pick of r265422\n\ngit-svn-id: https://llvm.org/svn/llvm-project/lldb/branches/release_38@270129 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/llvm-mirror/lldb/commits/9adab63b8586654fd9d015edf732b762ac242c2c"},{"sha":"21970c3dc65b0f130a472b2f45c064a22a224d1b","author":{"email":"156c76b059d3590105c16ef0d016d45a20b6f1a2@gmail.com","name":"Francis Ricci"},"message":"Create _lldb python symlink correctly when LLVM_LIBDIR_SUFFIX is used\n\nSummary:\nDo not assume that liblldb.so is located in $(lldb -P)/../../../lib\nwhen creating the _lldb python symlink. Instead, use the path passed\nto LLVM_LIBDIR_SUFFIX, defaulting to $(lldb -P)/../../../lib when this\nvariable is not set.\n\nReviewers: vharron, emaste, zturner\n\nSubscribers: zturner, labath, lldb-commits, sas\n\nDifferential Revision: http://reviews.llvm.org/D19067\n\nThis is a cherry-pick of r267462\n\ngit-svn-id: https://llvm.org/svn/llvm-project/lldb/branches/release_38@270130 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/llvm-mirror/lldb/commits/21970c3dc65b0f130a472b2f45c064a22a224d1b"},{"sha":"fd45430b8c91641dfb5ad44098c8df32dd31dd7e","author":{"email":"156c76b059d3590105c16ef0d016d45a20b6f1a2@gmail.com","name":"Francis Ricci"},"message":"Store absolute path for lldb executable in dotest.py\n\nSummary:\nlldb-server tests are currently being skipped on the\ncheck-lldb target. This is because we get the path of\nlldb-server by modifying the path to the lldb executable.\nHowever, by this point, we've changed directories, and a\nrelative path to the build/bin directory will no longer point\nto the location of lldb-server.\n\nStoring an absolute path solves this issue.\n\nReviewers: vharron, zturner, tfiala, labath\n\nSubscribers: labath, lldb-commits, sas\n\nDifferential Revision: http://reviews.llvm.org/D19082\n\nThis is a cherry-pick of r267463\n\ngit-svn-id: https://llvm.org/svn/llvm-project/lldb/branches/release_38@270131 91177308-0d34-0410-b5e6-96231b3b80d8","distinct":true,"url":"https://api.github.com/repos/llvm-mirror/lldb/commits/fd45430b8c91641dfb5ad44098c8df32dd31dd7e"}]}
{"actor":{"display_login":"llvm-mirror"}}