es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Instrucción de ensamblado que no afecta la ejecución del código.

Tengo una pequeña aplicación de línea de comandos llamada “depurador” que actúa como depurador para un proceso A. Ahora esta aplicación funciona bien con x86 y x64. Ahora tengo que migrar este “depurador” a la arquitectura ARM64. Lo que hace este depurador muy brevemente es adjuntar puntos de interrupción, es decir, escribir la instrucción int3 (0xcc) al inicio de las funciones que encuentra en el archivo de mapa del Proceso A. Ahora, cada vez que intento ejecutar mi aplicación a través de esta aplicación “depurador”, puedo establecer puntos de interrupción pero la aplicación continuamente obtiene una “violación de acceso” y se bloquea violentamente. Tengo la sospecha de que para la arquitectura ARM64, la instrucción “0xcc” que escribo al inicio de las funciones está causando la violación de acceso. He intentado usar las instrucciones “0x150”, “0xF000” en lugar de “0xcc”. Para más información, consulte mi pregunta anterior aquí.

Para asegurarme de que este es el único problema, quiero agregar una instrucción que no afecte la ejecución del código de ninguna manera para confirmar que el único problema es la instrucción que estoy escribiendo como punto de interrupción en mi código de depurador. Por favor, ayúdame a limitar mi problema y proporciona enlaces para todas tus respuestas.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en ensamblaje, depuración en Visual Studio, violación de acceso y ARM64, sugiero probar la instrucción “nop” (sin operación) como un punto de interrupción de prueba, lo cual no debería afectar la ejecución del código. En cuanto al problema de violación de acceso, es posible que el diseño de memoria de la arquitectura ARM64 difiera del x86 y x64, por lo que la instrucción “int3” puede no funcionar como se espera. Verificar nuevamente el diseño de memoria y la alineación podría ayudar a identificar la causa raíz del problema. Aquí hay un enlace a un artículo útil sobre el tema: https://www.codeproject.com/articles/1275873/arm-architecture-part-memory-alignment-and-structu

Comments are closed.