From a4ebe76b6d0c2b0a3d132da1536e29db92e00a08 Mon Sep 17 00:00:00 2001 From: Mathias Stearn Date: Mon, 13 Mar 2017 16:14:59 -0400 Subject: [PATCH] SERVER-28291 use frame.pc() rather than frame.name() for stack deduping --- buildscripts/gdb/mongo.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/buildscripts/gdb/mongo.py b/buildscripts/gdb/mongo.py index 22420ef0ec2..f32d434f368 100644 --- a/buildscripts/gdb/mongo.py +++ b/buildscripts/gdb/mongo.py @@ -445,14 +445,14 @@ class MongoDBUniqueStack(gdb.Command): raise ValueError("Unsupported platform: {}".format(sys.platform)) thread_info['header'] = header_format.format(**thread_info) - functions = [] # list of function names from frames + addrs = [] # list of return addresses from frames frame = gdb.newest_frame() while frame: - functions.append(frame.name()) + addrs.append(frame.pc()) frame = frame.older() - functions = tuple(functions) # tuples are hashable, lists aren't. + addrs = tuple(addrs) # tuples are hashable, lists aren't. - unique = stacks.setdefault(functions, {'threads': []}) + unique = stacks.setdefault(addrs, {'threads': []}) unique['threads'].append(thread_info) if 'output' not in unique: try: