2 # Copyright (c) 2012 The Native Client Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
9 class StackTraceTest(gdb_test.GdbTest):
11 def test_stack_trace(self):
12 self.gdb.Command('break leaf_call')
13 self.gdb.ResumeAndExpectStop('continue', 'breakpoint-hit')
14 result = self.gdb.Command('-stack-list-frames 0 2')
15 self.assertEquals(result['stack'][0]['frame']['func'], 'leaf_call')
16 self.assertEquals(result['stack'][1]['frame']['func'], 'nested_calls')
17 self.assertEquals(result['stack'][2]['frame']['func'], 'main')
19 result = self.gdb.Command('-stack-list-arguments 1 0 1')
20 self.assertEquals(result['stack-args'][0]['frame']['args'][0]['value'], '2')
21 self.assertEquals(result['stack-args'][1]['frame']['args'][0]['value'], '1')
22 self.gdb.Command('return')
23 self.gdb.ResumeAndExpectStop('finish', 'function-finished')
24 self.assertEquals(self.gdb.Eval('global_var'), '1')
27 if __name__ == '__main__':