2012-10-10 1 views
0

J'essaie de configurer mon gdbinit pour que gdb se connecte automatiquement à un certain programme sur une machine distante.Comment est-ce que je peux attacher automatiquement gdb à un nom de programme sur une machine distante?

Mon script est quelque chose comme:

define hook-run 
    target extended-remote | ssh -T remotemachine gdbserver --multi - 
    attach $pid 
    ... <additional complicated stuff here> 
end 

Mon problème, bien sûr, est que je suis absent $ pid. Je peux le trouver en exécutant ssh remotemachine ps | grep myprogram, mais je ne suis pas sûr de savoir comment l'exécuter depuis le script gdb et l'assigner à cette variable $pid. Comment puis je faire ça? Je devine que je vais avoir besoin de Python ici ...

Répondre

2

je peux le trouver en cours d'exécution ssh remotemachine ps | grep myprogram

Je crois que vos choix sont

  1. utiliser Python, ou
  2. dans un shell

pour (2), vous pouvez utiliser quelque chose comme:

define hook-run 
    shell gen-remote-run.sh > .remote-cmd.gdb 
    source .remote-cmd.gdb 
end 

et mettre toute la « magie » de déterminer PID à distance en gen-remote-run.sh

+0

Merci, j'ai fait générer mon script un fichier contenant 'joindre ' où '' est déjà le PID calculé, et travaillé. – Oak

Questions connexes