You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
1
|
2
|
3
|
4
(2) |
5
(1) |
|
6
(1) |
7
|
8
(2) |
9
|
10
(1) |
11
|
12
(2) |
|
13
(3) |
14
(2) |
15
(1) |
16
|
17
|
18
|
19
|
|
20
|
21
|
22
(1) |
23
(1) |
24
|
25
|
26
|
|
27
|
28
(2) |
29
(2) |
30
(1) |
31
|
|
|
|
From: <sv...@va...> - 2015-12-04 17:37:49
|
Author: iraisr
Date: Fri Dec 4 17:37:41 2015
New Revision: 15742
Log:
Add support for repository cache protocol version 27.
n-i-bz
Modified:
trunk/include/vki/vki-solaris-repcache.h
Modified: trunk/include/vki/vki-solaris-repcache.h
==============================================================================
--- trunk/include/vki/vki-solaris-repcache.h (original)
+++ trunk/include/vki/vki-solaris-repcache.h Fri Dec 4 17:37:41 2015
@@ -231,10 +231,68 @@
VKI_REP_PROTOCOL_CLIENT_REMOVE_NOTIFY,
VKI_REP_PROTOCOL_MAX_REQUEST
};
+#elif (SOLARIS_REPCACHE_PROTOCOL_VERSION == 27)
+#define VKI_REPOSITORY_DOOR_VERSION (27 + VKI_REPOSITORY_DOOR_BASEVER)
+enum vki_rep_protocol_requestid {
+ VKI_REP_PROTOCOL_CLOSE = ('C' << 8),
+ VKI_REP_PROTOCOL_ENTITY_SETUP,
+ VKI_REP_PROTOCOL_ENTITY_NAME,
+ VKI_REP_PROTOCOL_ENTITY_FMRI,
+ VKI_REP_PROTOCOL_ENTITY_PARENT_TYPE,
+ VKI_REP_PROTOCOL_ENTITY_GET_CHILD,
+ VKI_REP_PROTOCOL_ENTITY_GET_PARENT,
+ VKI_REP_PROTOCOL_ENTITY_GET_ROOT,
+ VKI_REP_PROTOCOL_ENTITY_GET,
+ VKI_REP_PROTOCOL_ENTITY_UPDATE,
+ VKI_REP_PROTOCOL_ENTITY_CREATE_CHILD,
+ VKI_REP_PROTOCOL_ENTITY_CREATE_PG,
+ VKI_REP_PROTOCOL_ENTITY_DELETE,
+ VKI_REP_PROTOCOL_ENTITY_UNDELETE,
+ VKI_REP_PROTOCOL_ENTITY_REMOVE,
+ VKI_REP_PROTOCOL_ENTITY_DELCUST,
+ VKI_REP_PROTOCOL_BUNDLE_REMOVE,
+ VKI_REP_PROTOCOL_ENTITY_RESET,
+ VKI_REP_PROTOCOL_ENTITY_TEARDOWN,
+ VKI_REP_PROTOCOL_ITER_SETUP,
+ VKI_REP_PROTOCOL_ITER_START,
+ VKI_REP_PROTOCOL_ITER_READ,
+ VKI_REP_PROTOCOL_ITER_READ_VALUE,
+ VKI_REP_PROTOCOL_ITER_RESET,
+ VKI_REP_PROTOCOL_ITER_TEARDOWN,
+ VKI_REP_PROTOCOL_NEXT_SNAPLEVEL,
+ VKI_REP_PROTOCOL_SNAPSHOT_TAKE,
+ VKI_REP_PROTOCOL_SNAPSHOT_TAKE_NAMED,
+ VKI_REP_PROTOCOL_SNAPSHOT_ATTACH,
+ VKI_REP_PROTOCOL_PROPERTY_GET_TYPE,
+ VKI_REP_PROTOCOL_PROPERTY_GET_VALUE,
+ VKI_REP_PROTOCOL_PG_SETUP_WAIT,
+ VKI_REP_PROTOCOL_PG_TX_START,
+ VKI_REP_PROTOCOL_PG_TX_COMMIT,
+ VKI_REP_PROTOCOL_PROP_BUNDLE_REMOVE,
+ VKI_REP_PROTOCOL_CLIENT_ADD_NOTIFY,
+ VKI_REP_PROTOCOL_CLIENT_WAIT,
+ VKI_REP_PROTOCOL_BACKUP,
+ VKI_REP_PROTOCOL_SET_AUDIT_ANNOTATION,
+ VKI_REP_PROTOCOL_UNSET_AUDIT_ANNOTATION,
+ VKI_REP_PROTOCOL_SET_TX_DECORATION,
+ VKI_REP_PROTOCOL_SWITCH,
+ VKI_REP_PROTOCOL_DECORATION_GET_LAYER,
+ VKI_REP_PROTOCOL_DECORATION_GET_TYPE,
+ VKI_REP_PROTOCOL_DECORATION_GET_VALUE,
+ VKI_REP_PROTOCOL_DECORATION_GET_BUNDLE,
+ VKI_REP_PROTOCOL_ENTITY_INCONFLICT,
+ VKI_REP_PROTOCOL_ENTITY_IS_MASKED,
+ VKI_REP_PROTOCOL_CLIENT_REMOVE_NOTIFY,
+ VKI_REP_PROTOCOL_MAX_REQUEST
+};
#else
#error Unsupported repcache protocol version
#endif
+/* The following definitions are currently stable accross all repcache protocol
+ versions. If there is any change to them, they need to be versioned
+ properly so that Valgrind works on older versions. */
+
#define VKI_REPOSITORY_DOOR_NAME "/system/volatile/repository_door"
#define VKI_REP_PROTOCOL_NAME_LEN 120
enum vki_repository_door_requestid {
|
|
From: <sv...@va...> - 2015-12-04 13:14:19
|
Author: iraisr
Date: Fri Dec 4 13:14:10 2015
New Revision: 15741
Log:
Dwarf line info reader now correctly interprets 'is_stmt' register
Line numbers should correctly reflect all instructions belonging to a source line,
regardless of is_stmt value. Previously only instructions covered by
'is_stmt = 1' were attributed to a source line.
Fixes BZ#356044
Modified:
trunk/NEWS
trunk/coregrind/m_debuginfo/readdwarf.c
trunk/coregrind/m_debuginfo/storage.c
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Fri Dec 4 13:14:10 2015
@@ -54,6 +54,7 @@
355188 valgrind should intercept all malloc related global functions
355455 expected stderr of test cases wrapmalloc and wrapmallocstatic overconstrained
355454 do not intercept malloc related symbols from the runtime linker
+356044 Dwarf line info reader misinterprets is_stmt register
n-i-bz Fix incorrect (or infinite loop) unwind on RHEL7 x86 32 bits
Modified: trunk/coregrind/m_debuginfo/readdwarf.c
==============================================================================
--- trunk/coregrind/m_debuginfo/readdwarf.c (original)
+++ trunk/coregrind/m_debuginfo/readdwarf.c Fri Dec 4 13:14:10 2015
@@ -91,7 +91,6 @@
ULong li_header_length;
UChar li_min_insn_length;
UChar li_max_ops_per_insn;
- UChar li_default_is_stmt;
Int li_line_base;
UChar li_line_range;
UChar li_opcode_base;
@@ -150,7 +149,6 @@
UInt file;
UInt line;
UInt column;
- Int is_stmt;
Int basic_block;
UChar end_sequence;
} LineSMR;
@@ -230,7 +228,7 @@
static LineSMR state_machine_regs;
static
-void reset_state_machine ( Int is_stmt )
+void reset_state_machine ( void )
{
if (0) VG_(printf)("smr.a := %p (reset)\n", NULL );
state_machine_regs.last_address = 0;
@@ -240,7 +238,6 @@
state_machine_regs.file = 1;
state_machine_regs.line = 1;
state_machine_regs.column = 0;
- state_machine_regs.is_stmt = is_stmt;
state_machine_regs.basic_block = 0;
state_machine_regs.end_sequence = 0;
}
@@ -253,7 +250,7 @@
static
void process_extended_line_op( struct _DebugInfo* di,
XArray* fndn_ix_xa,
- DiCursor* data, Int is_stmt)
+ DiCursor* data )
{
UInt len = step_leb128U(data);
if (len == 0) {
@@ -275,19 +272,17 @@
reset_state_machine below */
state_machine_regs.end_sequence = 1;
- if (state_machine_regs.is_stmt) {
- if (state_machine_regs.last_address) {
- ML_(addLineInfo) (
- di,
- safe_fndn_ix (fndn_ix_xa,
- state_machine_regs.last_file),
- di->text_debug_bias + state_machine_regs.last_address,
- di->text_debug_bias + state_machine_regs.address,
- state_machine_regs.last_line, 0
- );
- }
+ if (state_machine_regs.last_address) {
+ ML_(addLineInfo)(
+ di,
+ safe_fndn_ix(fndn_ix_xa,
+ state_machine_regs.last_file),
+ di->text_debug_bias + state_machine_regs.last_address,
+ di->text_debug_bias + state_machine_regs.address,
+ state_machine_regs.last_line, 0
+ );
}
- reset_state_machine (is_stmt);
+ reset_state_machine();
if (di->ddump_line)
VG_(printf)(" Extended opcode %d: End of Sequence\n\n",
(Int)op_code);
@@ -446,29 +441,9 @@
info.li_max_ops_per_insn = 1;
}
- info.li_default_is_stmt = ML_(cur_step_UChar)(&external);
- if (di->ddump_line)
- VG_(printf)(" Initial value of 'is_stmt': %d\n",
- (Int)info.li_default_is_stmt);
-
- /* Josef Weidendorfer (20021021) writes:
-
- It seems to me that the Intel Fortran compiler generates bad
- DWARF2 line info code: It sets "is_stmt" of the state machine in
- the line info reader to be always false. Thus, there is never
- a statement boundary generated and therefore never an instruction
- range/line number mapping generated for valgrind.
-
- Please have a look at the DWARF2 specification, Ch. 6.2
- (x86.ddj.com/ftp/manuals/tools/dwarf.pdf). Perhaps I understand
- this wrong, but I don't think so.
-
- I just had a look at the GDB DWARF2 reader... They completely
- ignore "is_stmt" when recording line info ;-) That's the reason
- "objdump -S" works on files from the intel fortran compiler.
-
- Therefore: */
- info.li_default_is_stmt = True;
+ /* Register is_stmt is not tracked as we are interested only
+ in pc -> line info mapping and not other debugger features. */
+ /* default_is_stmt = */ ML_(cur_step_UChar)(&external);
/* JRS: changed (UInt*) to (UChar*) */
info.li_line_base = ML_(cur_step_UChar)(&external);
@@ -495,7 +470,7 @@
DiCursor end_of_sequence
= ML_(cur_plus)(data, info.li_length + (is64 ? 12 : 4));
- reset_state_machine (info.li_default_is_stmt);
+ reset_state_machine();
/* Read the contents of the Opcodes table. */
DiCursor standard_opcodes = external;
@@ -632,55 +607,49 @@
(Int)op_code, advAddr, state_machine_regs.address,
(Int)adv, (Int)state_machine_regs.line );
- if (state_machine_regs.is_stmt) {
- /* only add a statement if there was a previous boundary */
- if (state_machine_regs.last_address) {
- ML_(addLineInfo)(
- di,
- safe_fndn_ix (fndn_ix_xa,
- state_machine_regs.last_file),
- di->text_debug_bias + state_machine_regs.last_address,
- di->text_debug_bias + state_machine_regs.address,
- state_machine_regs.last_line,
- 0
- );
- }
- state_machine_regs.last_address = state_machine_regs.address;
- state_machine_regs.last_file = state_machine_regs.file;
- state_machine_regs.last_line = state_machine_regs.line;
+ /* only add a statement if there was a previous boundary */
+ if (state_machine_regs.last_address) {
+ ML_(addLineInfo)(
+ di,
+ safe_fndn_ix(fndn_ix_xa,
+ state_machine_regs.last_file),
+ di->text_debug_bias + state_machine_regs.last_address,
+ di->text_debug_bias + state_machine_regs.address,
+ state_machine_regs.last_line,
+ 0
+ );
}
+ state_machine_regs.last_address = state_machine_regs.address;
+ state_machine_regs.last_file = state_machine_regs.file;
+ state_machine_regs.last_line = state_machine_regs.line;
}
else { /* ! (op_code >= info.li_opcode_base) */
switch (op_code) {
case DW_LNS_extended_op:
- process_extended_line_op (
- di, fndn_ix_xa,
- &data, info.li_default_is_stmt);
+ process_extended_line_op(di, fndn_ix_xa, &data);
break;
case DW_LNS_copy:
if (0) VG_(printf)("1002: di->o %#lx, smr.a %#lx\n",
(UWord)di->text_debug_bias,
state_machine_regs.address );
- if (state_machine_regs.is_stmt) {
- /* only add a statement if there was a previous boundary */
- if (state_machine_regs.last_address) {
- ML_(addLineInfo)(
- di,
- safe_fndn_ix (fndn_ix_xa,
- state_machine_regs.last_file),
- di->text_debug_bias + state_machine_regs.last_address,
- di->text_debug_bias + state_machine_regs.address,
- state_machine_regs.last_line,
- 0
- );
- }
- state_machine_regs.last_address = state_machine_regs.address;
- state_machine_regs.last_file = state_machine_regs.file;
- state_machine_regs.last_line = state_machine_regs.line;
+ /* only add a statement if there was a previous boundary */
+ if (state_machine_regs.last_address) {
+ ML_(addLineInfo)(
+ di,
+ safe_fndn_ix(fndn_ix_xa,
+ state_machine_regs.last_file),
+ di->text_debug_bias + state_machine_regs.last_address,
+ di->text_debug_bias + state_machine_regs.address,
+ state_machine_regs.last_line,
+ 0
+ );
}
+ state_machine_regs.last_address = state_machine_regs.address;
+ state_machine_regs.last_file = state_machine_regs.file;
+ state_machine_regs.last_line = state_machine_regs.line;
state_machine_regs.basic_block = 0; /* JRS added */
if (di->ddump_line)
VG_(printf)(" Copy\n");
@@ -719,9 +688,6 @@
break;
}
case DW_LNS_negate_stmt: {
- Int adv = state_machine_regs.is_stmt;
- adv = ! adv;
- state_machine_regs.is_stmt = adv;
if (di->ddump_line)
VG_(printf)(" DWARF2-line: negate_stmt\n");
break;
Modified: trunk/coregrind/m_debuginfo/storage.c
==============================================================================
--- trunk/coregrind/m_debuginfo/storage.c (original)
+++ trunk/coregrind/m_debuginfo/storage.c Fri Dec 4 13:14:10 2015
@@ -419,6 +419,21 @@
/* Zero-sized locs should have been ignored earlier */
vg_assert(loc->size > 0);
+ /* Check if the last entry has adjacent range for the same line. */
+ if (di->loctab_used > 0) {
+ DiLoc *previous = &di->loctab[di->loctab_used - 1];
+ if ((previous->lineno == loc->lineno)
+ && (previous->addr + previous->size == loc->addr)) {
+ if (0)
+ VG_(printf)("Merging previous: addr %#lx, size %d, line %d, "
+ "with current: addr %#lx, size %d, line %d.\n",
+ previous->addr, previous->size, previous->lineno,
+ loc->addr, loc->size, loc->lineno);
+ previous->size += loc->size;
+ return;
+ }
+ }
+
if (di->loctab_used == di->loctab_size) {
UInt new_sz;
DiLoc* new_loctab;
|