我知道一个Eclipse功能,用于显示修订信息(逐渐着色,更多信息,如版本号,鼠标悬停时的日期和作者),以便在linenumbers视图中显示行中的最后一个更改.
有没有人知道如何为文件激活此功能,或者更好,默认情况下更好?我最近意外地点了一些快捷方式,这使得它显示在一个文件中,但它并没有显示在其他文件中.
在Python 2.5中,我正在使用文件指针读取结构化文本数据文件(大小约为30 MB):
fp = open('myfile.txt', 'r')
line = fp.readline()
# ... many other fp.readline() processing steps, which
# are used in different contexts to read the structures
Run Code Online (Sandbox Code Playgroud)
但是,在解析文件时,我点击了一些有趣的东西,我想报告行号,所以我可以在文本编辑器中调查该文件.我可以fp.tell()用来告诉我字节偏移量在哪里(例如16548974L),但没有"fp.tell_line_number()"来帮助我将其转换为行号.
是否有Python内置或扩展可以轻松跟踪并"告诉"文本文件指针所在的行号?
注意:我不是要求使用line_number += 1样式计数器,因为我fp.readline()在不同的上下文中调用,并且该方法需要更多的调试,而不是将计数器插入代码的右角.
有没有办法删除SyntaxHighlighter的行号?
谢谢!
好吧,我有一个问题这里为我的日志类,但我希望能够调用脚本的行号添加到日志文件条目.
我见过__Line __但这给了我这行所在行的行号.
例:
a.php只会
$log = new Logger();
$log->debug('hello'); // Say this is line #20
Run Code Online (Sandbox Code Playgroud)
现在在debug()的Logger.php类中,我使用__Line __ Magic Constant,例如第300行.当我运行脚本时,我希望日志条目读取'在第20行',但它在'第300行'上读取.除了将行号传递给函数之外还有其他方法可以做到这一点吗?
示例调试类函数
public function debug($message) {
if(DEBUG) {
$this->calling_script = $this->getScriptBaseName();
$this->log_file = LOG_FILE_DIRECTORY."/".$this->calling_script.".log";
$this->fh = fopen($this->log_file, 'a') or die("Can't open log file: ".$this->log_file);
if($this->first_run) {
$this->log_entry = "\n[" . date("Y-m-d H:i:s", mktime()) . "][debug][line:".__LINE__."]:\t".$message."\n";
} else {
$this->log_entry = "[" . date("Y-m-d H:i:s", mktime()) . "][debug][line:".__LINE__."]:\t".$message."\n";
}
fwrite($this->fh, $this->log_entry);
fclose($this->fh);
$this->first_run = false;
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:debug_backtrace()工作得很好!!! …
我正在使用RichTextFx的CodeArea来突出自定义迷你语言代码.
现在,在执行此代码时,我想在当前执行的行前面显示一个小箭头.我知道具体的行号,但行号标签不能发生任何事情.
由于github项目声称显示行号或断点切换作为一个功能,这可能不是很困难.但无法得到任何工作......
提前致谢
从调试的Rails指南,我发现我可以使用这个简单的方法自定义输出到我的日志文件:
logger.debug "Person attributes hash: #{@person.attributes.inspect}"
Run Code Online (Sandbox Code Playgroud)
我决定使用它来跟踪变量如何变化并通过流量控制.
我希望能够看到logger#debug调用方法的代码的行号.像这样的东西:
logger.debug "Person attributes hash: #{@person.attributes.inspect} from line #{LINE_NUMBER_VAR}"
Run Code Online (Sandbox Code Playgroud) 为什么堆栈跟踪显示"第0行",但仅适用于堆栈跟踪中的一个帧?
例如.
...
at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader()
at My.LibraryA.Some.Method():line 16
at My.LibraryB.Some.OtherMethod():line 0
at My.LibraryB.Some.Method():line 22
at My.LibraryA.Some.Method():line 10
Run Code Online (Sandbox Code Playgroud)
背景:
我有一个失败的应用程序,并且正在将堆栈跟踪记录到其日志文件中.构建应用程序时,所有程序集都使用完整的调试信息进行编译(项目属性 - >构建 - >高级 - >调试信息 - >完整),因此生成了PDB文件.为了帮助我诊断出错误的来源,我将PDB文件放入应用程序的bin目录中,并重现了异常.每个堆栈帧的所有行号看起来都是正确的,但显示"第0行"作为其来源的行号除外.
我正在写一些文档和代码说明.我想从包含行号的eclipse中复制代码,以便更容易引用文本中的代码.
在eclipse或其他IDE编辑器中有没有办法做到这一点?
我正在编写JVMTI代码来编写Java程序,这主要是使用函数AsyncGetCallTrace以固定的时间间隔从随机线程获取堆栈跟踪.因此,我能够获得CallTrace结构,每个结构都包含一个CallFrame结构数组,其中包含有关堆栈跟踪中各个帧的数据.具体来说,这些数据包括:jmethodID method_id(框架所在的java方法的ID),以及:jint lineno(.class文件中方法的BCI,据我所知文档).我似乎找不到使用JVMTI框架将这个"lineno"转换为相应的源代码行号的方法(参见文件jvmti.h,位于/ usr/lib/jvm/java-6-sun/include,至少在Linux上).实际上,即使在JVMTI框架之外,http://jakarta.apache.org/bcel/apidocs/org/apache/bcel/classfile/LineNumberTable.html,但即使这可能不是我想要的,并需要额外的安装,并要求我处理数据,这是由C++ JMVTI代码生成的,使用单独的Java程序.
如果有人知道如何从JVMTI内部(甚至以任何方式)将BCI转换为源代码行号,请帮忙!
[如果有人非常了解这个领域,请告诉我,因为我还有一些问题要问这个过程.]
这对于一个团队项目来说有点挑战,更不用说单人实现了,但我试图将一个简单而优雅的文本编辑器与语法高亮组合在一起,使用一个JEditorPane.我偶然发现这个已经停止使用,我很难理解里面的所有lexer文件和.lex内容.我甚至在一些博客中发现,这个项目后来被其他一些团队采用,但即便再次停产.我并不需要它太花哨,就像代码折叠和东西(尽管我很想找出如何做到这一点),但我至少需要一个基本的语法高亮存在,相当多的行号上最左边就像Notepad ++一样.请记住,我只需要它来突出Java源代码,至少目前是这样.
我正在寻找的是一个教程,一个记录良好的示例和示例代码,一个预制的包,甚至NetBeans的工具都可以做到这一点,我不需要从头开始编写源代码,我只需要一个可以使用的实现.提前致谢!
这不是商业或太大,不要问为什么我想重新发明轮子,因为有那么多的编程编辑,我正在学习,这对我来说是一个很好的练习!
line-numbers ×10
eclipse ×2
.net ×1
breakpoints ×1
c# ×1
copy ×1
debugging ×1
java ×1
javafx ×1
jeditorpane ×1
jvmti ×1
logging ×1
php ×1
python ×1
revision ×1
richtextfx ×1
stack-trace ×1
svn ×1
swing ×1
text-files ×1