¿Hay alguna manera en Emacs de averiguar qué otros lugares del código llaman a una función específica? Con mi configuración actual (GNU emacs 23.1.1, C codebase), normalmente tengo que buscar en toda la base de código el nombre de la función para ver qué otras funciones la llaman. Sería bueno si pudiera mostrar de manera eficiente todos los nombres de las funciones que llaman a esta función específica que estoy viendo.¿Puede Emacs mostrarme dónde se llama una función específica?
Respuesta
Uso xcscope
para esto. Es una biblioteca que hace que Emacs interactúe con la herramienta externa cscope
.
Después de la configuración, puede usar cscope-find-functions-calling-this-function
para obtener una lista de los destinos del código fuente que invocan una determinada función.
http://www-inst.eecs.berkeley.edu/~cs186/fa05/debugging/xcscope.el http://www.emacswiki.org/emacs/CScopeAndEmacs
Puede utilizar la función semantic-symref
(C-c , G
) del paquete de CEDET. Puede usar las bases de datos GNU Global o CTags para encontrar llamantes si existen. También podría analizar fuentes para encontrar ocurrencias.
Aquí hay un fragmento de mis viejos .emacs archivo
que hace: pedir algo para encontrar a partir de archivos de símbolos etags-(find-tag-tag) grep para ello de acuerdo con el modo de
(defun find-caller (tagname)
"Find occurences of tagname in files in the current directory
matching extension of current file."
(interactive (list (find-tag-tag "Find caller: ")))
(let ((cmd "grep -n "))
(cond
((member major-mode '(lisp-mode cmulisp-mode))
(grep (concat cmd "-i '" tagname "' *.lisp")))
((eq major-mode 'c-mode)
(grep (concat cmd "'" tagname "' *.[ch]")))
((member major-mode '(latex-mode tex-mode))
(grep (concat cmd "-i '" tagname "' *.tex")))
((eq major-mode 'emacs-lisp-mode)
(grep (concat cmd "'" tagname "' *.el")))
(t (grep (concat cmd "'" tagname "' *"))))))
solo FYI: CEDET puede usar grep para encontrar a los llamantes –
- 1. lo que se llama anillo en emacs?
- 2. ¿Alguien puede mostrarme una buena fuente para aprender servicios web?
- 3. ¿Puede Google Analytics mostrarme visitas por hora?
- 4. La función no se llama
- 5. ¿Cómo saber dónde se define una función?
- 6. ¿Puede mostrarme cómo reescribir las funciones en lisp?
- 7. ¿Se puede devolver una función JavaScript?
- 8. Cómo llamar .ajaxStart() en ajax específica llama
- 9. ¿cómo se llama una función administrada (C#) desde C++?
- 10. celda de Excel desde la que se llama una función
- 11. Restricción Valgrind a una función específica
- 12. ejecuta continuamente una función emacs lisp
- 13. ¿Cómo se usa el método getView() y dónde se llama?
- 14. Reemplazando una función en Emacs Lisp
- 15. ¿Cómo saber en qué biblioteca se define una función específica?
- 16. Comprobando si se llama a una función usando Mocha
- 17. Javascript obtener el elemento DOM una función se llama desde
- 18. función listo jQuery se llama dos veces
- 19. pycharm find donde se llama la función Python
- 20. ¿Puede alguien mostrarme el "mundo hola" de Paypal IPN?
- 21. C# - ¿Alguien puede mostrarme un ejemplo muy simple de interfaces
- 22. Se puede inicializar una serie Java con un solo carácter se repite a una longitud específica
- 23. ¿Cómo se define la función en .emacs?
- 24. función count llama
- 25. MySQL: ¿Cómo encontrar dónde se usa una clave primaria específica como clave externa en otras tablas?
- 26. ¿Dónde está el archivo .emacs en Windows GNU emacs
- 27. ¿Cómo encontrar de dónde se importó una función en Python?
- 28. Determine dónde se ha llamado una función con PHP
- 29. función que llama interior preg_replace eso dentro de una función
- 30. ¿Dónde está el código que se llama cuando llama a getApplicationContext()?
¿Cual idioma? –
Estoy usando Emacs para la compilación de programación C con GCC 4.4.3 en Linux – ant2009