diff options
author | Daniel Jacobowitz <drow@false.org> | 2006-10-10 03:17:53 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2006-10-10 03:17:53 +0000 |
commit | 9e35dae42503f6cef9a1f87e31a6f1111f3cb508 (patch) | |
tree | e6cff422c66aa30f070da5269292b7dd67684bb4 /gdb/testsuite/gdb.threads | |
parent | a48251ed04471c0294aead9ee7be8ed9d3a9ad9e (diff) | |
download | gdb-9e35dae42503f6cef9a1f87e31a6f1111f3cb508.zip gdb-9e35dae42503f6cef9a1f87e31a6f1111f3cb508.tar.gz gdb-9e35dae42503f6cef9a1f87e31a6f1111f3cb508.tar.bz2 |
2006-10-09 Jan Kratochvil <jan.kratochvil@redhat.com>
Daniel Jacobowitz <dan@codesourcery.com>
* Makefile.in (expprint.o, parse.o, target.o): Update.
* dwarf2loc.c (dwarf_expr_tls_address): Move body to
target_translate_tls_address. Call it.
* eval.c (evaluate_subexp_standard): Handle UNOP_MEMVAL_TLS.
* expprint.c (print_subexp_standard): Likewise.
(op_name_standard, dump_subexp_body_standard): Likewise.
* expression.h (enum exp_opcode): Add UNOP_MEMVAL_TLS.
(union exp_element): Add objfile.
* parse.c (write_exp_elt_objfile): New function.
(msym_tls_symbol_type): New.
(write_exp_msymbol): Handle TLS.
(operator_length_standard): Handle UNOP_MEMVAL_TLS.
(build_parse): Initialize msym_tls_symbol_type.
* parser-defs.h (write_exp_elt_objfile): New prototype.
* target.c (target_translate_tls_address): New.
* target.h (target_translate_tls_address): Add prototype.
2006-10-09 Jan Kratochvil <jan.kratochvil@redhat.com>
* gdb.threads/tls-nodebug.c, gdb.threads/tls-nodebug.exp: New test.
Diffstat (limited to 'gdb/testsuite/gdb.threads')
-rw-r--r-- | gdb/testsuite/gdb.threads/tls-nodebug.c | 10 | ||||
-rw-r--r-- | gdb/testsuite/gdb.threads/tls-nodebug.exp | 52 |
2 files changed, 62 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.threads/tls-nodebug.c b/gdb/testsuite/gdb.threads/tls-nodebug.c new file mode 100644 index 0000000..73d96f0 --- /dev/null +++ b/gdb/testsuite/gdb.threads/tls-nodebug.c @@ -0,0 +1,10 @@ +/* Test accessing TLS based variable without any debug info compiled. */ + +#include <pthread.h> + +__thread int thread_local = 42; + +int main(void) +{ + return 0; +} diff --git a/gdb/testsuite/gdb.threads/tls-nodebug.exp b/gdb/testsuite/gdb.threads/tls-nodebug.exp new file mode 100644 index 0000000..ee92a3f --- /dev/null +++ b/gdb/testsuite/gdb.threads/tls-nodebug.exp @@ -0,0 +1,52 @@ +# tls.exp -- Expect script to test thread-local storage without debuginfo +# Copyright (C) 2006 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +# Please email any bugs, comments, and/or additions to this file to: +# bug-gdb@prep.ai.mit.edu + +set testfile tls-nodebug +set srcfile ${testfile}.c +set binfile ${objdir}/${subdir}/${testfile} + +if [istarget "*-*-linux"] then { + set target_cflags "-D_MIT_POSIX_THREADS" +} else { + set target_cflags "" +} + +if {[gdb_compile_pthreads "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable []] != "" } { + return -1 +} + +gdb_exit +gdb_start +gdb_reinitialize_dir $srcdir/$subdir + +gdb_load ${binfile} +if ![runto_main] then { + fail "Can't run to main" + return 0 +} + +# Formerly: Cannot access memory at address 0x0 +gdb_test "p thread_local" "= 42" "thread local storage" + +# Done! +# +gdb_exit + +return 0 |