¿Alguien ha intentado crear un archivo de registro de comunicaciones entre procesos? ¿Podría alguien darme un pequeño consejo sobre la mejor manera de lograr esto?Snoop interprocess communications
Respuesta
La pregunta no es del todo clara, y los comentarios hacen que sea menos clara, pero en fin ...
Las dos cosas para probar primero son ipcs y strace -e trace=ipc.
buenas herramientas. Aunque no tengo claro cómo usaría ipcs. – fabrizioM
Si desea registrar todo el IPC (parece muy intenso), debe considerar la instrumentación.
Son muchas y buenas herramientas para esto, consulte PIN en perticular, this section del manual;
En este ejemplo, se muestra cómo hacer instrumentación más selectivo por examinar las instrucciones. Esta herramienta genera un rastro de todas las direcciones de memoria a las que hace referencia un programa. Esto también es útil para la depuración y para simular una memoria caché de datos en un procesador .
Si realiza un ajuste y un análisis de gran peso, consulte TAU (Utilidad de ajuste y análisis).
La comunicación a un controlador de núcleo puede tomar muchas formas. Generalmente hay un archivo de dispositivo especial para la comunicación, o puede haber un tipo de socket especial, como NETLINK. Si tiene suerte, hay un dispositivo de caracteres para el cual read() y write() son el único medio de interacción: si ese es el caso, entonces esas llamadas son fáciles de interceptar con una variedad de métodos. Si no tiene suerte, se hacen muchas cosas con ioctls o algo aún más difícil.
Sin embargo, ejecutar 'strace' en el programa utilizando el controlador del kernel para comunicarse puede revelar casi todo lo que hace, aunque 'ltrace' podría ser más legible si existen bibliotecas que el programa utiliza para la comunicación. Sintonizando los argumentos a 'strace', es probable que pueda obtener un volcado que contiene sólo la información que necesita:
- En primer lugar, simplemente calcular visualmente las llamadas y tratar de averiguar los medios de comunicación del núcleo
- Entonces, añadir filtros para strace llamar para registrar sólo el núcleo de comunicación llama
- Por último, asegúrese de strace registra las cadenas completas de todas las llamadas, por lo que no tiene que tratar con datos truncados
las respuestas que apuntan a La depuración del IPC probablemente no sea relevante, ya que la comunicación con el kernel casi nunca tiene nada que ver con IPC (al menos no las diferentes instalaciones de UNIX IPC).
- 1. LSL communications
- 2. Snoop no detecta
- 3. ¿El boost :: interprocess threadsafe?
- 4. Boost :: Interprocess Shared Memory Bus Error
- 5. boost interprocess mutex vs boost hilo mutex
- 6. boost :: interprocess memory allocator on anonymous segment
- 7. ¿Boost :: interprocess está listo para el horario de máxima audiencia?
- 8. ¿Cómo puedo tomar posesión de un boost abandonado :: interprocess :: interprocess_mutex?
- 9. ¿Hay algo como Snoop (WPF) o FireBug (ASP.NET) para Windows Forms?
- 10. Linux: ¿Snoop una señal sin destrozar los registros para el siguiente volcado de núcleo?
- 11. Asignadores de C++, pasando específicamente argumentos de constructor a los objetos asignados con boost :: interprocess :: cached_adaptive_pool
- 12. json decode en php
- 13. Boost, memoria compartida y vectores
- 14. permiso de ajuste de la memoria compartida creado por impulso
- 15. Alias para una plantilla C++?
- 16. ¿Cómo hacer una prueba a prueba de su aplicación wpf?
- 17. ¿Cómo comunicarse entre php e impulsar la biblioteca IPC?
- 18. ¿Cómo obtengo un nombre de archivo de una ruta completa con PHP?
- 19. ¿Cómo vincular correctamente un ListBoxItem en WPF?
- 20. impulso interproceso llamado restos mutex adquiridos después de un bloqueo
- 21. Firebug como herramienta para WPF?
- 22. Cómo desactivar la lengüeta de tope en un StackPanel
- 23. Útiles utilidades WPF
- 24. Cómo escapar de un apóstrofo o de citas en un JSP (utilizado por JavaScript)
- 25. ¿Qué significa 'interfaz de usuario enriquecida'?
- 26. No se puede crear PoolableConnectionFactory
- 27. ¿Cómo puedo compartir HWND entre aplicaciones de 32 y 64 bits en Win x64?
- 28. Pasar la propiedad del objeto en C++
- 29. Boost Message Queue
- 30. ¿Diferencia entre las propiedades IsOpen y Visibilidad de Popup?
¿Qué tipo de comunicación? Sockets TCP? Zócalos Unix? DBUS? ¿Memoria compartida? – thejh
¿Qué tipo de IPC? – st0le
Gracias chicos. ¡En realidad, no lo sé! Quiero cambiar una tarjeta de interfaz por otra. Esperaba registrar las llamadas de la API al controlador original y analizar el resultado para comprender los pormenores del mismo y luego traducirlo a la API de otra tarjeta – Patrick