首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在emacs中设置断点时隐藏源缓冲区

在emacs中设置断点时隐藏源缓冲区
EN

Stack Overflow用户
提问于 2014-09-19 02:58:25
回答 1查看 97关注 0票数 1

我有一个脚本,它是gdb的包装器,它只需设置一些环境变量,然后运行gdb。如果我尝试使用此脚本调试emacs中的程序,则每当我使用C-SPC设置断点时,文件末尾的行将从视图中消失。

脚本是

代码语言:javascript
复制
#/bin/sh
source env.sh
export VARIABLE_FOR_PROGRAM=false
gdb "$@"

env.sh是向LD_LIBRARY_PATH添加目录的几行代码

GDB是由(gdb (concat "gdb.sh --annotate=3 --cd=" dir " --args " exe-dir "/path/to/my.exe " file))))启动的,file是传递给我正在运行的程序的命令行参数。

如果我使用M-x gdb启动GDB并接受默认命令(gdb --annotate=3 my.exe),那么设置断点就可以正常工作。

位于该位置的describe-text-properties将提供以下输出:

代码语言:javascript
复制
Text content at position 47591:


There are 2 overlays here:
 From 47196 to 48046
  semantic             [Show]
 From 47272 to 48046
  face                 nil
  isearch-open-invisible semantic-tag-folding-show-block
  semantic-decoration  t
  semantic-link-hook   nil
  semantic-secondary   t
  semantic-tag-folding t
  semantic-tag-folding-comment-overlay nil
  semantic-tag-folding-marker-string [Show]
  semantic-tag-folding-tag [Show]


There are text properties here:
  fontified            t

(point-max)是64141,所以看起来覆盖图不应该覆盖缓冲区的其余部分。

我有一个又长又复杂的.emacs脚本,但我还没有找到重现问题所需的最小设置脚本。鉴于上述属性(并且isearch-open-invisible具有值引用语义),我怀疑该问题还涉及CEDET/语义。

CEDET和gdb之间是否存在已知的交互作用?

是否存在通过脚本而不是直接运行gdb的已知问题?

我似乎记得我之所以创建这个脚本,是因为在source env.sh; export VAR=false; gdb ...的命令行中运行GDB不起作用。

我使用的是emacs 23.4.1、g++ 4.5.3和GNU gdb (GDB) Red Hat Enterprise Linux (7.0.1-32.el5)

EN

回答 1

Stack Overflow用户

发布于 2014-09-19 08:21:16

您似乎已经启用了‘`semantic tag-folding’模式,该模式来自于'contrib‘区域中的CEDET的bzr版本。“contrib”中的东西不是CEDET核心测试的一部分,所以我不能对它的行为有信心。

作为第一个猜测,最好先禁用配置中与语义标记折叠模式相关的任何部分,看看它是否有帮助,如果没有帮助,则禁用所有contrib加载,这需要在.emacs文件中显式完成。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25920379

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档