Assuming the following variable definition:
long double inp = 2.0;
On platforms where "long double" is a double precision IEEE flaoting
point, GDB currently behaves as follow:
(gdb) set variable inp = 1.6e+308l
(gdb) p inp
$2 = inf <<<<---- !!!!
Instead, the value of "inp" should be printed as:
(gdb) p inp
$1 = 1.6e+308
The problem is due to a small error in the comparison of the exponent
versus the maximum value this exponent can take, causing us to think
that the value was too big to fit. But it isn't.
gdb/ChangeLog:
* doublest.c (convert_doublest_to_floatformat): Fix comparison
against maximum exponent value.
gdb/testsuite/ChangeLog:
* gdb.base/ldbl_e308.c, gdb.base/ldbl_e308.exp: New files.
On x86_64-windows with GCC 4.7 (using native SEH info), the debugger
behaves as follow:
(gdb) catch exception unhandled
Catchpoint 1: unhandled Ada exceptions
(gdb) run
Starting program: C:\[...]\b.exe
Catchpoint 1, unhandled CONSTRAINT_ERROR at 0x000000000040cc57 in _GCC_specific_handler ([...]) at ../../../src/libgcc/unwind-seh.c:289
[...]
This is after compiler the following code:
procedure B is
begin
raise Constraint_Error;
end B;
... using the following command:
% gnatmake -g b
When hitting the exception catchpoint, it should have gone up the stack
all the way until finding the frame corresponding to procedure B.
But if stopped short because unwind-seh.c is compiled with debugging
information, and the debugger is also able to locate that source file.
To prevent this from happening, this patch adds unwind-seh.c to the list
of files that should be ignored, regardless of other factors.
gdb/ChangeLog:
* ada-lang.h (ADA_KNOWN_RUNTIME_FILE_NAME_PATTERNS): Add entry for
"unwind-seh.c".
gdb/ChangeLog:
* ada-lang.c (ada_template_to_fixed_record_type_1): Do not
strip typedef layer when computing the fixed type's field type,
only when computing its size.
gdb/testsuite/ChangeLog:
* gdb.ada/unc_arr_ptr_in_var_rec: New testcase.
The following works...
% gdb c:\path to exe\foo.exe
(gdb) start
... unless a file or directory called "c:\path" or "c:\path to" exist.
This is what happens in the latter case:
(gdb) start
[...]
Error creating process C:\path to exe\foo.exe (error 193).
This is because we are calling CreateProcess (et al) without specifying
the lpApplicationName, so Windows determines the name of the executable
using the second argument, which is the entire command line. This
command line is a space-separated list of tokens, so the space in
the path to the executable which potentially creates an ambiguity.
The ambiguity is automatically resolved unless we're in the situation
above.
The solution, as suggested by the MSDN documentation for CreateProcess
is to quote the executable name.
gdb/ChangeLog:
* windows-nat.c (windows_create_inferior) [!__CYGWIN__]:
New local variable args_len.
Quote the name of the executable when computing the command line.
On ppc-aix, type wchar_t is 2 bytes long, so override the default
target-wide-charset (UTF-32) with UTF-16. This allows us to print
wide characters correctly.
gdb/ChangeLog:
* rs6000-aix-tdep.c (rs6000_aix_auto_wide_charset): New function.
(rs6000_aix_init_osabi): Set auto_wide_charset gdbarch method.
Type wchar_t is only 2 bytes long on x86_64-windows.
gdb/ChangeLog:
* amd64-windows-tdep.c (amd64_windows_auto_wide_charset): New
function.
(amd64_windows_init_abi): Set auto_wide_charset gdbarch method
to amd64_windows_auto_wide_charset.
Due to the way this function is registers, we know that given bfd's
flavour should always be bfd_target_xcoff_flavour, thus making
the former test always true, which means that this function should
always return GDB_OSABI_AIX, and never return GDB_OSABI_UNKNOWN.
This patch also fixes a typo detected by Tom Tromey that caused
the test itself to be completely ineffective.
gdb/ChangeLog (by Tom Tromey and Joel Brobecker):
* rs6000-aix-tdep.c (rs6000_aix_osabi_sniffer): Replace
inneffective if condition by gdb assertion. Add function
description comment.
This documents a constaint that struct exp_descriptor's "op_name"
method implementation should obey. This might not have been part
of the initial design, but is currently true of all instantiations,
and already assumed by the current users.
gdb/ChangeLog:
* parser-defs.h (struct exp_descriptor): Document constraint
on return value for "op_name" callbacks.
... and building with GCC.
gdb/ChangeLog:
* configure.ac: Build with -DMS_WIN64 if building with Python
enabled using GCC on amd64-windows.
* configure: Regenerate.
* linespec.c (struct ls_parser): New member keyword_ok.
(linespec_lexer_lex_string): Add comment.
(linespec_lexer_lex_one): Ignore keywords if it's the wrong place
for one.
(parse_linespec): Set keyword_ok.
testsuite/
* gdb.linespec/ls-errs.exp: Change tests of "b if|task|thread".
* gdb.linespec/thread.c: New file.
* gdb.linespec/thread.exp: New file.
Fix crash during stepping on ppc32.
* ppc-linux-tdep.c (powerpc_linux_in_dynsym_resolve_code): Test NULL
SYM.
gdb/testsuite/
Fix crash during stepping on ppc32.
* gdb.base/step-symless.c: New file.
* gdb.base/step-symless.exp: New file.
Trying to run any program on AIX triggers a failed assertion:
(gdb) run
Starting program: /[...]/simple_main
/[...]/gdb_bfd.c:288: internal-error: gdb_bfd_unref: Assertion `gdata->refc >= 1' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
Quit this debugging session? (y or n)
What happens is that we have a loop where we forgot to update
the value of "last", resulting in the loop unref'ing the same
BFD over and over again. We bomb the second time around, when
triggering an assertion on the ref counter.
gdb/ChangeLog:
* rs6000-nat.c (add_vmap): Set "last" to "next" after having
unref'ed it.
gdb/ChangeLog
* target.c (simple_search_memory): Include access length in
warning message.
gdb/gdbserver/ChangeLog
* server.c (handle_search_memory_1): Include access length in
warning message.
gdb/testsuite/ChangeLog
Test find command on unmapped memory.
* gdb.base/find-unmapped.c: New file.
* gdb.base/find-unmapped.exp: New file.
Moving some sparc-specific routines out of sol-thread.c into their
own (new) file.
gdb/ChangeLog:
* sol-thread.c (ps_lgetxregsize, ps_lgetxregs, ps_lsetxregs):
Move these functions to sparc-sol-thread.c.
* sparc-sol-thread.c: New file.
* configure.ac: Add sparc-sol-thread.o to CONFIG_OBS and
sparc-sol-thread.c to CONFIG_SRCS for sparc-solaris native
configurations.
* configure: Regenerate.
Add a declaration for procfs_find_LDT_entry in order to prevent
a compiler warning about this function missing one. This also
helps making sure that declaration and definition remain consistent.
gdb/ChangeLog:
* procfs.h (procfs_find_LDT_entry): Add declaration.
* sol-thread.c (ps_lgetLDT): Delete local declaration of
function procfs_find_LDT_entry.
This function is used as a target_ops callback. The function
implemention was recently changed, but the declaration wasn't
updated accordingly.
This fixes a build failure on Solaris.
gdb/ChangeLog:
* procfs.c (proc_find_memory_regions): Fix declaration.
(read_common_block): Handle child DIEs with
DW_AT_data_member_location.
(new_symbol_full): Add special case for common blocks.
gdb/testsuite
* gdb.dwarf2/dw2-common-block.S: New file.
* gdb.dwarf2/dw2-common-block.exp: New file.
gdb/ChangeLog
* breakpoint.c (update_global_location_list): Ignore previous
duplicate status of a breakpoint when starting a new scan for
duplicate breakpoints.
gdb/testsuite/ChangeLog
* gdb.base/duplicate-bp.c: New file.
* gdb.base/duplicate-bp.exp: New file.
* breakpoint.c (invalidate_bp_value_on_memory_change): Expand
parameter LEN to ssize_t.
gdb/doc/ChangeLog:
observer.texi (memory_changed): Expand parameter LEN to ssize_t.
* c-typeprint.c (c_type_print_varspec_suffix): Remove cast and
use plongest to print the array size.
testsuite/ChangeLog:
* gdb.base/longest-types.c: New test case.
* gdb.base/longest-types.exp: New test case.
Fix internal error on canonicalization of clang types.
* cp-name-parser.y (operator): New comment at make_operator call for
new, delete, new[] and delete[].
(exp): Use "sizeof ". Add new comment at make_operator call.
gdb/testsuite/
Fix internal error on canonicalization of clang types.
* gdb.dwarf2/dw2-canonicalize-type.S: New file.
* gdb.dwarf2/dw2-canonicalize-type.exp: New file.
* lib/gdb.exp (gdb_file_cmd): Catch also GDB internal error.
Fix disassemble without parameters in tailcall frame.
* cli/cli-cmds.c (disassemble_current_function): Use
get_frame_address_in_block.
gdb/testsuite/
Fix disassemble without parameters in tailcall frame.
* gdb.arch/amd64-entry-value.exp (down, disassemble): New tests.
gdb/ChangeLog
* findvar.c (read_frame_register_value): Mark the result value as
optimized out if any of the input registers have been optimized out.
gdb/testsuite/ChangeLog
* gdb.dwarf2/dw2-op-out-param.S: New file.
* gdb.dwarf2/dw2-op-out-param.exp: New file.
* python/python.c (finalize_python): New function.
(_initialize_python): Make a final cleanup.
testsuite
* gdb.python/python.exp: Test atexit.register.
* sh-tdep.c (sh_register_convert_to_virtual)
(sh_register_convert_to_raw): Add a gdbarch parameter. Update
all callers. Just do a memcpy if not the little-endian case.
2012-09-18 Sergio Durigan Junior <sergiodj@redhat.com>
* infcmd.c (_initialize_infcmd): Register `j' as an alias for
`jump'.
gdb/doc/ChangeLog:
2012-09-18 Sergio Durigan Junior <sergiodj@redhat.com>
* gdb.texinfo (jump): Mention new alias `j' for `jump'.
The debugger sometimes fails to re-set a breakpoint as follow,
causing it to become disabled:
(gdb) b nested_sub
Breakpoint 1 at 0x401cec: file foo.adb, line 7.
(gdb) b do_nothing
Breakpoint 2 at 0x401cdc: file pck.adb, line 4.
(gdb) run
Starting program: /[...]/foo
Error in re-setting breakpoint 1: Function "nested_sub" not defined.
Breakpoint 2, pck.do_nothing () at pck.adb:4
4 null;
This only happens on machines where the debug-file-directory is
a valid directory name.
The reason behind the error is that the linespec code that re-sets
the breakpoints uses the current_language global when iterating
over a symtab's symbols. However, the that global gets switched from
Ada to C during the startup phase, probably as a side-effect of stopping
in some system code for which debugging info is available. The fix
is to make sure that we use the correct language.
gdb/ChangeLog:
* linespec.c (iterate_over_all_matching_symtabs): Use the correct
language when iterating over symbols.
gdb/testsuite/ChangeLog:
* gdb.ada/bp_reset: New testcase.
* common/linux-ptrace.c: Change __i386__ to __i386__ || __x86_64__.
(linux_ptrace_test_ret_to_nx): Extend comment for x86_64. Change
__i386__ to __i386__ || __x86_64__. Extend code also for __x86_64__.
Extend code also for PaX support. Convert all gdb_assert to warning
calls.
Implement auto-load user conveniences suggested by Doug Evans.
* auto-load.c: Include top.h.
(file_is_auto_load_safe): New variable advice_printed. Print advice.
(_initialize_auto_load): New variable scripts_directory_help. Mention
GDBPY_AUTO_FILE_NAME and GDB_AUTO_FILE_NAME for set auto-load
scripts-directory. Document in online help one can use also files for
set auto-load safe-path.
* python/py-auto-load.c: (GDBPY_AUTO_FILE_NAME): Move it from here ...
* python/python.h (GDBPY_AUTO_FILE_NAME): ... to here.
ELTLEN and use TYPE_LENGTH directly.
(m2_val_print): Likewise.
* m68k-tdep.c (m68k_svr4_extract_return_value): Eliminate
variable LEN and use TYPE_LENGTH directly.
(m68k_svr4_store_return_value): Likewise.
* mips-tdep.c (mips_o32_push_dummy_call): Eliminate variable
ARGLEN and use TYPE_LENGTH directly.
(mips_o64_push_dummy_call): Likewise.
* s390-tdep (s390_function_arg_pass_by_reference): Eliminate
variable LENGTH and use TYPE_LENGTH directly.
(s390_function_arg_float): Likewise.
(s390_function_arg_integer): Likewise.
(s390_push_dummy_call): Likewise.
(s390_return_value_convention): Likewise.
* spu-tdep.c (spu_push_dummy_call): Eliminate LEN and use
TYPE_LENGTH directly.
* cli/cli-decode.c (add_setshow_zuinteger_unlimited_cmd): New.
Update comment to add_setshow_integer_cmd.
* cli/cli-setshow.c (do_set_command): Handle case
'var_zuinteger_unlimited'.
(do_show_command): Likewise.
* cli/cli-cmds.c (init_cmds): Call add_setshow_zuinteger_unlimited_cmd
for command 'remotetimeout'.
* command.h (enum var_types): New zuinteger_unlimited. Update comment
to var_integer.
* source.c (_initialize_source): Call add_setshow_zuinteger_unlimited_cmd
for command 'set listsize'.
gdb/doc/
* gdb.texinfo (List): Describe the meaning of 0 and -1 in
'set listsize'.
gdb/testsuite/
* gdb.base/list.exp (set_listsize): Don't set arg to "unlimited"
when it is less than 0.
PR 14119
* frame.c (skip_inlined_frames): Skip also TAILCALL_FRAME frames.
(frame_pop): Drop also TAILCALL_FRAME frames.
* infcmd.c (finish_command): Ignore also TAILCALL_FRAME frames.
gdb/testsuite/
PR 14119
* gdb.arch/amd64-tailcall-ret.S: New file.
* gdb.arch/amd64-tailcall-ret.c: New file.
* gdb.arch/amd64-tailcall-ret.exp: New file.
* gdb.reverse/amd64-tailcall-reverse.S: New file.
* gdb.reverse/amd64-tailcall-reverse.c: New file.
* gdb.reverse/amd64-tailcall-reverse.exp: New file.
PR 14548
* infrun.c (handle_inferior_event): Do not reverse-continue back to the
function start if we are already at function start. Both for
reverse-next and for reverse-step into function without line number
info.
gdb/testsuite/
PR 14548
* gdb.reverse/singlejmp-reverse-nodebug.S: New file.
* gdb.reverse/singlejmp-reverse-nodebug.c: New file.
* gdb.reverse/singlejmp-reverse.S: New file.
* gdb.reverse/singlejmp-reverse.c: New file.
* gdb.reverse/singlejmp-reverse.exp: New file.
Code cleanup - rename 'inline' depth to 'artificial' depth.
* breakpoint.c (set_momentary_breakpoint): Rename at a caller to
frame_id_artificial_p, extend the comment.
* dwarf2-frame-tailcall.c (tailcall_frame_this_id): Rename at a user.
* frame.c (fprint_frame_id): Rename at a user, change debug output
text to "artificial=".
(skip_inlined_frames): Rename to ...
(skip_artificial_frames): ... here. Extend the comment.
(get_stack_frame_id, frame_unwind_caller_id): Rename at a caller.
(frame_id_inlined_p): Rename to ...
(frame_id_artificial_p): ... here. Rename at a user.
(frame_id_eq, frame_id_inner, frame_unwind_caller_pc)
(frame_unwind_caller_pc_if_available, frame_unwind_caller_arch): Rename
at a user.
* frame.h (struct frame_id): Rename inline_depth to artificial_depth.
Extend the comment.
(frame_id_inlined_p): Rename to ...
(frame_id_artificial_p): ... here.
* inline-frame.c (inline_frame_this_id): Rename at a user.
gdb/ChangeLog
* c-typeprint.c (c_type_print_varspec_suffix): Display the size of
vector variables using vector_size syntax rather than array
syntax.
gdb/testsuite/ChangeLog
* gdb.xml/tdesc-regs.exp: Update expected output for new
vector_size syntax of vector types.
a new "_gdb" module for code implemented in C, and using reload/__import__
instead of exec.
gdb/
* python/lib/gdb/__init__.py: Import * from _gdb.
(GdbOutputFile, sys.stdout, GdbOutputErrorFile, sys.stderr,
prompt_hook, sys.argv): Moved from finish_python_initialization.
(pretty_printers, PYTHONDIR): Moved from _initialize_python.
(packages, auto_load_packages): New list and function replacing
module_dict and auto-loading code, using __file__ instead of
gdb.PYTHONDIR and reload/__import__ instead of exec.
(GdbSetPythonDirectory): Replacing function of the same name
from finish_python_initialization, using reload/__import__ instead
of exec, as well as call auto_load_packages.
* python/py-prettyprint.c (find_pretty_printer_from_gdb): Check
gdb_python_module and not gdb_module.
* python/python-internal.h (gdb_python_module): Declare.
* python/python.c (gdb_python_module): New global.
(before_prompt_hook): Check gdb_python_module and not gdb_module.
(_initialize_python): Rename gdb module to _gdb.
Move gdb.PYTHONDIR and gdb.pretty_printer to lib/gdb/__init__.py.
(finish_python_initialization): Move Python code to
lib/gdb/__init__.py; instead, set up sys.path and import gdb into
__main__.
gdb/testsuite/
* gdb.python/python.exp (Test stderr location): Update module
location of GDB-specific sys.stderr.
(Test stdout location): Ditto for sys.stdout.
* Makefile.in (COMMON_OBS): Add registry.o.
* registry.c: New file.
* registry.h (struct registry_container): Declare.
(registry_data_callback): New typedef.
(struct registry_data, struct registry_data_registration, struct
registry_data_registry): New type.
(register_data_with_cleanup, registry_alloc_data)
(registry_callback_adaptor, registry_clear_data)
(registry_container_free_data, registry_set_data, registry_data):
Declare.
(DEFINE_REGISTRY): Refactor structures and functions as shims over
the new common structures and functions.
(DECLARE_REGISTRY): Declare struct TAG ## _data. Use the tagged
callback typedefs.
The build_address_symbolic funnction filters out data symbols if
their size is set to zero. But the problem is that the COFF symbol
table (for instance) does not provide any size information, leaving
the size to its default value of zero, thus always triggering
the filter.
This shows up when trying to print the address of a global variable
when debugging a Windows executable, for instance.
gdb/ChangeLog:
* symtab.h (struct minimal_symbol) [has_size]: New field.
(MSYMBOL_SIZE): Adjust to forbid macro from being used as lvalue.
(SET_MSYMBOL_SIZE, MSYMBOL_HAS_SIZE): New macros.
* printcmd.c (build_address_symbolic): Only filter out zero-sized
minimal symbols if the symbol's size is actually known.
* minsyms.c (prim_record_minimal_symbol_full): Adjust setting
of msymbol's size field. Add comment.
* elfread.c (elf_symtab_read, elf_rel_plt_read): Use
SET_MSYMBOL_SIZE to set the minimal symbol size.
gdb/ChangeLog:
* minsyms.c (install_minimal_symbols): Use memset to fill entire
minimal_symbol struct object, rather than setting some of its
fields one by one.
gdb/ChangeLog:
* c-typeprint.c (c_type_print_varspec_prefix): Pass through the
passed_a_ptr flag when displaying typedef types.
gdb/testsuite/ChangeLog:
* gdb.base/ptype.exp: Test ptype on a pointer to a typedef.
Assuming the following declarations:
type Discriminants_Record (A : Integer; B : Boolean) is record
C : Float;
end record;
Z : Discriminants_Record := (A => 1, B => False, C => 2.0);
If variable Z is not used, and the compiler optimizes it out,
GDB would crash as follow:
(gdb) print Z
/[...]/gdb/valops.c:1121: internal-error: Unexpected lazy value type.
This is because the ada-lang module forgot to set the optimized_out
flag in the value returned by ada_evaluate_subexp during the value's
"fixing" process. Later on, when trying to print the resulting value,
GDB finds that the value is still lazily allocated, and thus tries to
fetch it. But this is not allowed for not_lval values, hence the internal
error.
gdb/ChangeLog:
* ada-lang.c (coerce_unspec_val_to_type): Make sure that
the optimized_out flag is preserved.
gdb/testsuite/ChangeLog:
* gdb.ada/optim_drec: New testcase.
* gdbtypes.h (BOOL_PTR_CONVERSION_BADNESS): Rename to ...
(BOOL_CONVERSION_BADNESS): ... this.
* gdbtypes.c (BOOL_PTR_CONVERSION_BADNESS): Likewise.
(rank_one_type): Allow all boolean conversions
permitted by the standard.
* gdb.cp/converts.cc (A::A): Add ctor.
(A::member_): Add member.
(enum my_enum): New enumeration.
(main): Add calls to foo1_7 with various
permitted arguments.
* gdb.cp/converts.exp: Add tests for boolean
conversions permitted by the standard.
Do not enable -lmcheck by default when Python is enabled with
threading support.
* configure.ac: (python_has_threads) New variable, by testing
if WITH_THREAD is defined in Python.h.
Move --enable-lmcheck after --with-python.
Do not enable -lmcheck by default if python_has_threads=yes.
Warn if --enable-lmcheck and python_has_threads=yes.
* configure: Regenerate.
* mi/mi-cmds.c (mi_cmds): New macros DEF_MI_CMD_CLI
DEF_MI_CMD_MI DEF_MI_CMD_CLI_1 and DEF_MI_CMD_CLI_1.
Update some commands.
* mi/mi-cmds.h (struct mi_cmd) <suppress_notification>: New field.
* mi/mi-main.c (mi_cmd_execute): Set '*parse->cmd->suppress_notification'
to 1.
* cli/cli-cmds.c (max_user_call_depth): Add 'unsigned'.
(init_cmds): Call add_setshow_uinteger_cmd for command
'max-user-call-depth'.
* cli/cli-script.c (execute_user_command): Add 'unsigned' to the
declaration of 'max_user_call_depth'.
* frame.c (backtrace_limit): Add 'unsigned'.
(_initialize_frame): Call add_setshow_uinteger_cmd for command
'limit'.
* remote.c (remoteaddresssize): Add 'unsigned'.
(remote_address_masked): Change local var 'address_size' to
'unsigned'.
(_initialize_remote): Call add_setshow_uinteger_cmd for
'remoteaddresssize'.
* top.c (history_size): Add 'unsigned'.
(show_commands): Change local variables to 'unsigned'.
(set_history_size_command): Don't check history_size is negative.
Adjust the condition to call unstifle_history and set history_size
to UNIT_MAX.
PR gdb/14428
gdb/
* infcmd.c (default_print_one_register_info): New, factored out
from default_print_registers_info.
(default_print_registers_info): Use it. Mark value unavailable if
necessary.
(registers_info): Print user registers with
default_print_one_register_info.
gdb/testsuite/
* gdb.base/pc-fp.exp: Adjust expected output of 'info registers pc fp'.
* breakpoint.c (parse_breakpoint_sals) <(*address) == NULL>: New
variable pc. Call find_pc_line instead of find_pc_overlay, restore
original PC for it.
gdb/testsuite/
* gdb.base/break-caller-line.c: New file.
* gdb.base/break-caller-line.exp: New file.
PR gdb/14494.
* dwarf2read.c (dwarf2_locate_sections): Move variable aflag here.
Move the SEC_HAS_CONTENTS check here - for any NAMES use.
(dwarf2_locate_sections) <eh_frame>: Move the variable and check from
here.
* dwarf2read.c (dwarf2_locate_sections): Move variable aflag here.
Move the SEC_HAS_CONTENTS check here - for any NAMES use.
(dwarf2_locate_sections) <eh_frame>: Move the variable and check from
here.
2012-08-23 Khoo Yit Phang <khooyp@cs.umd.edu>
Document how to return from "python-interactive" to GDB.
* gdb.texinfo (Python Commands): Update documentation.
2012-08-22 Khoo Yit Phang <khooyp@cs.umd.edu>
Add a new "python-interactive" command that starts a standard
Python interactive prompt with "pi" as alias, and add "py" as
an alias to "python".
* gdb.texinfo (Python Commands): Document the new commands.
gdb/
* infrun.c (_initialize_infrun) <handle command help text>:
Mention that multiple signals are supported.
gdb/testsuite/
* gdb.base/help.exp: Adjust to "handle" help text change.
Python interactive prompt with "pi" as alias, and add "py" as
an alias to "python".
* NEWS: Mention the new commands.
* doc/gdb.texinfo (Python Commands): Document the new
commands.
* python/python.c (eval_python_command): New function.
(python_interactive_command): For "python-interactive" with
arguments, call eval_python_command. For "python-interactive"
without arguments, call PyRun_InteractiveLoop.
(_initialize_python): Add "python-interactive" command with
"pi" as alias, and add "py" as an alias to "python".