Pregunta

Quiero establecer una condición en un punto de ruptura para romper el BGF sólo si aparece un determinado nombre de función en la traza. ¿Cuál es la mejor manera de hacer esto?

¿Fue útil?

Solución

No estoy seguro de cómo hacer exactamente lo que pides, pero una posible solución, si tiene acceso al código fuente de la función relevante, es establecer una variable booleana global para true en el comienzo de la función, y ponerlo a false justo antes de que se cierra la función. Posteriormente, se podría establecer un punto de interrupción condicional (usando el comando condition) para detener sólo cuando esta variable booleana es true.

Otros consejos

Una solución más simple que Python scripting utiliza una punto de interrupción temporal .

Se ve así:

b ParentFunction
command 1
  tb FunctionImInterestedIn
  c
end

Cada vez que se rompe en ParentFunction, deberá definir un punto de interrupción de una sola vez de la función que realmente le interesa, a continuación, siga funcionando (presumiblemente hasta llegar a ese punto de ruptura).

Ya que va a romper exactamente una vez en FunctionImInterestedIn, esto no va a funcionar si FunctionImInterestedIn se llama varias veces en el contexto de ParentFunction y desea romper en cada invocación.

Alternativa a la respuesta de rix0rrr:

b main
commands
set $inParentFunction = 0
c
end

b ParentFunction
commands
set $inParentFunction = 1
c
end

b FunctionImInterestedIn if ($inParentFunction)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top