Articulo de referencia

cscope

{{cite web|url=https://sourceforge.net/p/cscope/cscope/ci/612a539b585ccdb70a1261652954f579ccedb270/|title=update configure.in script for 15.9 release|via=[[SourceForge]]|first=N...

Cscope es una herramienta de programación desarrollada en la década de 1980 que utiliza una interfaz de usuario basada en texto para permitir a los programadores y desarrolladores de software buscar en el código fuente del lenguaje de programación C. Se usa frecuentemente en proyectos de gran envergadura para facilitar la comprensión del código y encontrar código fuente, funciones, declaraciones, definiciones y expresiones regulares. Desde el año 2000, cscope es gratuito y se distribuye bajo la licencia BSD . El desarrollador original de cscope es Joe Steffen.

Historia

Joe Steffen comenzó a escribir cscope a principios de la década de 1980 como una herramienta de apoyo para su trabajo de programación en una PDP-11 . La herramienta se hizo muy popular dentro de Bell Labs , ya que sus compañeros de trabajo solicitaban más funciones y mejoras, y se utilizó en algunos proyectos de gran envergadura con hasta un millón de líneas de código fuente. [ 2 ]

La herramienta se integró posteriormente en la distribución AT&T Unix . Dicha distribución pasó luego por varios cambios de propietario: a Unix System Laboratories , luego a Novell y finalmente a The Santa Cruz Operation (SCO). [ 2 ]

Cscope en sí está implementado en C. [ 2 ] La interfaz de texto está construida sobre curses . [ 3 ] Cscope está bien integrado con vim y Emacs . [ 3 ]

En abril de 2000, SCO anunció que contribuiría con cscope al código abierto bajo una licencia BSD , aunque seguiría manteniéndolo. Esta decisión se produjo cuando SCO estaba impulsando varias iniciativas en el ámbito del código abierto y Linux, [ 4 ] incluso cuando la competencia de esos ámbitos pronto llevaría a la desaparición de SCO. [ 5 ]

Petr Sorfa, ingeniero de software en SCO, se convirtió en el mantenedor de cscope y trabajó en su primera versión de código abierto, incluyendo su adaptación al entorno GNU gcc . [ 6 ] Posteriormente, Sorfa continuó como mantenedor, a través de una asociación con SourceForge . [ 7 ]

Cscope sigue siendo utilizado por desarrolladores hoy en día, algunos de los cuales están más acostumbrados a usar vi u otros editores de texto, en lugar de editores con interfaz gráfica . Las funciones de cscope están disponibles en mayor o menor medida en los editores de texto gráficos modernos.

Los responsables del mantenimiento de Cscope fueron posteriormente Hans-Bernhard Bröker y Neil Horman. [ 8 ]

El archivo makefile de nivel superior del kernel de Linux tiene un objetivo para compilar para cscope. [ 9 ] De hecho, un libro de O'Reilly Media sobre redes Linux publicado en 2006 recomienda el uso de cscope para explorar el código fuente del kernel de Linux. [ 10 ] Del mismo modo, un libro de Packt Publishing sobre programación del kernel de Linux publicado en 2024 tiene múltiples menciones del uso de cscope en relación con la comprensión de aspectos del código fuente del kernel. [ 9 ]

Los analistas también han encontrado útil cscope para las revisiones de auditoría de software . Según un libro de 2007 publicado por John Wiley & Sons , "Cscope puede ser invaluable para la auditoría y es utilizado regularmente por muchos investigadores de seguridad". [ 3 ]

Uso

Cscope se utiliza en dos fases. Primero, un desarrollador crea la base de datos cscope del código fuente. El desarrollador a menudo puede usar findu otras herramientas de Unix para obtener la lista de nombres de archivo necesarios para indexar en un archivo llamado cscope.files. Luego, el desarrollador crea una base de datos usando el comando cscope -b -q -k. La kbandera está destinada a crear una base de datos para el código fuente de un sistema operativo o biblioteca C. No buscará en /usr/include. Segundo, el desarrollador ahora puede buscar en esos archivos usando el comando cscope -d. Se debe reconstruir un índice cada vez que se realicen cambios en los archivos indexados. [ 11 ]

Los menús dentro de la interfaz de usuario de cscope permiten al desarrollador buscar funciones, variables y directivas de preprocesador, incluidas las macros. [ 12 ]

Existen varias otras opciones para el comando cscope que pueden personalizar su comportamiento. [ 12 ] Se sabe que el archivo de base de datos de cscope a veces se vuelve grande y requiere suficiente espacio en disco. [ 10 ]

En su concepción, cscope se creó para buscar contenido dentro del código C, pero también puede utilizarse (con algunas salvedades) para código C++ y Java . [ 8 ] Cscope también puede procesar archivos lex y yacc . [ 12 ]

Aunque cscope normalmente se ejecuta en sistemas Unix y Linux, también se ha compilado una versión para Microsoft Windows . [ 3 ]

Software derivado

Véase también

Referencias

  1. Horman, Neil (24 de julio de 2018). "Actualizar el script configure.in para la versión 15.9" . Recuperado el 4 de octubre de 2018 a través de SourceForge .
  2. 1 2 3 "La historia de Cscope" . SourceForge . Consultado el 6 de septiembre de 2023 .
  3. 1 2 3 4 Anley, Chris; Heasman, John; Lindner, Felix "FX"; Richarte, Gerardo (2007). The Shellcoder's Handbook: Discovering and Exploiting Security Holes (Segunda edición). Indianápolis: John Wiley & Sons. págs. 482–483 .  
  4. "SCO contribuye a la comunidad de código abierto" (Comunicado de prensa). HPCwire. 21 de abril de 2000. Consultado el 15 de agosto de 2025 .
  5. Pittman, Jennifer (16 de octubre de 2000). "Separación: Empresa local de alta tecnología se prepara para fusionarse, escindirse y desaparecer" . Santa Cruz Sentinel . págs. A-1, A-10 vía Newspapers.com. Véase también el recuadro lateral "Empleados de 'New Caldera' permanecerán en Santa Cruz", misma firma, mismas páginas.
  6. "cscope.spec" . Debian.org . Consultado el 15 de agosto de 2025 .
  7. "cscope" . Open Invention Network . Consultado el 15 de agosto de 2025 .Véase también esta página .
  8. 1 2 "Cscope" . SourceForge . Recuperado el 2 de septiembre de 2011. El analizador difuso admite C, pero es lo suficientemente flexible como para ser útil para C++ y Java[...]
  9. 1 2 Billimoria, Kaiwan N. (2024). Programación del núcleo de Linux: una guía completa y práctica de los aspectos internos del núcleo, la escritura de módulos y la sincronización del núcleo (Segunda edición). Birmingham, Reino Unido: Packt Publishing. pp. 30, también 3, 215, 401, 630, 713, 757.  
  10. 1 2 Benvenuti, Christian (2006). Comprensión de los aspectos internos de la red Linux . Sebastopol, California: O'Reilly Media. pág. 19. 
  11. "Uso de Cscope en proyectos grandes (ejemplo: el kernel de Linux)" . SourceForge . Consultado el 15 de agosto de 2025 .
  12. 1 2 3 Robbins, Arnold (1999). UNIX en pocas palabras: una guía de referencia rápida para System V Release 4 y Solaris 7 (tercera edición). Sebastopol, California: O'Reilly Media. págs. 37–38 .  
  13. Página principal de KScope
  14. Página principal de Seascope
  15. Página principal de Gscope
  16. "CCTree - Explorador de árbol de llamadas de C: navegador de código fuente basado en Cscope; analizador de flujo de código : Vim en línea" . 
  17. Página principal de Csope
  • Sitio web oficialEdita esto en Wikidata
  • Herramientas de navegación del código fuente