An interpreted, interactive, object-oriented programming language
CentOS Sources
2017-08-01 71084d584ff953f5463757ec6536406320560b4d
commit | author | age
6e8c2f 1 diff -up Python-2.7.3/Lib/test/test_gdb.py.gdb-autoload-safepath Python-2.7.3/Lib/test/test_gdb.py
CB 2 --- Python-2.7.3/Lib/test/test_gdb.py.gdb-autoload-safepath    2012-04-30 15:53:57.254045220 -0400
3 +++ Python-2.7.3/Lib/test/test_gdb.py    2012-04-30 16:19:19.569941124 -0400
4 @@ -54,6 +54,19 @@ def gdb_has_frame_select():
5  
6  HAS_PYUP_PYDOWN = gdb_has_frame_select()
7  
8 +def gdb_has_autoload_safepath():
9 +    # Recent GDBs will only auto-load scripts from certain safe
10 +    # locations, so we will need to turn off this protection.
11 +    # However, if the GDB doesn't have it, then the following
12 +    # command will generate noise on stderr (rhbz#817072):
13 +    cmd = "--eval-command=set auto-load safe-path /"
14 +    p = subprocess.Popen(["gdb", "--batch", cmd],
15 +                         stderr=subprocess.PIPE)
16 +    _, stderr = p.communicate()
17 +    return '"on" or "off" expected.' not in stderr
18 +    
19 +HAS_AUTOLOAD_SAFEPATH = gdb_has_autoload_safepath()
20 +
21  class DebuggerTests(unittest.TestCase):
22  
23      """Test that the debugger can debug Python."""
24 @@ -112,15 +125,28 @@ class DebuggerTests(unittest.TestCase):
25                      'set print entry-values no',
26  
27                      'run']
28 +
29 +        if HAS_AUTOLOAD_SAFEPATH:
30 +            # Recent GDBs will only auto-load scripts from certain safe
31 +            # locations.
32 +            # Where necessary, turn off this protection to ensure that
33 +            # our -gdb.py script can be loaded - but not on earlier gdb builds
34 +            # as this would generate noise on stderr (rhbz#817072):
35 +            init_commands = ['set auto-load safe-path /']
36 +        else:
37 +            init_commands = []
38 +
39          if cmds_after_breakpoint:
40              commands += cmds_after_breakpoint
41          else:
42              commands += ['backtrace']
43  
44 +        # print init_commands
45          # print commands
46  
47          # Use "commands" to generate the arguments with which to invoke "gdb":
48          args = ["gdb", "--batch"]
49 +        args += ['--init-eval-command=%s' % cmd for cmd in init_commands]
50          args += ['--eval-command=%s' % cmd for cmd in commands]
51          args += ["--args",
52                   sys.executable]