C'è un modo in Emacs per scoprire quali altri posti nel codice chiamano una funzione specifica? Con il mio setup corrente (GNU emacs 23.1.1, C codebase), normalmente devo cercare l'intero codice base per il nome della funzione per vedere quali altre funzioni lo chiamano. Sarebbe bello se potessi visualizzare in modo efficiente tutti i nomi delle funzioni che chiamano questa funzione specifica che sto guardando.Can Emacs può mostrarmi dove viene chiamata una funzione specifica?
risposta
Io uso xcscope
per questo. È una libreria che consente a Emacs di interagire con lo strumento esterno cscope
.
Dopo l'installazione, è possibile utilizzare cscope-find-functions-calling-this-function
per ottenere un elenco di destinazioni di codice sorgente che chiamano una determinata funzione.
http://www-inst.eecs.berkeley.edu/~cs186/fa05/debugging/xcscope.el http://www.emacswiki.org/emacs/CScopeAndEmacs
È possibile utilizzare la funzione semantic-symref
(C-c , G
) dal pacchetto CEDET. Può utilizzare i database GNU Global o CTags per trovare i chiamanti se esistono. Potrebbe anche analizzare le fonti per trovare le occorrenze.
: ecco un frammento dal miei vecchi .emacs
lo fa: cosa chiedere di trovare da etags-tagfile (find-tag-tag) grep per esso secondo le modalità
(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 può usare grep per trovare i chiamanti –
- 1. pycharm trova dove viene chiamata la funzione Python
- 2. Emacs, attiva una finestra specifica
- 3. Come scoprire dove viene definita una funzione?
- 4. Can Python può stampare una definizione di funzione?
- 5. Can Dapper può restituire valori da una funzione SQL?
- 6. Google Analytics può mostrarmi visite per ora?
- 7. Chiamata di una funzione PowerShell specifica dalla riga di comando
- 8. Come richiamare un evento automaticamente quando viene chiamata una funzione?
- 9. estraendo una chiamata nome funzione da una funzione chiamata
- 10. Perché viene chiamata la funzione? JavaScript/Window
- 11. Quale contesto viene chiamata una funzione in Linux Kernel
- 12. Perché la funzione textFieldShouldReturn non viene chiamata?
- 13. Can. Emacs legge le variabili d'ambiente?
- 14. La funzione Flex Set non viene chiamata
- 15. Can Emacs comando eseguito in background
- 16. Can MongoDB può ordinare alfanumerico?
- 17. Separare una funzione specifica jQuery
- 18. Quale funzione viene chiamata quando viene terminata l'app per iPhone?
- 19. Can Node.js può invocare Chrome?
- 20. Python - Esiste una funzione che viene chiamata quando un oggetto non implementa una funzione?
- 21. Can ToArray() può generare un'eccezione?
- 22. Sovrascrittura di una funzione in Emacs Lisp
- 23. Can SqlBulkCopy può creare una tabella da una selezione Sql
- 24. Posso intercettare una funzione chiamata direttamente?
- 25. esegue continuamente una funzione emacs lisp
- 26. Ottenere chiamata nome della funzione da funzione chiamata
- 27. emacs: apre tutti i file .txt in una directory specifica in una modalità principale specifica
- 28. Can GHCi può dirmi il tipo di una funzione Haskell locale?
- 29. La funzione di avanzamento di libcURL non viene chiamata
- 30. Can static_cast può generare un'eccezione in C++?
Quale lingua? –
Sto usando Emacs per la compilazione di programmazione C con GCC 4.4.3 su Linux – ant2009