Lumberyard
Guía del usuario (Version 1.21)

Depuración Waf con AZ Code Generator

La versión publicada de AZ Code Generator es preliminar y está sujeta a cambios.

Puede depurar la salida de la integración de scripts Python de Waf utilizando PyCharm y unos puntos de entrada de depuración claves. Para obtener más información acerca de la integración Waf, consulte Integración de AZ Code Generator con Waf .

Requisitos previos 

Antes de empezar, siga las instrucciones para Configurar PyCharm para depurar Waf . El depurador PyCharm se debe configurar para depurar lmbr_waf antes de poder continuar.

Identificación y configuración de la salida de depuración

Todas las salidas de integración Waf de AZ Code Generator tienen como prefijo az_code_gen. Para ver la salida adicional de la creación y ejecución de tareas, añada --zones=az_code_gen a la línea de comando de Waf. Esto expone los comandos que invocan a AZ Code Generator y resultan útiles para depurar la propia utilidad AZ Code Generator. Para obtener más información, consulte Depuración de la utilidad AZ Code Generator.

Depuración de configuración Wscript

Para depurar la mayoría de problemas de configuración, es mejor establecer un punto de ruptura en el método create_code_generator_tasks en dev\Tools\Build\waf-<version>\lmbrwaflib\az_code_generator.py. Este método se llama para cada archivo wscript que utiliza la característica az_code_gen. Interpreta directamente los pases dados y genera una tarea az_code_gen para cada archivo de entrada en cada pase. 

Depuración de creación de tareas de az_code_gen

La función create_az_code_generator_task crea tareas de az_code_gen. Recopila la mayor parte de información y la introduce en la tarea. Cada tarea se añade a la tarea Waf az_code_gen_groupa fin de garantizar que se ejecuta antes que otras tareas.

Depuración de la ejecución de tareas az_code_gen

Los comandos runhandle_code_generator_output son puntos importantes en la ejecución de tareas. 

El comando runtoma la información disponible y genera un archivo de argumentos de estilo Clang prefijado con el símbolo @. El archivo de argumentos se transfiere a la línea de comando la utilidad AZ Code Generator.

handle_code_generator_output: la utilidad AZ Code Generator devuelve un objeto JSON con una o más de las entradas que handle_code_generator_output analiza. Si la utilidad AZ Code Generator devuelve una respuesta JSON no válida, debida a errores durante la ejecución, la tarea Waf devuelve el mensaje de error No JSON-Object could be decoded. Para descubrir el valor de devolución que no podría gestionarse, ejecute el comando fuera de Waf.