From owner-svn-src-all@FreeBSD.ORG Wed Mar 19 13:16:59 2014 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 40828751; Wed, 19 Mar 2014 13:16:59 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 11CCE402; Wed, 19 Mar 2014 13:16:59 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s2JDGwIh046028; Wed, 19 Mar 2014 13:16:58 GMT (envelope-from emaste@svn.freebsd.org) Received: (from emaste@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s2JDGwBA046027; Wed, 19 Mar 2014 13:16:58 GMT (envelope-from emaste@svn.freebsd.org) Message-Id: <201403191316.s2JDGwBA046027@svn.freebsd.org> From: Ed Maste Date: Wed, 19 Mar 2014 13:16:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org Subject: svn commit: r263366 - stable/10/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD X-SVN-Group: stable-10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Mar 2014 13:16:59 -0000 Author: emaste Date: Wed Mar 19 13:16:58 2014 New Revision: 263366 URL: http://svnweb.freebsd.org/changeset/base/263366 Log: MFC r258873: Workaround lldb issue with main module base address On FreeBSD lldb sometimes reloads the the main module's (executable's) symbols at the wrong address. Work around this for now by explicitly reloading at base_address=0 when it happens. A proper fix is needed but early testers have reported this issue so this workaround should allow them to make further progress. http://llvm.org/bugs/show_bug.cgi?id=17880 Sponsored by: DARPA, AFRL Modified: stable/10/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp Directory Properties: stable/10/ (props changed) Modified: stable/10/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp ============================================================================== --- stable/10/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp Wed Mar 19 13:15:16 2014 (r263365) +++ stable/10/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DynamicLoaderPOSIXDYLD.cpp Wed Mar 19 13:16:58 2014 (r263366) @@ -454,6 +454,17 @@ DynamicLoaderPOSIXDYLD::LoadAllCurrentMo const char *module_path = I->path.c_str(); FileSpec file(module_path, false); ModuleSP module_sp = LoadModuleAtAddress(file, I->link_addr, I->base_addr); +#ifdef __FreeBSD__ // llvm.org/pr17880 + if (module_sp == executable) + { + Log *log(GetLogIfAnyCategoriesSet(LIBLLDB_LOG_DYNAMIC_LOADER)); + if (log) + log->Printf("DynamicLoaderPOSIXDYLD::%s reloading main module, ignoring rendezvous base addr %" PRIx64, + __FUNCTION__, I->base_addr); + ModuleSP module_sp = LoadModuleAtAddress(file, I->link_addr, 0); + } +#endif + if (module_sp.get()) { module_list.Append(module_sp);