This patch avoids a warning when resuming the execution of a program
that we attached to. For instance:
(gdb) attach 29989
(gdb) continue
Continuing.
warning: Mach error at "/[...]/darwin-nat.c:738" in function
"darwin_resume_thread": (os/kern) failure (0x5)
The warning is relatively harmless, but worrisome for the average
user. The warning comes from the fact that darwin_wait recorded
that the fake stop event corresponding to the suspend action was
caused by the main thread being suspended on a SIGTRAP. As a result
of this, when resuming the program's execution, we try to resume
the thread's execution as well. This is where the issue occurs,
as the thread was not in fact suspended, thus triggering the warning.
gdb/ChangeLog:
* darwin-nat.c (darwin_setup_fake_stop_event): New function.
(darwin_attach): Adjust using darwin_setup_fake_stop_event.
There were many cases were we make a system call which could fail
due to reasons outside of the debugger control. We should handle
these situations a little more gracefully than triggering an
internal error.
gdb/ChangeLog:
* darwin-nat.c (darwin_mourn_inferior): Replace call to
gdb_assert by call to MACH_CHECK_ERROR.
(darwin_attach_pid): Raise an error rather than a failed
assertion when various system calls failed. Report a warning
instead of raising a failed assertion when PREV_NOT is not NULL
after call to mach_port_request_notification.
(darwin_ptrace_me): Raise an error rather than a failed
assertion when read returns nonzero.
gdb_assert.h is already included from darwin-nat.h, so no need to
include it again...
gdb/ChangeLog:
* amd64-darwin-tdep.c: Remove #include "gdb_assert.h".
* event-top.c (display_gdb_prompt): Call missing do_cleanups.
* infcmd.c (get_return_value) <!stop_regs>: Do not overwrite CLEANUP.
* symfile.c (symfile_bfd_open): New variable back_to. Do not leave
a stale cleanup. Fix double free of NAME.
* windows-nat.c (windows_delete_thread): Accept an additional
argument, the thread's exit code, and announce thread death when
print_thread_events is non-zero and we are deleting a thread that
is not the main thread.
(get_windows_debug_event): Pass thread exit code to
windows_delete_thread.
(R_149_REGNUM, E_NUM_OF_V850E2_REGS, E_SELID_1_R0_REGNUM)
(E_SELID_1_R31_REGNUM, E_SELID_2_R0_REGNUM, E_SELID_2_R31_REGNUM)
(E_SELID_3_R0_REGNUM, E_SELID_3_R31_REGNUM, E_SELID_4_R0_REGNUM)
(E_SELID_4_R31_REGNUM, E_SELID_5_R0_REGNUM, E_SELID_5_R31_REGNUM)
(E_SELID_6_R0_REGNUM, E_SELID_6_R31_REGNUM, E_SELID_7_R0_REGNUM, E_SELID_7_R31_REGNUM)
(E_VR0_REGNUM, E_VR31_REGNUM, E_NUM_OF_V850E3V5_REGS): Define.
(v850_abi, V850_ABI_GCC, V850_ABI_RH850): New enum and constants.
(gdbarch_tdep): New struct.
(v850e2_register_name): Use E_NUM_OF_V850E2_REGS instead of
E_NUM_REGS.
(v850e3v5_register_name): New function.
(v850_register_type): v850e3v5 vector registers are 64-bits wide.
(v850_use_struct_convention): Add `gdbarch' parameter. Add new
code handling the struct return conventions for the RH850 ABI.
Update all callers.
(v850_eight_byte_align_p): New function.
(v850_push_call_dummy): Push structs by value, not by reference
for the RH850 ABI. Add support for eight byte alignment.
(v850_dbtrap_breakpoint_from_pc): New function.
(v850_gdbarch_init): Add ABI detection code. Register
v850e3v5_register_name for the v850e3v5 architecture. Set the
number of registers for v850e3v5. Register
v850_dbtrap_breakpoint_from_pc as appropriate.
(_initialize_gdbarch_init): Registration bfd_arch_v850_rh850.
of bfd_count_sections.
* solib-target.c (solib_target_relocate_section_addresses): Ditto.
* symfile.c (default_symfile_offsets): Ditto.
(syms_from_objfile_1): Ditto. Make dummy addrs list an array of
one entry, not bfd_count_sections entries.
`save' and `restore' register groups. Don't include SPL
or SPH in these groups.
(rl78_dwarf_reg_to_regnum): Adjust mapping for
RL78_PC_REGNUM. Add mappings for RL78_PSW_REGNUM,
RL78_ES_REGNUM, and RL78_CS_REGNUM.
(rl78_gdbarch_init): Set `dwarf2_addr_size' to 4. Invoke
dwarf2_append_unwinders().
* tracepoint.c (cmd_qtinit): Call 'stop_tracing'.
2013-05-03 Hafiz Abid Qadeer <abidh@codesourcery.com>
* status-stop.exp (test_tstart_tstart): Check for error
returned by the second 'tstart' command.
gdb/ChangeLog:
* darwin-nat.c (darwin_read_write_inferior): Change types
of parameters rdaddr and wraddr to "gdb_byte *". Change type
of copy_count to "mach_msg_type_number_t".
(darwin_read_dyld_info): Change type of parameter
rdaddr to "gdb_byte *".
gdb/ChangeLog:
* ia64-tdep.c (ia64_access_fpreg): Change cast of val
from "char *" to "gdb_byte *".
(ia64_access_rse_fpreg, ia64_access_mem): Likewise.
(init_cutu_and_read_dies): Flag a complaint, not error, for bad
DWO stub. If DWO isn't found, just use stub.
(lookup_dwo_cutu): Don't try DWO if there's a DWP file.
Add support for displaying structures and bitfields for registers when
executing "maint print c-tdesc". This command is also used when
converting the xml target description file into c file.
Example of the behaviour is given below reporting a snipet of the xml file
and a snippet of the c code generated.
XML file contains:
...
<union id="vecint">
<field name="v4" type="v4int8"/>
<field name="v2" type="v2int16"/>
</union>
<struct id="struct1">
<field name="v4" type="v4int8"/>
<field name="v2" type="v2int16"/>
</struct>
<struct id="struct2" size="8">
<field name="f1" start="0" end="34"/>
<field name="f2" start="63" end="63"/>
</struct>
...
Setting this xml file as target description file and
issuing the maintenance print c-tdesc the following output
is obtained:
feature = tdesc_create_feature (result, "extra");
field_type = tdesc_named_type (feature, "int8");
tdesc_create_vector (feature, "v4int8", field_type, 4);
field_type = tdesc_named_type (feature, "int16");
tdesc_create_vector (feature, "v2int16", field_type, 2);
type = tdesc_create_union (feature, "vecint");
field_type = tdesc_named_type (feature, "v4int8");
tdesc_add_field (type, "v4", field_type);
field_type = tdesc_named_type (feature, "v2int16");
tdesc_add_field (type, "v2", field_type);
C output is not supported type "struct1".
This is finally the issue.
2013-03-27 Walfred Tedeschi <walfred.tedeschi@intel.com>
* target-descriptions.c (maint_print_c_tdesc_cmd):
Add case to parse structures as register types and
bitfields.
testsuite/
* gdb.xml/maint_print_struct.exp: New file.
* gdb.xml/maint_print_struct.xml: New file.
Change-Id: I2e20b095d508319c80275e724a9452c7e2834067
Signed-off-by: Walfred Tedeschi <walfred.tedeschi@intel.com>
This fixes a couple of compiler warnings in rw_common when calling
target_read_memory/target_write_memory due to the type of parameter
"buf" (char *) not matching what these function expect (gdb_byte *).
gdb/ChangeLog:
* sol-thread.c (rw_common): Change type of parameter "buf"
to "gdb_byte *".
(ps_pdwrite, ps_ptwrite): Cast parameter "buf" in call to
rw_common to "gdb_byte *" instead of "char *".
gdb/ChangeLog:
* sol-thread.c (info_cb) [ti.ti_startfunc != 0]: Change type
of local variable msym to const struct bound_minimal_symbol.
Adjust use accordingly.
[ti.ti_state == TD_THR_SLEEP]: Likewise.
This ChangeLog entry was the result of a result of botched commit
which resulted in the ChangeLog update being checked in, while
the actual code code itself did not make it to CVS.
This patch deletes the entry in gdb/ChangeLog titled:
mep: define gdbarch_pc_regnum instead of gdbarch_write_pc.