This is the mail archive of the gdb@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: Sending signal to inferior program.


On Mon, 06 Jun 2011 22:25:16 +0200, logitech wrote:
> the same thing as forking a thread from gdb

BTW GDB is not thread safe so the forked thread must not modify anything of
GDB, that is it is easier to just fork() from GDB, which is mostly the same as
running a completely separate program - for example by the GDB `shell'
command.


> Instead of CTRL-C, I want the signal to be sent from gdb to the prog. I want
> to actually break the execution of the program at a specific time, so to
> send the signal to the program at say 100ms.

Maybe like this way?

cat >x <<EOH
set target-async on 
set non-stop on
set pagination off
file sleep
run 1h &
define break-in-1sec
	shell date --iso=seconds; sleep 1s; date --iso=seconds
	interrupt
end
info threads
EOH
gdb -x ./x
GNU gdb (GDB) 7.3.50.20110605-cvs
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-unknown-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
  Id   Target Id         Frame 
* 1    process 6427 "sleep" (running)
(gdb) break-in-1sec 
2011-06-06T23:01:03+0200
2011-06-06T23:01:04+0200
(gdb) 
[process 6427] #1 stopped.
0x00007ffff7aeccd0 in __nanosleep_nocancel () at ../sysdeps/unix/syscall-template.S:82
82	T_PSEUDO (SYSCALL_SYMBOL, SYSCALL_NAME, SYSCALL_NARGS)
bt
#0  0x00007ffff7aeccd0 in __nanosleep_nocancel () at ../sysdeps/unix/syscall-template.S:82
#1  0x0000000000403c58 in rpl_nanosleep (requested_delay=0x7fffffffdc20, remaining_delay=0x0) at nanosleep.c:93
#2  0x00000000004032c5 in xnanosleep (seconds=<optimized out>) at xnanosleep.c:111
#3  0x0000000000401416 in main (argc=<optimized out>, argv=<optimized out>) at sleep.c:147
(gdb) info threads 
  Id   Target Id         Frame 
* 1    process 6427 "sleep" 0x00007ffff7aeccd0 in __nanosleep_nocancel () at ../sysdeps/unix/syscall-template.S:82
(gdb) _


If one runs that break-in-1sec directly from the ./x script it does not work, I
have filed for it:
	http://sourceware.org/bugzilla/show_bug.cgi?id=12850


Regards,
Jan


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