标签: cscope

在vim中通过cscope显示多层函数关系

我知道source insight可以在一个窗口中显示多层函数关系.

例如,我们有四个功能如下

void example_A()
{
    example_B();
}

void example_B()
{
    example_C();
}

void example_C()
{
    example_D();
}

void example_D();
{
    return 5;
}
Run Code Online (Sandbox Code Playgroud)

当我点击example_D()源洞察时,源洞察秀example_C()会调用该函数.

而且,当我点击时example_C(),我看到example_B()正在调用该函数.

这种关系是这样的:

Example_D()
   |
   -->Example_C()
         |
         -->Example_B()
               |
               -->Example_A()
Run Code Online (Sandbox Code Playgroud)

我可以在vim中使用cscope在一个窗口中看到这种关系吗?

谢谢.

vim cscope

9
推荐指数
1
解决办法
167
查看次数

如何将cscope与包含空格的路径一起使用

有一些文件夹包含空格,因此,无法使用cscope索引这些文件夹.

我可以请你帮忙解决这个问题或任何建议.

谢谢朱利叶斯


感谢您的回复.

我使用cscope的步骤如下

  • 找 .-name'*.scala'> cscope.files
  • cscope -b
    在这一步.我看到消息指示找不到文件:
    cscope:找不到文件/ work/project/copy
    cscope:找不到
    cscope的文件:找不到文件fp/src/main/jav ....
    其实fp的副本是一个folder.so我认为cscope无法识别文件夹包含的空间.

当我尝试使用带有cscope的vim时我遇到了这个问题.我需要将此问题移到其他标签上.

vim cscope

8
推荐指数
2
解决办法
3341
查看次数

Emacs的/ CEDET.多个项目和代码完成

我已经使用CEDET 1.0和ECB 2.40设置了emacs 23.1.50.1(受到Alex Otts设置的极大启发,位于http://github.com/alexott/emacs-configs/blob/master/rc/emacs-rc-cedet.el和他对Cedet的热情介绍(http://alexott.net/en/writings/emacs-devenv/EmacsCedet.html),谢谢Alex).它工作得很好,但我需要更多地了解在处理多个项目时如何处理代码完成和符号引用.

我创建了一个简单的ede项目,如下所示:

(ede-cpp-root-project "test"
                      :file "~/src/sw/anchor"
                      :include-path '("/Common")
                      :system-include-path '("~/include"))
Run Code Online (Sandbox Code Playgroud)

加载此项目时,Semantic是否仅在项目配置中指定的各个目录中查找完成?

我按照http://mmmyddd.freeshell.net/blog/Computer/Emacs/usecscopesemanticdbbackend使用cscope作为semanticdb的后端.我可以在没有emacs抛出任何错误的情况下运行semanticdb-enable-cscope-in​​-buffer,但我不知道语义是否使用了我的数据库.我是否可以在项目定义中添加对cscope.out的引用,以便更好地控制在当前上下文中搜索引用的文件?

有几个古怪的东西:

当我尝试打开一个新的源文件时,我收到错误"apply:Searching for program:no such file or directory,global",没有任何反应.如果我再试一次,一切都很好.

当我尝试通过指向锚文件加载项目时,我收到此错误:"if:Wrong type argument:class-p,ede-cpp-root"

emacs cscope cedet emacs-semantic

8
推荐指数
1
解决办法
3075
查看次数

如何将cscope输出放入Vim quickfix窗口?

我想将输出从cscope重定向到Vim quickfix窗口.胶水部分很容易,但我目前陷入错误格式.以下是cscope输出的示例(cscope -L -1 bar):

Format: "filename scope linenumber sourceline"
Example: "abc.cpp foo 25 bar()"
Run Code Online (Sandbox Code Playgroud)

这意味着在foo()中,在abc.cpp的第25行,调用bar().

efm = %f\ %*[^\ ]\ %l\ %m但工作但范围信息丢失.例如:

Input: "abc.cpp foo 25 bar()" becomes
Output: "abc.cpp |25| bar()"
Run Code Online (Sandbox Code Playgroud)

我想要的是在quickfix窗口中包含范围,如下所示:

Input: "abc.cpp foo 25 bar()" becomes
Output: "abc.cpp |25| bar() inside foo()"
Run Code Online (Sandbox Code Playgroud)

是否可以仅使用errorformat执行此操作,或者是否需要编写脚本来操作输出,然后再将其输送到Vim?

vim errorformat cscope

7
推荐指数
1
解决办法
4741
查看次数

使用ctags生成调用层次结构图

是否有人知道如何使用ctagscscope生成调用层次结构图?我需要在终端中运行命令并将输出重定向到文件,而不是在vim中执行.

ctags cscope call-graph

7
推荐指数
1
解决办法
1538
查看次数

如何将cscope用于具有.c,.cpp和.h文件的项目?

我正在开发一个需要理解llvm编译器源代码的项目.要浏览llvm的源代码,我尝试在源的根目录中使用带有以下命令的cscope:

cscope -R*

但它不起作用.因为主要有.cpp和.h文件,但也有一些.c文件.那么现在我不知道如何让cscope工作?有人可以帮忙吗?

c c++ llvm cscope

7
推荐指数
3
解决办法
2万
查看次数

如何在搜索过程中使cscope显示完整的文件路径

当我使用搜索C符号或全局定义时cscope,它显示文件名和行号.我想看到完整的文件路径,以便我可以跳转到我的arch特定文件.例如,当在Linux代码库__switch_to上搜索on cscopebuild的全局定义时,我得到:

Global definition: __switch_to

  File         Line
0 process.c    297 struct task_struct *__switch_to(struct task_struct *prev,
1 switch_to.h   44 #define __switch_to(prev,next,last) do { \
2 process.c    202 struct task_struct *__switch_to(struct task_struct *old,
3 process.c    400 struct task_struct *__switch_to(struct task_struct *prev,
4 process_32.c 211 __switch_to(struct task_struct *prev, struct task_struct *next)
5 process.c     80 void *__switch_to(struct task_struct *from, struct task_struct *to)
6 process_32.c 248 __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
7 process_64.c 272 __switch_to(struct task_struct *prev_p, struct task_struct …
Run Code Online (Sandbox Code Playgroud)

linux ide search ctags cscope

7
推荐指数
1
解决办法
3289
查看次数

cscope:如何使用cscope使用命令行搜索符号?

我在网上找到的所有cscope教程都谈到了如何使用cscope的交互模式来搜索vim和emacs等编辑器中的符号.但我认为应该可以在终端发出命令来做类似的事情

cscope -d -some_options <my symbol>
Run Code Online (Sandbox Code Playgroud)

我应该能够在stdout中看到结果列表,而不必进入ncurse UI并在那里做所有事情.我认为这是可能的,因为"唯一"的前端cbrowser可以在其TclTK UI中执行类似的操作.但不幸的是,代码远远超出了我.

但是,我没有找到有关此功能的文档.

我是在做梦,还是有无证件的做法?

谢谢!

UPDATE

一些进展:如果我使用sub-dir结构制作一个包含少量文件的小项目.然后rici的答案开箱即用.使用更大的项目(数千个具有复杂文件夹结构的文件).即使cscope.out和cscope.files存在于项目文件夹的根目录(也是我当前的工作目录),我从同一个命令和相同的符号中得不到任何东西.我怀疑该命令存在可伸缩性问题.我也试过命令

cat cscope.files | xargs cscope -d -L1 <symbol> -i
Run Code Online (Sandbox Code Playgroud)

无济于事.

UPDATE

非常离奇!我试着用其他一些符号.原来,我正在搜索的特定符号无法使用命令行显示.但我试过的所有其他符号都有效.并且cbrowser找到"失败"符号没有问题.无论如何,我只是运气不好.我将在命令行中单独询问有关此异常的问题.

我认为里奇的答案是正确的.

c c++ vim emacs cscope

7
推荐指数
2
解决办法
1万
查看次数

您使用什么cscope参考卡?

什么是cscope快捷方式/使用的标准/最佳参考卡,我可以打印以便快速参考?

c cscope

6
推荐指数
1
解决办法
764
查看次数

cscope是符号链接的文件

我有一个包含多个文件的源目录.其中一些是其他文件的符号链接.

我创建了一个cscope.files文件.但是当我执行cscope时.它抱怨符号链接的文件:

cscope: cannot find file /home/bla/source/file.cc
Run Code Online (Sandbox Code Playgroud)

我认为这不是很好,但也许正确的方法是更改​​"查找"脚本,只是编写符号链接的目的地?

linux vim bash symlink cscope

6
推荐指数
1
解决办法
3284
查看次数

标签 统计

cscope ×10

vim ×5

c ×3

c++ ×2

ctags ×2

emacs ×2

linux ×2

bash ×1

call-graph ×1

cedet ×1

emacs-semantic ×1

errorformat ×1

ide ×1

llvm ×1

search ×1

symlink ×1