This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFA] [gdb.threads/testsuite] failure while checking backtrace into main


Daniel Jacobowitz wrote:
On Fri, Feb 02, 2007 at 03:26:13PM +0100, Denis PILAT wrote:
We can also just remove the testing of argc and argv from the pthreads.exp file, that would be better I think.

I like this better. But, before I approve it, could you show me what the output looks like from your compiler - both the backtrace and the output of "readelf -wi" for main, argc, and argv? I bet it's a bug that we don't show argc and argv at least as argc=<value optimized out>.

2007-02-02 Denis Pilat <denis.pilat@st.com>

	* gdb.threads/pthreads.exp: remove checking of unused argc and argv
	since they can be removed by a compiler optiisation.

This would be:


	* gdb.threads/pthreads.exp (check_backtraces): Remove checking
	of unused argc and argv.

The backtrace is:

thread apply 1 backtrace

Thread 1 (Thread -1218551680 (LWP 2236)):
#0 0x00560aec in nanosleep () from /lib/tls/libc.so.6
#1 0x0056090f in sleep () from /lib/tls/libc.so.6
#2 0x0804891f in main () at /project/flexdbug/user/pd10/gdb/sts-gdb-repository/vendor/gdb/gdb/testsuite/gdb.threads/pthreads.c:166


53      if (verbose) printf("common_routine (%d)\n", arg);
(gdb) FAIL: gdb.threads/pthreads.exp: check backtrace from main thread



The readelf for a gcc4.1.1 is:

<1><423>: Abbrev Number: 14 (DW_TAG_subprogram)
DW_AT_sibling : <4ad> DW_AT_external : 1 DW_AT_name : main DW_AT_decl_file : 1 DW_AT_decl_line : 118 DW_AT_type : <f5> DW_AT_low_pc : 0x804876b DW_AT_high_pc : 0x804893d DW_AT_frame_base : 0xb0 (location list)
<2><440>: Abbrev Number: 15 (DW_TAG_formal_parameter)
DW_AT_name : argc DW_AT_decl_file : 1 DW_AT_decl_line : 116 DW_AT_type : <f5> <2><44c>: Abbrev Number: 15 (DW_TAG_formal_parameter)
DW_AT_name : argv DW_AT_decl_file : 1 DW_AT_decl_line : 117 DW_AT_type : <4ad>


There is no location for argc and argv. It might be a gcc4.1.1 bug, I don't know how much it can optimize the code, argc and argv are not used.

For gcc3.3 there are DW_AT_location for both argc and argv.

--
Denis


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]