def _run_gdb_for_bare_metal_arm(runner_args, test_args): gdb = toolchain.get_tool(build_options.OPTIONS.target(), 'gdb') bare_metal_loader_index = runner_args.index( toolchain.get_nonsfi_loader()) # For Bare Metal ARM, we use qemu's remote debugging interface. args = (runner_args[:bare_metal_loader_index] + ['-g', '4014'] + runner_args[bare_metal_loader_index:] + test_args) # Create a new session using setsid. See the comment in # _run_gdb_for_nacl for detail. qemu_arm_proc = subprocess.Popen(args, stderr=subprocess.STDOUT, preexec_fn=os.setsid) gdb_command = _get_gdb_command_to_inject_bare_metal_gdb_py(test_args[0]) args = ([gdb, '-ex', 'target remote :4014'] + gdb_command + gdb_util.get_args_for_stlport_pretty_printers() + ['-ex', 'echo \n*** Type \'continue\' or \'c\' to start debugging ***\n\n', toolchain.get_nonsfi_loader()]) subprocess.call(args) qemu_arm_proc.kill()
def _run_gdb_for_bare_metal(runner_args, test_args): gdb = toolchain.get_tool(build_options.OPTIONS.target(), 'gdb') bare_metal_loader_index = runner_args.index( toolchain.get_nonsfi_loader()) gdb_command = _get_gdb_command_to_inject_bare_metal_gdb_py(test_args[0]) args = (runner_args[:bare_metal_loader_index] + [gdb] + gdb_command + gdb_util.get_args_for_stlport_pretty_printers() + ['-ex', 'echo \n*** Type \'run\' or \'r\' to start debugging ***\n\n', '--args'] + runner_args[bare_metal_loader_index:] + test_args) subprocess.call(args)