Colocando algumas linhas em um script para executá-las no gdb

3

Eu quero criar um script ou, na verdade, um atalho para navegar em paz

#!/bin/bash
konsole -e firefox --debug
(gdb) handle SIGPIPE noprint nostop pass
(gdb) handle SIGSEGV noprint nostop pass
(gdb) run

isso não funciona. Espero que alguém me ajude. depois da solução, posso contar uma história. é possível que eu ajude muitas pessoas com isso.

até agora eu posso fazer isso:

criando um script bash com

#!/bin/bash
konsole -e firefox --debug

marcando como executável. duplo clique termina com abertura no terminal esperando que eu digite executar e digite

criando o ~/.gdbinit com o seguinte conteúdo

handle SIGPIPE noprint nostop pass
handle SIGSEGV noprint nostop pass
    
por user371780 07.11.2015 / 23:30

2 respostas

3

Você pode usar Aqui Documentos de bash ( << ) para passar os comandos interativos para gdb :

#!/bin/bash
firefox --debug  <<'EOF'
handle SIGPIPE noprint nostop pass
handle SIGSEGV noprint nostop pass
run
EOF 

Verifique a seção Here Documents de man bash para ter mais ideia.

Exemplo:

$ cat scr.sh 
#!/bin/bash
firefox --debug <<'EOF'
help
quit
EOF

$ bash scr.sh 
GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1
Copyright (C) 2014 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-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/lib/firefox/firefox...(no debugging symbols found)...done.
(gdb) (gdb) (gdb) (gdb) (gdb) (gdb) (gdb) List of classes of commands:

aliases -- Aliases of other commands
breakpoints -- Making program stop at certain points
data -- Examining data
files -- Specifying and examining files
internals -- Maintenance commands
obscure -- Obscure features
running -- Running the program
stack -- Examining the stack
status -- Status inquiries
support -- Support facilities
tracepoints -- Tracing of program execution without stopping the program
user-defined -- User-defined commands

Type "help" followed by a class name for a list of commands in that class.
Type "help all" for the list of all commands.
Type "help" followed by command name for full documentation.
Type "apropos word" to search for commands related to "word".
Command name abbreviations are allowed if unambiguous.
(gdb) 

$  ##Back to prompt
    
por heemayl 08.11.2015 / 02:37
0

tudo bem, funciona. Agora eu sei como criar uma nova linha aqui. é shift + enter. apenas para o modo de edição. talvez 4 espaços funcionem ....     apenas 600 caracteres wtf?

this is the code:
#!/bin/bash
firefox --debug <<'EOF'
handle SIGPIPE noprint nostop pass
handle SIGSEGV noprint nostop pass
run
EOF

não precisa de "konsole -e" ...... depois basta clicar duas vezes no script, então gdbinit pode ser deletado

obrigada heemail. você salvou a vida de muitos, muitos usuários Linux frustrados que são crash do firefox muito altos! me desculpe por adicionar o texto acima, mas não é necessário o konsole -e, que foi culpa minha. Agora estou realmente curioso para saber o que significa EOF.

    
por user371780 08.11.2015 / 05:23