diff --git a/gdb/python/lib/gdb/command/rpm-suggestions.py b/gdb/python/lib/gdb/command/rpm-suggestions.py index 293b1638617..463684c1462 100644 --- a/gdb/python/lib/gdb/command/rpm-suggestions.py +++ b/gdb/python/lib/gdb/command/rpm-suggestions.py @@ -28,6 +28,8 @@ __missing_rpms = {} # the prompt is shown. __suggest_rpms = {} +__package_to_debug_package = {} + # Lookup RPMs that might provide the debug information for FILENAME, # which is a string containing the path to an object file GDB could @@ -43,6 +45,7 @@ def find_suggestions(filename): for h in mi: # Build the debuginfo package name. obj = h.format("%{name}-debuginfo-%{version}-%{release}.%{arch}") + debug_rpm_name = str(obj) # Check to see if the package is installed. mi2 = ts.dbMatch(rpm.RPMDBI_LABEL, str(obj)) @@ -52,6 +55,7 @@ def find_suggestions(filename): # Now build the name of the package FILENAME came from. obj = h.format("%{name}-%{version}-%{release}.%{arch}") rpm_name = str(obj) + __package_to_debug_package[rpm_name] = debug_rpm_name if not rpm_name in __missing_rpms: __suggest_rpms[rpm_name] = True __missing_rpms[rpm_name] = True @@ -83,10 +87,12 @@ class RPMSuggestionHandler(gdb.missing_debug.MissingDebugHandler): # suggests this to the user. def before_prompt(): global __suggest_rpms + global __package_to_debug_package if len(__suggest_rpms) > 0: for p in __suggest_rpms.keys(): - print("Missing debuginfo, try: dnf debuginfo-install " + p) + dp = __package_to_debug_package[p] + print("Missing separate debuginfos, use: zypper install " + dp) __suggest_rpms = {}