OSDN Git Service

pf3gnuchains/sourceware.git
13 years agogdb
tromey [Sat, 19 Feb 2011 06:12:06 +0000 (06:12 +0000)]
gdb
* common/ax.def: New file.
* ax.h (enum agent_op): Use ax.def.
* ax-general.c (aop_map): Use ax.def.
gdbserver
* Makefile.in (tracepoint-ipa.o): Depend on ax.def.
(tracepoint.o): Likewise.
* tracepoint.c (enum gdb_agent_op): Use ax.def.
(gdb_agent_op_names): Likewise.

13 years agogdb
tromey [Sat, 19 Feb 2011 05:55:42 +0000 (05:55 +0000)]
gdb
* ax-general.c (aop_map): Add pick and rot.
* dwarf2loc.c (compile_dwarf_to_ax) <DW_OP_over>: Reimplement.
<DW_OP_rot>: Implement.
* ax.h (enum agent_op) <aop_pick, aop_rot>: New constants.
(ax_pick): Declare.
* ax-general.c (ax_pick): New function.
doc
* agentexpr.texi (Bytecode Descriptions): Document pick and rot.
gdbserver
* tracepoint.c (enum gdb_agent_op) <gdb_agent_op_pick,
gdb_agent_op_rot>: New constants.
(gdb_agent_op_names): Add pick and roll.
(eval_agent_expr) <gdb_agent_op_pick, gdb_agent_op_rot>: New
cases.

13 years ago * Makefile.in (HFILES_NO_SRCDIR): Don't mention ada-operator.inc.
tromey [Sat, 19 Feb 2011 05:31:16 +0000 (05:31 +0000)]
* Makefile.in (HFILES_NO_SRCDIR): Don't mention ada-operator.inc.

13 years agogdb/
jkratoch [Sat, 19 Feb 2011 04:10:44 +0000 (04:10 +0000)]
gdb/
* cp-support.c (make_symbol_overload_list_namespace): Do not call
make_symbol_overload_list_block with NULL BLOCK.
* valarith.c (unop_user_defined_p): Resolve also TYPE_CODE_TYPEDEF.

gdb/testsuite/
* gdb.cp/typedef-operator.exp: New file.
* gdb.cp/typedef-operator.cc: New file.

13 years ago PR ld/12376
danglin [Sat, 19 Feb 2011 03:20:28 +0000 (03:20 +0000)]
PR ld/12376
emulparams/hppalinux.sh (DATA_ADDR): Define.
(SHLIB_DATA_ADDR): Likewise.

13 years ago* dcrt0.cc (dll_crt0_1): Add a CYGHEAP_DEBUG conditional for debugging which
cgf [Sat, 19 Feb 2011 02:43:22 +0000 (02:43 +0000)]
* dcrt0.cc (dll_crt0_1): Add a CYGHEAP_DEBUG conditional for debugging which
allocates a lot of space at startup.

13 years ago * breakpoint.c (get_number_trailer): No longer accept a NULL PP.
palves [Sat, 19 Feb 2011 01:43:50 +0000 (01:43 +0000)]
* breakpoint.c (get_number_trailer): No longer accept a NULL PP.
* breakpoint.h (get_number_or_range): Declare.
* printcmd.c (ALL_DISPLAYS): Declare.
(delete_display): Reimplement taking a display pointer.
(undisplay_command): Accept a range of displays to delete, using
get_number_or_range.

13 years ago * cygwin.sc: Set alignment of .cygheap section to 64K.
corinna [Sat, 19 Feb 2011 01:15:19 +0000 (01:15 +0000)]
* cygwin.sc: Set alignment of .cygheap section to 64K.

13 years ago2010-02-18 Rafael Ávila de Espíndola <respindola@mozilla.com>
espindola [Fri, 18 Feb 2011 23:55:32 +0000 (23:55 +0000)]
2010-02-18  Rafael Ávila de Espíndola <respindola@mozilla.com>

* symtab.cc (Symbol::should_add_dynsym_entry) Return false for
plugin only symbols.
(Symbol_table::sized_finalize_symbol) Mark symbol only present
in plugin files as not needed in the symbol table.

13 years ago * c-valprint.c (c_val_print): Add embedded_offset to address
muller [Fri, 18 Feb 2011 23:17:37 +0000 (23:17 +0000)]
* c-valprint.c (c_val_print): Add embedded_offset to address
for arrays of unspecified length.
* p-valprint.c (pascal_val_print): Likewise.

13 years ago2011-02-18 Yao Qi <yao@codesourcery.com>
qiyao [Fri, 18 Feb 2011 14:01:51 +0000 (14:01 +0000)]
2011-02-18  Yao Qi  <yao@codesourcery.com>

* gdb/arm-tdep.c (arm_displaced_step_copy_insn): Move code to ...
(arm_process_displaced_insn): .. here. Remove parameter INSN.
(thumb_process_displaced_insn): New.
* gdb/arm-linux-tdep.c (arm_linux_displaced_step_copy_insn): Update
call to arm_process_displaced_insn.
* gdb/arm-tdep.h : Update declaration of arm_process_displaced_insn.

13 years ago*** empty log message ***
gdbadmin [Fri, 18 Feb 2011 09:00:33 +0000 (09:00 +0000)]
*** empty log message ***

13 years agodaily update
amodra [Fri, 18 Feb 2011 08:00:05 +0000 (08:00 +0000)]
daily update

13 years ago2011-02-17 Michael Snyder <msnyder@vmware.com>
msnyder [Fri, 18 Feb 2011 07:08:12 +0000 (07:08 +0000)]
2011-02-17  Michael Snyder  <msnyder@vmware.com>

* gdb.threads/thread-find.exp: Fix regular expressions.

13 years agoPrefix filenames with gdb.trace/
palves [Fri, 18 Feb 2011 04:06:07 +0000 (04:06 +0000)]
Prefix filenames with gdb.trace/

13 years ago * dwarf2loc.h (dwarf2_compile_expr_to_ax): Declare.
tromey [Fri, 18 Feb 2011 01:20:37 +0000 (01:20 +0000)]
* dwarf2loc.h (dwarf2_compile_expr_to_ax): Declare.
* dwarf2loc.c (dwarf2_compile_expr_to_ax): Rename from
compile_dwarf_to_ax.  No longer static.  Call
dwarf2_compile_cfa_to_ax.
(locexpr_tracepoint_var_ref): Update.
(loclist_tracepoint_var_ref): Update.
* dwarf2-frame.h (dwarf2_compile_cfa_to_ax): Declare.
* dwarf2-frame.c (execute_cfa_program): Remove 'this_frame'
argument; add 'gdbarch' and 'pc'.
(dwarf2_compile_cfa_to_ax): New function.
(dwarf2_frame_cache): Update.

13 years agoRevert the last change to elf64-x86-64.c.
hjl [Thu, 17 Feb 2011 22:51:51 +0000 (22:51 +0000)]
Revert the last change to elf64-x86-64.c.

13 years ago[Ada] Fix unconstrained packed array size
brobecke [Thu, 17 Feb 2011 15:42:55 +0000 (15:42 +0000)]
[Ada] Fix unconstrained packed array size

When ada-lang transforms an array descriptor type (an XUP structure)
into an array type, the size of the array type is computed by using
the element size, and multiplying it by the number of elements in
that array. This does not work, however, for packed arrays, where
the *packed* size in bits needs to be used.

This usually does not cause any problem, because we end up reading
more memory than needed.  However, we have observed on LynxOS
a memory error while trying to read the entire array, because
the larger-than-needed read tried to read past the end of the stack
into inaccessible memory.

This patch fixes the problem by correctly computing the array size
in bytes in the case of packed arrays.

gdb/ChangeLog:

        * ada-lang.c (ada_type_of_array): Fix the size of the array
        in the case of an unconstrained packed array.

gdb/testsuite/ChangeLog:

        * gdb.ada/packed_array: Expand testcase to test printing of
        unconstrained packed array.

13 years agodw2-ranges.exp: simplify using clean_restart
brobecke [Thu, 17 Feb 2011 14:21:29 +0000 (14:21 +0000)]
dw2-ranges.exp: simplify using clean_restart

gdb/testsuite/ChangeLog:

        * gdb.dwarf2/dw2-ranges.exp: Simplify using clean_restart.

13 years ago2011-02-17 Yao Qi <yao@codesourcery.com>
qiyao [Thu, 17 Feb 2011 11:15:18 +0000 (11:15 +0000)]
2011-02-17  Yao Qi  <yao@codesourcery.com>

* common/Makefile.in: Add more targets for make.

13 years ago*** empty log message ***
gdbadmin [Thu, 17 Feb 2011 09:00:03 +0000 (09:00 +0000)]
*** empty log message ***

13 years agodaily update
amodra [Thu, 17 Feb 2011 08:00:04 +0000 (08:00 +0000)]
daily update

13 years ago * dwarf2loc.c (unimplemented): Fix typo.
tromey [Thu, 17 Feb 2011 06:45:30 +0000 (06:45 +0000)]
* dwarf2loc.c (unimplemented): Fix typo.

13 years ago * dwarf2loc.c (unimplemented): Handle unnamed opcodes.
tromey [Thu, 17 Feb 2011 06:32:03 +0000 (06:32 +0000)]
* dwarf2loc.c (unimplemented): Handle unnamed opcodes.
(compile_dwarf_to_ax) <default>: Use unimplemented.
<DW_OP_deref>: Update.
(disassemble_dwarf_expression): Update.
* dwarf2read.c (dwarf_stack_op_name): Remove 'def' argument.
(decode_locdesc): Update.
* dwarf2expr.h (dwarf_stack_op_name): Update.

13 years ago * ax.h (struct aop_map) <name>: Now const.
tromey [Thu, 17 Feb 2011 06:02:27 +0000 (06:02 +0000)]
* ax.h (struct aop_map) <name>: Now const.

13 years agoChange x32 LIBPATH_SUFFIX to x32.
hjl [Thu, 17 Feb 2011 04:14:41 +0000 (04:14 +0000)]
Change x32 LIBPATH_SUFFIX to x32.

2011-02-16  H.J. Lu  <hongjiu.lu@intel.com>

* emulparams/elf32_x86_64.sh (LIBPATH_SUFFIX): Changed to
x32 for x32.

13 years ago2011-02-16 Tom Tromey <tromey@redhat.com>
palves [Thu, 17 Feb 2011 03:07:54 +0000 (03:07 +0000)]
2011-02-16  Tom Tromey  <tromey@redhat.com>

gdb/
* ax-gdb.c.c (gen_expr) <UNOP_MEMVAL>: Handle value kinds other
than axs_rvalue.

2011-02-16  Pedro Alves  <pedro@codesourcery.com>

gdb/testsuite/
* collection.c (globalarr3): New global.
(main): Initialize it before collecting, and and clear it
afterwards.
* collection.exp (gdb_collect_globals_test): Test collecting with
'{type} addr', where the addr expression is not an rvalue.

13 years agoFix comment typo.
rth [Thu, 17 Feb 2011 01:51:23 +0000 (01:51 +0000)]
Fix comment typo.

13 years agoDon't check relocation overflow for x32.
hjl [Wed, 16 Feb 2011 23:58:18 +0000 (23:58 +0000)]
Don't check relocation overflow for x32.

2011-02-16  H.J. Lu  <hongjiu.lu@intel.com>

* elf64-x86-64.c (elf_x86_64_check_relocs): Check relocation
overflow only for ABI_64_P.
(elf_x86_64_relocate_section): Likewise.

13 years ago2011-02-16 Yao Qi <yao@qiyaows>
qiyao [Wed, 16 Feb 2011 23:54:39 +0000 (23:54 +0000)]
2011-02-16  Yao Qi  <yao@qiyaows>

* infrun.c (get_displaced_step_closure_by_addr): New.
* inferior.h: Declare it.
* arm-tdep.c: (arm_pc_is_thumb): Call
get_displaced_step_closure_by_addr.  Adjust MEMADDR if it
returns non-NULL.

13 years agogdb/testsuite/ChangeLog
kwerner [Wed, 16 Feb 2011 23:38:52 +0000 (23:38 +0000)]
gdb/testsuite/ChangeLog

2011-02-16  Ken Werner  <ken.werner@de.ibm.com>

        * gdb.opencl/datatypes.exp: Allow "false" when printing the content of
        a bool variable. Expect correct OpenCL names for vector types. Use the
        uc3 variable name instead of referring to the uchar3 built-in type.
        Escape the asterisk at the half pointer test.

13 years ago2011-02-16 Pedro Alves <pedro@codesourcery.com>
palves [Wed, 16 Feb 2011 21:59:03 +0000 (21:59 +0000)]
2011-02-16  Pedro Alves  <pedro@codesourcery.com>
    Jan Kratochvil  <jan.kratochvil@redhat.com>

gdb/
* tracepoint.c (memrange_sortmerge): Fix list A's end calculation.

2011-02-16  Pedro Alves  <pedro@codesourcery.com>

gdb/testsuite/
* collection.c (globalarr2): New global.
(main): Initialize it before collecting, and and clear it
afterwards.
* collection.exp (gdb_collect_globals_test): Test collecting
overlapping memory ranges.

13 years agoFix pasto...
palves [Wed, 16 Feb 2011 20:57:41 +0000 (20:57 +0000)]
Fix pasto...

13 years ago gdb/
palves [Wed, 16 Feb 2011 20:55:58 +0000 (20:55 +0000)]
gdb/
* value.c (value_contents_copy_raw): Extend describing comment.
Assert that the destination contents we're overwriting are wholly
available.
* value.h (value_contents_copy): Extend describing comment.

13 years ago * value.c (value_available_contents_eq): Remove redundant local
palves [Wed, 16 Feb 2011 19:13:52 +0000 (19:13 +0000)]
* value.c (value_available_contents_eq): Remove redundant local
variables.  Fix available contents comparision.
* value.h (value_available_contents_eq): Extend describing
comment.

13 years ago2011-02-16 Yao Qi <yao@codesourcery.com>
qiyao [Wed, 16 Feb 2011 18:46:08 +0000 (18:46 +0000)]
2011-02-16  Yao Qi  <yao@codesourcery.com>

        * thread.c (info_threads_command): Add missing i18n markup and remove
        trailing newline.

13 years ago*** empty log message ***
gdbadmin [Wed, 16 Feb 2011 09:00:02 +0000 (09:00 +0000)]
*** empty log message ***

13 years agodaily update
amodra [Wed, 16 Feb 2011 08:00:05 +0000 (08:00 +0000)]
daily update

13 years ago2011-02-15 Paul Pluzhnikov <ppluzhnikov@google.com>
ppluzhnikov [Wed, 16 Feb 2011 06:43:24 +0000 (06:43 +0000)]
2011-02-15  Paul Pluzhnikov  <ppluzhnikov@google.com>

* breakpoint.c (longjmp_names): New variable.
(struct breakpoint_objfile_data): New type.
(breakpoint_objfile_key): New variable.
(msym_not_found): New variable.
(msym_not_found_p): New predicate.
(get_breakpoint_objfile_data): New function.
(create_overlay_event_breakpoint): Check per-objfile cache for
symbols first.
(create_longjmp_master_breakpoint): Likewise.
(create_std_terminate_master_breakpoint): Likewise.
(create_exception_master_breakpoint): Likewise.
(_initialize_breakpoint): Register per-objfile data key.

13 years agoFix mis-merge of changelog.
msnyder [Wed, 16 Feb 2011 06:25:05 +0000 (06:25 +0000)]
Fix mis-merge of changelog.

13 years ago2011-02-15 Paul Pluzhnikov <ppluzhnikov@google.com>
ppluzhnikov [Wed, 16 Feb 2011 06:23:34 +0000 (06:23 +0000)]
2011-02-15  Paul Pluzhnikov  <ppluzhnikov@google.com>

* breakpoint.c ((create_overlay_event_breakpoint): Const-propagate
parameter value.
(create_longjmp_master_breakpoint): Loop over longjmp names.
(create_std_terminate_master_breakpoint): Const-propagate parameter
value.
(update_breakpoints_after_exec): Adjust.
(breakpoint_re_set): Adjust.

13 years ago2011-02-15 Michael Snyder <msnyder@vmware.com>
msnyder [Wed, 16 Feb 2011 06:17:51 +0000 (06:17 +0000)]
2011-02-15  Michael Snyder  <msnyder@vmware.com>

* command.h (enum command_class): New class 'no_set_class', for
"show" commands without a corresponding "set" command.
* value.c (_initialize_values): Use 'no_set_class' for "show values".
* copying.c (_initialize_copying): Ditto for "show copying" and
"show warranty".
* cli/cli-cmds.c (init_cli_cmds): Ditto for "show commands" and
"show version".
* cli/cli-setshow.c (cmd_show_list): Skip "show" commands for
which there is no corresponding "set" command (eg. "show copying").

2011-02-14  Michael Snyder  <msnyder@vmware.com>

* gdb.texinfo (threads): Document argument for "info threads" cmd.
Document new command "thread find".

2011-02-15  Michael Snyder  <msnyder@vmware.com>

* gdb.base/default.exp: Add tests for thread commands.
* gdb.base/help.exp: Add tests for thread commands.
* gdb.threads/thread-find.exp: New test for thread find command.

13 years agoMerge gdb/common/ChangeLog back to gdb/ChangeLog.
jkratoch [Wed, 16 Feb 2011 06:14:01 +0000 (06:14 +0000)]
Merge gdb/common/ChangeLog back to gdb/ChangeLog.

13 years agogdb/
jkratoch [Wed, 16 Feb 2011 06:05:50 +0000 (06:05 +0000)]
gdb/
* Makefile.in (ACLOCAL_AMFLAGS): Add `-I ../config'.
* aclocal.m4: Regenerated with aclocal-1.11.1.
* common/configure: Regenerate with autoconf-2.64.

gdb/gdbserver/
* aclocal.m4: Regenerated with aclocal-1.11.1.

13 years agogdb/ChangeLog
kwerner [Wed, 16 Feb 2011 05:09:46 +0000 (05:09 +0000)]
gdb/ChangeLog

2011-02-15  Ken Werner  <ken.werner@de.ibm.com>

* opencl-lang.c (build_opencl_types): Set the size of the built-in
bool data type to a size of one byte.

gdb/testsuite/ChangeLog

2011-02-15  Ken Werner  <ken.werner@de.ibm.com>

* gdb.opencl/datatypes.exp: Expect the size of a bool to be one byte.

13 years ago * spawn.cc (spawn_guts): Only set PID_NOTCYGWIN in _P_OVERLAY mode.
corinna [Wed, 16 Feb 2011 03:11:49 +0000 (03:11 +0000)]
* spawn.cc (spawn_guts): Only set PID_NOTCYGWIN in _P_OVERLAY mode.
Drop flag if creating new process failed.

13 years ago * dw2gencfi.c (dot_cfi_dummy): New.
rth [Wed, 16 Feb 2011 03:01:06 +0000 (03:01 +0000)]
* dw2gencfi.c (dot_cfi_dummy): New.
(cfi_pseudo_table) [!TARGET_USE_CFIPOP]: New.
* read.c (pobegin): Unconditionally call cfi_pop_insert.

13 years ago gdb/
palves [Wed, 16 Feb 2011 02:22:20 +0000 (02:22 +0000)]
gdb/
* target.c (memory_xfer_live_readonly_partial): Document where to
look for interface description.

13 years ago2011-02-15 Kai Tietz <kai.tietz@onevision.com>
ktietz [Wed, 16 Feb 2011 01:15:55 +0000 (01:15 +0000)]
2011-02-15  Kai Tietz  <kai.tietz@onevision.com>

        * pe-dll.c (process_def_file_and_drectve): Don't strip
        leading underscore from symbol by calling bfd_find_version_for_sym.

13 years ago * new-features.sgml (ov-new1.7.8): Fix typo.
corinna [Wed, 16 Feb 2011 01:05:27 +0000 (01:05 +0000)]
* new-features.sgml (ov-new1.7.8): Fix typo.

13 years ago * cygcheck.cc: Fix copyright dates.
corinna [Wed, 16 Feb 2011 00:57:35 +0000 (00:57 +0000)]
* cygcheck.cc: Fix copyright dates.

13 years agoforced checkin
corinna [Wed, 16 Feb 2011 00:56:23 +0000 (00:56 +0000)]
forced checkin

13 years ago * Throughout fix copyright dates.
corinna [Wed, 16 Feb 2011 00:56:00 +0000 (00:56 +0000)]
* Throughout fix copyright dates.

13 years ago * legal.sgml: Bump date.
corinna [Wed, 16 Feb 2011 00:37:59 +0000 (00:37 +0000)]
* legal.sgml: Bump date.
* new-features.sgml (ov-new1.7.8): Move dropped NT4 pre-SP4 support
up to be the first paragraph.

13 years ago * new-features.sgml (ov-new1.7.8): Document /proc/sys.
corinna [Wed, 16 Feb 2011 00:32:19 +0000 (00:32 +0000)]
* new-features.sgml (ov-new1.7.8): Document /proc/sys.

13 years ago * devices.in: Throughout use slashes instead of backslashes in the
corinna [Wed, 16 Feb 2011 00:25:58 +0000 (00:25 +0000)]
* devices.in: Throughout use slashes instead of backslashes in the
native path of devices not backed by native NT devices.
* devices.cc: Regenerate.
* globals.cc (ro_u_pmem): Use correct case.
(ro_u_globalroot): New R/O unicode string.
* path.cc (path_conv::check): Fix incorrect handling of /proc/sys
block devices if they are just visited due to a component check.
(symlink_info::posixify): Fix typo in comment.
(cygwin_conv_path): Use ro_u_globalroot instead of string constant.
(fast_cwd_version): New shared variable to store FAST_CWD version
used on the system.
(find_fast_cwd_pointer): Rename from find_fast_cwd_pointers.  Don't
set global fast_cwd_ptr pointer here.  Return pointer value instead.
(find_fast_cwd): New function to set fast_cwd_ptr and fast_cwd_version.
(cwdstuff::override_win32_cwd): Call find_fast_cwd from here.
Check for fast_cwd_version to differ between old and new FAST_CWD
structure.  Check old_cwd for NULL to avoid SEGV.  Don't set CWD if
we have neitehr a valid fast_cwd_ptr, nor a valid CWD handle in the
process parameter block.
(cwdstuff::set): Create Win32 path taking /proc/sys paths into account.
* spawn.cc (spawn_guts): Recode creating runpath.  Also take /proc/sys
paths into account.  Drop special CWD handling when starting non-Cygwin
processes.

13 years ago * fhandler_procsys.cc (fhandler_procsys::opendir): Avoid SEGV if
corinna [Tue, 15 Feb 2011 23:44:11 +0000 (23:44 +0000)]
* fhandler_procsys.cc (fhandler_procsys::opendir): Avoid SEGV if
opening object directory fails.
* fhandler_virtual.cc (fhandler_virtual::opendir): Don't leak memory.

13 years ago2011-02-15 Yao Qi <yao@codesourcery.com>
qiyao [Tue, 15 Feb 2011 23:26:31 +0000 (23:26 +0000)]
2011-02-15  Yao Qi  <yao@codesourcery.com>

PR tdep/12352
* arm-tdep.c (copy_ldr_str_ldrb_strb): Replace PC with SP in
order to store PC value on stack instead of text section.

2011-02-15  Yao Qi  <yao@codesourcery.com>

PR tdep/12352
* gdb.arch/arm-disp-step.S : New test for str instruction.
* gdb.arch/arm-disp-step.exp : Likewise

13 years agogdb/
bauermann [Tue, 15 Feb 2011 22:35:18 +0000 (22:35 +0000)]
gdb/
* rs6000-tdep.c (IS_EFP_PSEUDOREG): Use correct constant for
the EFP register set size.
(efpr_pseudo_register_read): Use regcache_raw_read_part to read
data from the VMX register.
(efpr_pseudo_register_write): Use regcache_raw_write_part to read
and write data from/to the VMX register.

gdb/testsuite/
* gdb.arch/vsx-regs.exp: Add "vector_register1_vr" and
"vector_register2_vr" test strings.  Test the extended floating
point registers (F32~F63).
* lib/gdb.exp (skip_vsx_tests): Update compile flags for the
IBM XL C compiler.  Make the test program use a register provided
by the compiler for the lxvd2x instruction.

13 years ago * fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): Don't
corinna [Tue, 15 Feb 2011 19:47:24 +0000 (19:47 +0000)]
* fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): Don't
append slash if there is one already.

13 years ago Revert change from 2010-08-31:
corinna [Tue, 15 Feb 2011 19:39:36 +0000 (19:39 +0000)]
Revert change from 2010-08-31:
* path.cc (normalize_posix_path): Drop support for //./ and //?/
prefixes.
(path_conv::check): Ditto.

13 years ago * fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): Use POSIX
corinna [Tue, 15 Feb 2011 19:31:53 +0000 (19:31 +0000)]
* fhandler_disk_file.cc (fhandler_disk_file::readdir_helper): Use POSIX
path to check for symlink.

13 years ago2011-02-15 Tristan Gingold <gingold@adacore.com>
gingold [Tue, 15 Feb 2011 18:35:41 +0000 (18:35 +0000)]
2011-02-15  Tristan Gingold  <gingold@adacore.com>

* vms-alpha.c (alpha_vms_link_add_archive_symbols): Add a comment.

13 years ago * elf64-ppc.c (ppc64_elf_edit_toc): Reinstate second read of
amodra [Tue, 15 Feb 2011 13:07:42 +0000 (13:07 +0000)]
* elf64-ppc.c (ppc64_elf_edit_toc): Reinstate second read of
toc relocs.  Fuss over free(NULL).

13 years ago*** empty log message ***
gdbadmin [Tue, 15 Feb 2011 09:00:03 +0000 (09:00 +0000)]
*** empty log message ***

13 years ago2011-02-14 Michael Snyder <msnyder@vmware.com>
msnyder [Tue, 15 Feb 2011 08:41:33 +0000 (08:41 +0000)]
2011-02-14  Michael Snyder  <msnyder@vmware.com>

* command.h (enum command_class): New class 'no_set_class', for
"show" commands without a corresponding "set" command.
* value.c (_initialize_values): Use 'no_set_class' for "show values".
* copying.c (_initialize_copying): Ditto for "show copying" and
"show warranty".
* cli/cli-cmds.c (init_cli_cmds): Ditto for "show commands" and
"show version".
* cli/cli-setshow.c (cmd_show_list): Skip "show" commands for
which there is no corresponding "set" command (eg. "show copying").

13 years ago2011-02-14 Michael Snyder <msnyder@vmware.com>
msnyder [Tue, 15 Feb 2011 08:14:34 +0000 (08:14 +0000)]
2011-02-14  Michael Snyder  <msnyder@vmware.com>

* gdb.texinfo (Threads): Update example of new thread message.

13 years agodaily update
amodra [Tue, 15 Feb 2011 08:00:05 +0000 (08:00 +0000)]
daily update

13 years ago * exec.c (section_table_available_memory): Change `len' parameter
palves [Tue, 15 Feb 2011 07:08:45 +0000 (07:08 +0000)]
* exec.c (section_table_available_memory): Change `len' parameter
type to ULONGEST.
* exec.h (section_table_available_memory): Ditto.
* value.h (read_value_memory): Rename the `offset' parameter to
`embedded_offset'.

13 years agoAdd proper attribution.
palves [Tue, 15 Feb 2011 04:20:45 +0000 (04:20 +0000)]
Add proper attribution.

13 years ago gdb/
palves [Tue, 15 Feb 2011 04:19:17 +0000 (04:19 +0000)]
gdb/
* memrange.c (compare_mem_ranges): Mention sort order in
describing comment.
(normalize_mem_ranges): Add comment.  Fix ra->length calculation.
* tracepoint.c (traceframe_available_memory): Extend comment to
mention what happens to RESULT when the target does not support
the query.

13 years agoopcodes: blackfin: fix style
vapier [Tue, 15 Feb 2011 02:12:05 +0000 (02:12 +0000)]
opcodes: blackfin: fix style

Non-functional thrashing to the GNU style.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
13 years agobfd/ld: handle ABI prefixes in version scripts
vapier [Tue, 15 Feb 2011 02:03:43 +0000 (02:03 +0000)]
bfd/ld: handle ABI prefixes in version scripts

The default language in version scripts is supposed to be C, but no
symbol demangling is performed on the symbols by default.  This makes
targets with a symbol prefix to fail with most version scripts out
there.  So strip away this prefix by default.

This fixes many tests (real world and ld's testsuite) for Blackfin
targets and doesn't seem to cause regressions for x86_64.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
13 years ago * value.c (mark_value_bytes_unavailable): Fix indexing the `bef'
palves [Mon, 14 Feb 2011 21:54:40 +0000 (21:54 +0000)]
* value.c (mark_value_bytes_unavailable): Fix indexing the `bef'
range.

13 years ago * value.c (value_bits_valid, value_bits_synthetic_pointer):
palves [Mon, 14 Feb 2011 20:52:47 +0000 (20:52 +0000)]
* value.c (value_bits_valid, value_bits_synthetic_pointer):
No longer handle NULL values.

13 years ago gdb/
palves [Mon, 14 Feb 2011 20:35:44 +0000 (20:35 +0000)]
gdb/
* exceptions.h (NOT_AVAILABLE_ERROR): New error.
* value.c: Include "exceptions.h".
(require_available): Throw NOT_AVAILABLE_ERROR instead of a
generic error.
* cp-abi.c: Include gdb_assert.h.
(baseclass_offset): Add `embedded_offset' and `val' parameters.
Assert the method is implemented.  Wrap NOT_AVAILABLE_ERROR
errors.
* cp-abi.h (baseclass_offset): Add `embedded_offset' and `val'
parameters.  No longer returns -1 on error.
(struct cp_abi_ops) <baseclass_offset>: Add `embedded_offset' and
`val' parameters.
* cp-valprint.c: Include exceptions.h.
(cp_print_value): Handle NOT_AVAILABLE_ERROR errors when fetching
the baseclass_offset.  Handle unavailable base classes.  Use
val_print_invalid_address.
* p-valprint.c: Include exceptions.h.
(pascal_object_print_value): Handle NOT_AVAILABLE_ERROR errors
when fetching the baseclass_offset.  No longer expect
baseclass_offset returning -1.  Handle unavailable base classes.
Use val_print_invalid_address.
* valops.c (dynamic_cast_check_1): Rename `contents' parameter to
`valaddr' parameter, and change its type to gdb_byte pointer.  Add
`embedded_offset' and `val' parameters.  Adjust.
(dynamic_cast_check_2): Rename `contents' parameter to `valaddr'
parameter, and change its type to gdb_byte pointer.  Add
`embedded_offset' and `val' parameters.  Adjust.  No longer expect
baseclass_offset returning -1.
(value_dynamic_cast): Use value_contents_for_printing rather than
value_contents.  Adjust.
(search_struct_field): No longer expect baseclass_offset returning
-1.
(search_struct_method): If reading memory from the target is
necessary, wrap it in a new value to pass to baseclass_offset.  No
longer expect baseclass_offset returning -1.
(find_method_list): No longer expect baseclass_offset returning
-1.  Use value_contents_for_printing rather than value_contents.
* valprint.c (val_print_invalid_address): New function.
* valprint.h (val_print_invalid_address): Declare.
* gdbtypes.c (is_unique_ancestor_worker): New `embedded_offset'
and `val' parameters.  No longer expect baseclass_offset returning
-1.  Adjust.
* gnu-v2-abi.c: Include "exceptions.h".
(gnuv2_baseclass_offset): Add `embedded_offset' and `val'
parameters.  Handle unavailable memory.  Recurse through
gnuv2_baseclass_offset directly, rather than through
baseclass_offset.  No longer returns -1 on not found, instead
throw an error.
* gnu-v3-abi.c (gnuv3_baseclass_offset): Add `embedded_offset' and
`val' parameters.  Adjust.

gdb/testsuite/
* gdb.trace/unavailable.cc (class Base, class Middle, class
Derived): New types.
(derived_unavail, derived_partial, derived_whole): New globals.
(virtual_partial): New global.
(virtualp): Point at virtual_partial.
* gdb.trace/unavailable.exp (gdb_collect_globals_test): Add tests
related to unavailable vptr.

13 years ago gdb/testuite/
palves [Mon, 14 Feb 2011 20:34:31 +0000 (20:34 +0000)]
gdb/testuite/
* gdb.trace/unavailable.cc (a, b, c): New globals.
(main): Set and clear them.
* gdb.trace/unavailable.exp (gdb_collect_globals_test): Collect
`a' and `c', and check that `b' isn't collected, although `a' and
`c' are.

gdb/
* tracepoint.c (memrange_sortmerge): Don't merge ranges that are
almost but not quite adjacent.

13 years ago gdb/testsuite/
palves [Mon, 14 Feb 2011 20:33:24 +0000 (20:33 +0000)]
gdb/testsuite/
* gdb.trace/unavailable.cc (struct Virtual): New.
(virtualp): New global pointer.
* gdb.trace/unavailable.exp (gdb_collect_globals_test): Test
printing a pointer to an object whose type has a vtable, with
print object on.

gdb/
* value.h (value_entirely_available): Declare.
* value.c (value_entirely_available): New function.
* c-valprint.c (c_value_print): Don't try fetching the pointer's
real type if the pointer is unavailable.

13 years ago gdb/
palves [Mon, 14 Feb 2011 20:32:16 +0000 (20:32 +0000)]
gdb/
* valops.c (value_repeat): Use read_value_memory instead of
read_memory.

gdb/testsuite/
* gdb.trace/unavailable.exp (gdb_collect_globals_test): Test that
value repeat handles unavailableness.

13 years ago gdb/
palves [Mon, 14 Feb 2011 20:30:36 +0000 (20:30 +0000)]
gdb/
* value.h (value_contents_copy, value_contents_copy_raw): Declare.
* value.c (value_contents_copy_raw, value_contents_copy): New
functions.
(value_primitive_field): Use value_contents_copy_raw instead of
memcpy.
* valops.c (value_fetch_lazy): Use value_contents_copy instead of
memcpy.
(value_array, value_slice): Ditto.
* valarith.c (value_subscripted_rvalue): Use
value_contents_copy_raw instead of memcpy.

gdb/testsuite/
* gdb.trace/unavailable.exp (gdb_collect_globals_test): Add new
tests for building arrays from unavailable values, subscripting
non-memory rvalue unvailable arrays, and accessing fields or
baseclasses of non-lazy unavailable values,
* gdb.trace/unavailable.cc (small_struct, small_struct_b): New
struct types.
(g_smallstruct, g_smallstruct_b): New globals.

13 years ago gdb/testsuite/
palves [Mon, 14 Feb 2011 20:29:04 +0000 (20:29 +0000)]
gdb/testsuite/
* gdb.trace/unavailable.cc, gdb.trace/unavailable.exp: New files.

13 years ago <unavailable> references.
palves [Mon, 14 Feb 2011 20:27:34 +0000 (20:27 +0000)]
<unavailable> references.

gdb/
* valops.c (get_value_at): Use value_from_contents_and_address,
avoiding read_memory.

13 years ago gdb/
palves [Mon, 14 Feb 2011 20:26:42 +0000 (20:26 +0000)]
gdb/
* c-valprint.c (c_val_print): Print a string with unavailable
contents as an array.

13 years ago gdb/
palves [Mon, 14 Feb 2011 20:25:59 +0000 (20:25 +0000)]
gdb/
* value.h (unpack_bits_as_long): Delete declaration.
(unpack_value_bits_as_long): Declare.
(unpack_value_field_as_long): Declare.
(value_field_bitfield): Declare.
* value.c (unpack_bits_as_long): Rename to...
(unpack_value_bits_as_long_1): ... this.  Add embedded_offset and
value parameters.  Return the extracted result in a new output
parameter.  If the value contents are unavailable, return false,
otherwise return true.
(unpack_value_bits_as_long): New.
(unpack_field_as_long): Rename to...
(unpack_value_field_as_long_1): ... this.  Add embedded_offset and
Add embedded_offset and value parameters.  Return the extracted
result in a new output parameter. If the value contents are
unavailable, return false, otherwise return true.
(unpack_value_field_as_long): New.
(unpack_field_as_long_1): New.
(unpack_field_as_long): Reimplement as wrapper around
unpack_value_field_as_long_1.
(value_field_bitfield): New function.
* valops.c (value_fetch_lazy): When fetching a bitfield, use
unpack_value_bits_as_long.  Mark the value as unavailable, if it
is unavailable.
* jv-valprint.c (java_print_value_fields): Use
value_field_bitfield.
* p-valprint.c (pascal_object_print_value_fields): Use
value_field_bitfield.
* cp-valprint.c (cp_print_value_fields): Use value_field_bitfield.

13 years ago * value.c (get_internalvar_integer): Also return the int value of
palves [Mon, 14 Feb 2011 20:25:12 +0000 (20:25 +0000)]
* value.c (get_internalvar_integer): Also return the int value of
TYPE_CODE_INT INTERNALVAR_VALUE values.
(set_internalvar): Don't special case TYPE_CODE_INT.

13 years ago gdb/
palves [Mon, 14 Feb 2011 20:24:19 +0000 (20:24 +0000)]
gdb/
* value.c (struct internalvar) <enum internalvar_kind>: Remove
INTERNALVAR_POINTER.
<pointer>: Delete.
(value_of_internalvar): Remove INTERNALVAR_POINTER handling.
(set_internalvar): Remove special TYPE_CODE_PTR handling.
(preserve_one_internalvar): Remove INTERNALVAR_POINTER handling.

13 years ago gdb/
palves [Mon, 14 Feb 2011 20:23:33 +0000 (20:23 +0000)]
gdb/
* value.h (value_available_contents_eq): Declare.
* value.c (find_first_range_overlap): New function.
(value_available_contents_eq): New function.
* valprint.c (val_print_array_elements): Use
value_available_contents_eq.
* ada-valprint.c (val_print_packed_array_elements): Use
value_available_contents_eq.
* jv-valprint.c (java_value_print): Use
value_available_contents_eq.

13 years ago gdb/
palves [Mon, 14 Feb 2011 20:22:29 +0000 (20:22 +0000)]
gdb/
* target.c (target_read_live_memory): New function.
(memory_xfer_live_readonly_partial): New.
(memory_xfer_partial): If reading from a traceframe, fallback to
reading unavailable read-only memory from read-only regions of
live target memory.
* tracepoint.c (disconnect_tracing): Adjust.
(set_current_traceframe): New, factored out from
set_traceframe_number.
(set_traceframe_number): Reimplement to only change the traceframe
number on the GDB side.
(do_restore_current_traceframe_cleanup): Adjust.
(make_cleanup_restore_traceframe_number): New.
(cur_traceframe_number): New global.
(tfile_open): Set cur_traceframe_number to no traceframe.
(set_tfile_traceframe): New function.
(tfile_trace_find): If looking up a traceframe using any method
other than by number, make sure the current tfile traceframe
matches gdb's current traceframe.  Update the current tfile
traceframe if the lookup succeeded.
(tfile_fetch_registers, tfile_xfer_partial)
(tfile_get_trace_state_variable_value): Make sure the remote
traceframe matches gdb's current traceframe.
* remote.c (remote_traceframe_number): New global.
(remote_open_1): Set it to -1.
(set_remote_traceframe): New function.
(remote_fetch_registers, remote_store_registers)
(remote_xfer_memory, remote_xfer_partial)
(remote_get_trace_state_variable_value): Make sure the remote
traceframe matches gdb's current traceframe.
(remote_trace_find): If looking up a traceframe using any method
other than by number, make sure the current remote traceframe
matches gdb's current traceframe.  Update the current remote
traceframe if the lookup succeeded.
* infrun.c (fetch_inferior_event): Adjust.
* tracepoint.h (set_current_traceframe): Declare.
(get_traceframe_number, set_traceframe_number): Add describing
comments.

13 years ago Mark pieces of values as unavailable if the corresponding memory
palves [Mon, 14 Feb 2011 20:21:24 +0000 (20:21 +0000)]
Mark pieces of values as unavailable if the corresponding memory
is unavailable.

gdb/
* valops.c: Include tracepoint.h.
(value_fetch_lazy): Use read_value_memory.
(read_value_memory): New.
* value.h (read_value_memory): Declare.
* dwarf2loc.c (read_pieced_value): Use read_value_memory.
* exec.c (section_table_available_memory): New function.
* exec.h (section_table_available_memory): Declare.

13 years ago2011-02-14 Pedro Alves <pedro@codesourcery.com>
palves [Mon, 14 Feb 2011 20:20:27 +0000 (20:20 +0000)]
2011-02-14  Pedro Alves  <pedro@codesourcery.com>

gdb/
* Makefile.in (SFILES): Add memrange.c.
(HFILES_NO_SRCDIR): Add memrange.h.
(COMMON_OBS): Add memrange.o.
* memrange.c: New file.
* memrange.h: New file.
* tracepoint.c: Include memrange.h.
(struct mem_range): Delete.
(mem_range_s): Delete.
(traceframe_available_memory): New function.
* tracepoint.h (traceframe_available_memory): Declare.

13 years ago2011-02-14 Pedro Alves <pedro@codesourcery.com>
palves [Mon, 14 Feb 2011 20:19:26 +0000 (20:19 +0000)]
2011-02-14  Pedro Alves  <pedro@codesourcery.com>

gdb/
* target.h (struct traceframe_info): Forward declare.
(enum target_object): Add TARGET_OBJECT_TRACEFRAME_INFO.
(struct target_ops) <to_traceframe_info>: New field.
(target_traceframe_info): New.
* target.c (update_current_target): Inherit and default
to_traceframe_info.
* remote.c (PACKET_qXfer_traceframe_info): New.
(remote_protocol_features): Register qXfer:traceframe-info:read.
(remote_xfer_partial): Handle TARGET_OBJECT_TRACEFRAME_INFO.
(remote_traceframe_info): New.
(init_remote_ops): Install it.
(_initialize_remote): Install "set/show remote traceframe-info"
commands.
* tracepoint.h (parse_traceframe_info): Declare.
* tracepoint.c (struct mem_range): New.
(mem_range_s): New typedef.
(struct traceframe_info): New.
(traceframe_info): New global.
(free_traceframe_info): New function.
(clear_traceframe_info): New function.
(start_tracing, tfind_1, set_traceframe_number): Clear traceframe
info.
(build_traceframe_info): New function.
(tfile_traceframe_info): New function.
(init_tfile_ops): Install tfile_traceframe_info.
(traceframe_info_start_memory, free_result): New functions.
(memory_attributes, traceframe_info_elements): New globals.
(parse_traceframe_info, get_traceframe_info): New functions.
* features/traceframe-info.dtd: New file.
* Makefile.in (XMLFILES): Add traceframe-info.dtd.

gdb/gdbserver/
* server.c (handle_qxfer_traceframe_info): New.
(qxfer_packets): Register "traceframe-info".
(handle_query): Report support for qXfer:traceframe-info:read+.
* tracepoint.c (match_blocktype): New.
(traceframe_find_block_type): Rename to ...
(traceframe_walk_blocks): ... this.  Add callback filter argument,
and use it.
(traceframe_find_block_type): New, reimplemented on top of
traceframe_walk_blocks.
(build_traceframe_info_xml): New.
(traceframe_read_info): New.
* server.h (traceframe_read_info): Declare.

gdb/doc/
* gdb.texinfo (Remote Configuration): Mention set/show remote
traceframe-info.
(Tools/Packages Optional for Building GDB): Mention that expat is
used for traceframe info.
(Remote Protocol) <Menu>: Add "Traceframe Info Format".
(General Query Packets) <qSupported>: Describe the
qXfer:traceframe-info:read feature.
(qXfer::read): Describe qXfer:traceframe-info:read.
(Traceframe Info Format): New section.

13 years ago gdb/
palves [Mon, 14 Feb 2011 20:13:10 +0000 (20:13 +0000)]
gdb/
* target.h (struct traceframe_info): Forward declare.
(enum target_object): Add TARGET_OBJECT_TRACEFRAME_INFO.
(struct target_ops) <to_traceframe_info>: New field.
(target_traceframe_info): New.
* target.c (update_current_target): Inherit and default
to_traceframe_info.
* remote.c (PACKET_qXfer_traceframe_info): New.
(remote_protocol_features): Register qXfer:traceframe-info:read.
(remote_xfer_partial): Handle TARGET_OBJECT_TRACEFRAME_INFO.
(remote_traceframe_info): New.
(init_remote_ops): Install it.
(_initialize_remote): Install "set/show remote traceframe-info"
commands.
* tracepoint.h (parse_traceframe_info): Declare.
* tracepoint.c (struct mem_range): New.
(mem_range_s): New typedef.
(struct traceframe_info): New.
(traceframe_info): New global.
(free_traceframe_info): New function.
(clear_traceframe_info): New function.
(start_tracing, tfind_1, set_traceframe_number): Clear traceframe
info.
(build_traceframe_info): New function.
(tfile_traceframe_info): New function.
(init_tfile_ops): Install tfile_traceframe_info.
(traceframe_info_start_memory, free_result): New functions.
(memory_attributes, traceframe_info_elements): New globals.
(parse_traceframe_info, get_traceframe_info): New functions.
* features/traceframe-info.dtd: New file.
* Makefile.in (XMLFILES): Add traceframe-info.dtd.

gdb/gdbserver/
* server.c (handle_qxfer_traceframe_info): New.
(qxfer_packets): Register "traceframe-info".
(handle_query): Report support for qXfer:traceframe-info:read+.
* tracepoint.c (match_blocktype): New.
(traceframe_find_block_type): Rename to ...
(traceframe_walk_blocks): ... this.  Add callback filter argument,
and use it.
(traceframe_find_block_type): New, reimplemented on top of
traceframe_walk_blocks.
(build_traceframe_info_xml): New.
(traceframe_read_info): New.
* server.h (traceframe_read_info): Declare.

gdb/doc/
* gdb.texinfo (Remote Configuration): Mention set/show remote
traceframe-info.
(Tools/Packages Optional for Building GDB): Mention that expat is
used for traceframe info.
(Remote Protocol) <Menu>: Add "Traceframe Info Format".
(General Query Packets) <qSupported>: Describe the
qXfer:traceframe-info:read feature.
(qXfer::read): Describe qXfer:traceframe-info:read.
(Traceframe Info Format): New section.

13 years ago Base support for <unavailable> value contents.
palves [Mon, 14 Feb 2011 20:10:49 +0000 (20:10 +0000)]
Base support for <unavailable> value contents.

gdb/
* value.h (value_bytes_available): Declare.
(mark_value_bytes_unavailable): Declare.
* value.c (struct range): New struct.
(range_s): New typedef.
(ranges_overlap): New function.
(range_lessthan): New function.
(ranges_contain_p): New function.
(struct value) <unavailable>: New field.
(value_bytes_available): New function.
(mark_value_bytes_unavailable): New function.
(require_not_optimized_out): Constify parameter.
(require_available): New function.
(value_contents_all, value_contents): Require all bytes be
available.
(value_free): Free `unavailable'.
(value_copy): Copy `unavailable'.
* valprint.h (val_print_unavailable): Declare.
* valprint.c (valprint_check_validity): Rename `offset' parameter
to `embedded_offset'.  If printing a scalar, check whether the
value chunk is available.
(val_print_unavailable): New.
(val_print_scalar_formatted): Check whether the value is
available.
* python/py-prettyprint.c (apply_val_pretty_printer): Refuse
pretty-printing unavailable values.

13 years ago * ldmain.c (remove_output): Rename to..
amodra [Mon, 14 Feb 2011 18:53:14 +0000 (18:53 +0000)]
* ldmain.c (remove_output): Rename to..
(ld_cleanup): ..this. Call bfd_cache_close_all and plugin_call_cleanup.
(main): Adjust.
* plugin.c (plugin_call_cleanup): Make global.
(plugin_load_plugins): Don't register plugin_call_cleanup with xatexit.
* plugin.h (plugin_call_cleanup): Declare.

13 years ago * config/i386/profile.h: Sync with Mingw.
corinna [Mon, 14 Feb 2011 18:42:18 +0000 (18:42 +0000)]
* config/i386/profile.h: Sync with Mingw.

13 years agoopcodes: blackfin: catch invalid loopsetup insns
vapier [Mon, 14 Feb 2011 14:21:04 +0000 (14:21 +0000)]
opcodes: blackfin: catch invalid loopsetup insns

The LoopSetup insn is only valid when the reg field is 0-7, so
don't go decoding it incorrectly when reg is 8-15.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
13 years agosim: punt zfree()
vapier [Mon, 14 Feb 2011 14:14:26 +0000 (14:14 +0000)]
sim: punt zfree()

The sim keeps track of which allocations are zero-ed internally (via
zalloc) and then calls a helper "zfree" function rather than "free".
But this "zfree" function simply calls "free" itself.  Since I can
see no point in this and it is simply useless overhead, punt it.

The only real change is in hw-alloc.c where we remove the zalloc_p
tracking, and sim-utils.c where zfree is delete.  The rest of the
changes are a simple `sed` from "zfree" to "free".

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
13 years agosim: change to 64bit time keeping to avoid 32bit overflows
vapier [Mon, 14 Feb 2011 13:58:12 +0000 (13:58 +0000)]
sim: change to 64bit time keeping to avoid 32bit overflows

The sim-events code jumps through some hoops to avoid using 64bit math
to manage the current time.  One fundamental assumption here is that by
constantly scheduling the sim poll event a short time into the future,
the 64bit difference will always fall into a signed 32bit value.  This
does work most of the time, except for when processing the sim poll event
itself.

Normally, sim_events_process() will dequeue the sim poll event, update
the current time (time_from_event) according to the next pending event,
process the sim poll event (which will then requeue the sim poll event),
and then continue on.

The problem here of course is that the current time is updated in that
small window before the sim poll event gets a chance to reschedule itself.
So if the 64bit difference between the current time and the next event
does not fit into the signed 32bit value, time_from_event overflows, and
the internal assert at the end of update_time_from_event() triggers.

Since attempts at tweaking sim_events_process() logic introduced other
subtle bugs (due to tangled assumptions between most pieces of the sim
time keeping code), change the time_from_event to a real 64bit value.
Tests on my system between a 32bit ELF and a 64bit ELF show no practical
difference (it's all lost in the system noise).  Basically, I booted a
Linux kernel to userspace and then paniced it; this gave me a constant
sample size of about 18 million insns.

This was noticed when simulating Blackfin Das U-Boot.  The simulated core
timer is given the max unsigned timeout value possible on a 32bit processor
(0xffffffff).  This timeout value is used directly to schedule a hw event
in the sim future (the IRQ firing).  Once the sim poll event is kicked off,
the next pending event is the core timer event which is more than 2^31
ticks in the future, and the sim aborts with:
sim-events.c:435: assertion failed - current_time == sim_events_time (sd)

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
13 years ago*** empty log message ***
gdbadmin [Mon, 14 Feb 2011 09:00:02 +0000 (09:00 +0000)]
*** empty log message ***

13 years agodaily update
amodra [Mon, 14 Feb 2011 08:00:04 +0000 (08:00 +0000)]
daily update