El estudio hecho al código de DITools sirvió para identificar una serie de limitaciones y problemas que a continuación se enumeran:
Se pueden usar sólo dos ficheros de comandos.
Recordemos que se usarán sólo dos ficheros de comandos de reenlace,
y estos dos son los declarados en las variables de entorno
DI_RUNTIME_FILE
y DI_CONFIG_FILE
. Tener sólo dos
ficheros de configuración obliga a modificar con frecuencia fichero
que pueden llegar a ser muy grandes. A la larga esto puede llevar
al usuario a errores y confusión.
Carece de mecanismos de protección. No se incorpora ningún mecanismo que contraste la información entre los ficheros de comandos y/o que deduzca si hay algún tipo de contradicción o interacción indeseable entre ambos ficheros. Esto puede llevar errores difíciles de detectar.
Alta dependencia respecto a rld(5) e Irix. Al basarse tan fuertemente en mecanismos internos de Irix es fácil que se produzcan incompatibilidades serias de una versión a otra del sistema operativo. Además, al disponer tan sólo de una parte de la información (la parte que nos suministra rld(5)), es difícil implementar chequeos que comprueben la consistencia de los estructuras en memoria.
Las redefiniciones no son muy fiables.
Como se ha comentado antes, si el "Runtime Linker" ha resuelto
alguna referencia a un símbolo, antes de haber instalado la
redefinición en él, esta definición no tendrá efectos sobre algún o
algunos DSO. De la misma forma la presencia de la variable de
entorno LD_BIND_NOW
inutilizará todas las definiciones que se
instalen.
Los "callback" parecen no funcionar correctamente. Los "callback" se presentan con un código confuso, poco documentado, sin pistas de como usarlos y al parecer es un mecanismo no resistente a programas multi hilo.
Además se intentó, infructuosamente, realizar algunas pruebas para analizar su comportamiento. Al parecer el mecanismo no funciona del todo correctamente, especialmente con las llamadas al código de post-tratamiento de la interposición mediante "callback".
Poca documentación y código poco comentado. No se ha encontrado ninguna documentación que explique el uso e implementación de DITools. El código está muy poco comentado y suele ser confuso en muchas partes. Esto ha llevado a que DITools, a pesar de ser una herramienta en uso durante años en el CEPBA, sea una caja negra que nadie se haya atrevido a tocar.