2017-02-24 3 views
0

Unter Windows kann ich globalflag so einstellen, dass der Start eines Programms mit einem Debugger verknüpft wird. Selbst wenn ich ein Programm über ein Skript aufruft, startet der Debugger mein Programm und kann an einer Codezeile brechen.Kann ich ein Linux-Programm so einstellen, dass es von gdb gestartet und angehängt wird?

Also, wie dies mit gdb auf Linux zu tun? Zum Beispiel, ich habe /home/my/a.out mit Option -g von gcc kompiliert, ich wünsche, der jemals in a.out nennt, wird es von GDB gebracht werden:

  1. Muss ich zu einige Systemdateien ändern, um zu sagen, /home/my/a.out sollte von gdb gestartet werden und automatisch anhängen?

  2. Wie gdb automatisch anhängen und dann bei 'main' brechen und ausführen?

+0

können Sie dieses Programm durch ein Skript mit demselben Namen ersetzen, der das Programm ausführt und dann an gdb anfügt? –

Antwort

1

Muss ich eine Systemdatei zu ändern, zu sagen, von GDB /home/my/a.out gestartet werden soll und automatisch anhängen?

Sie brauchen keine System Dateien zu ändern, dies zu achive. Ändern Sie stattdessen /home/my/a.out.

Verschieben Originalbinärbild in einen neuen Namen:

mv /home/my/a.out /home/my/a.out.orig 

ersetzen /home/my/a.out mit einem Shell-Skript:

cat > /home/my/a.out <<'EOF' 
#!/bin/sh 
exec gdb -ex start --args /home/my/a.out.orig "[email protected]" 
EOF 
chmmod +x /home/my/a.out 

Wie GDB Auto befestigen machen, und dann bricht in 'main' und Renn?

Oben Skript wird das automatisch tun.

Verwandte Themen