12
votes

Gdb pause si le cadre est en arrière-plan

Je veux définir une condition sur un point d'arrêt GDB pour ne casser que si un certain nom de la fonction apparaît dans la liste arrière. Quelle est la meilleure façon de faire cela?


3 Réponses :


3
votes

Je ne sais pas comment faire exactement ce que vous demandez, mais une solution de contournement éventuelle, si vous avez accès au code source de la fonction correspondante, il est de définir une variable booléenne globale à true Au début de la fonction, puis définissez-la sur False juste avant la sortie de la fonction. Ensuite, vous pouvez définir un point d'arrêt conditionnel (à l'aide de la commande ) pour arrêter uniquement lorsque cette variable booléenne est true .


1 commentaires

C'est ce que j'ai fini par faire, mais j'aimerais savoir comment le faire sans recompilation.




0
votes

Alternative à la réponse de Rix0RRR:

b main
commands
set $inParentFunction = 0
c
end

b ParentFunction
commands
set $inParentFunction = 1
c
end

b FunctionImInterestedIn if ($inParentFunction)


0 commentaires