关于vb.netpdb的信息

vb.net怎么打印执行代码行数如何在VB.net中的应用程序运行打印行数
[英] how to print out line number during application run in VB.net
查看:341 发布时间:2015/11/25 16:05:39 .net vb.net debugging stack-trace line-numbers
万维广告联盟
?? 杜绝删库跑路 。一个平台登录所有资产,实现事先防范、事中控制、事后溯源 , 满足等保合规要求 。
广告
本文介绍了如何在VB.net中的应用程序运行打印行数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想打印出我的调试消息,在VB.net应用程序的行号 。我不喜欢这样,
Dim st As StackTrace
Dim sf As StackFramee
st = New StackTrace(New StackFrame(True))
sf = st.GetFrame(0)
Console.WriteLine.("Line "sf.GetFileLineNumber())
我想把片段的一类,每次我打电话logMsg方法来记录我的消息,行号源$ C $ C 。但我发现,如果我把上面的代码段为一类 , 行数总是相同的,这是我新的'圣' 。行
的功能是完全一样的具有_ 行的宏C。其实我是C程序员 。
反正来解决这个问题?谢谢 。
推荐答案
您已经证明是工作完全按预期的code 。它打印在您拍摄的堆栈帧行的数目 。因为你已经在不同的类中定义它,它打印包含类文件的行号 。
在的getFrame 方法,在这里是非常重要的 。栈帧起始编号是0,这是的最后的堆栈帧推 。因此,参考帧0,则指示打印的最后的堆栈被推帧的行数的运行时间 。当一个方法调用另一个,一个新的堆栈帧创建 。
相反 , 你需要改变你的方法在几个重要方面 。首先,你需要获得的第一个的框架被压入堆栈 。第二,你可能要接受有关您回应异常含参数的信息 。尝试重写你的调试方法看起来是这样的:
Public Sub PrintCurrentLine(ByVal ex As Exception)
Dim st As StackTrace = New StackTrace(ex)
Dim sf As StackFrame = st.GetFrame(st.FrameCount - 1)
Console.WriteLine("Line "sf.GetFileLineNumber())
End Sub
还要记住 , 如果你正在运行的code与优化启用,像行号可能已经改变 。你总是需要包括PDB文件与您的code,它包含调试用于在这样的情况的信息 。它映射优化code回到原来的来源 。
这篇关于如何在VB.net中的应用程序运行打印行数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
保存在文件夹里的vb程序为什么会少一个自动生成的文件?可能是因为在保存 VB 程序时vb.netpdb,自动生成vb.netpdb的文件没有被正确地保存到指定的文件夹中 。这可能是因为文件夹中存在其vb.netpdb他同名文件 , 或者保存路径不正确等原因 。
在 VB 程序中,有一些自动生成的文件是与程序运行相关的,例如编译后生成的可执行文件、DLL 文件、PDB 文件等 。如果这些文件没有正确地保存到指定的文件夹中,可能会导致程序无法正常运行 。
为了解决这个问题 , 可以尝试检查保存路径是否正确,确保文件夹中没有同名文件,并尝试重新保存程序 。另外,也可以尝试将自动生成的文件手动复制到指定的文件夹中,以确保这些文件在程序运行时可以正确地被引用和调用 。
求帮忙把vb.net代码转成vb能用的代码,这段代码是用来做翻译的引用MicrosoftDAO3.6ObjectLibraryPublicFunctionDaoOpenDB(ByValpDbTypeAsString,ByValpDbNameAsString,ByValpMdbCnctAsString)AsIntegerOnErrorGoToErr_HandlerDimm_DbDataBaseAsDAO.DatabaseDimgwsMainworkSpaceAsDAO.WorkspaceDimDAODBEngineAsNewDAO.DBEngine()Dimm_DbWkSpace=DAODBEngine.CreateWorkspace("","Admin","")IfpDbType="c_ACCESS"Then'Accessm_DbDataBase=m_DbWkSpace.OpenDatabase(pDbName)Else'Oraclem_DbDataBase=m_DbWkSpace.OpenDatabase(pDbName,True,False,pMdbCnct)EndIfDaoOpenDB=c_OK'你在全局中已定义ExitFunctionErr_Handler:DaoOpenDB=c_NG'你在全局中已定义MsgBox(Err.Description,MsgBoxStyle.OkOnly MsgBoxStyle.Critical,"Err")EndFunction
.net里Release的pdb文件有什么用 是否可以删除?【关于vb.netpdb的信息】程序数据库 (PDB) 文件保存着调试和项目状态信息,使用这些信息可以对程序的调试配置进行增量链接 。在使用 /debug 生成时,会创建一个 PDB 文件 。可以使用 /debug:full 或 /debug:pdbonly 生成应用程序 。使用 /debug:full 生成将产生可调试的代码 。使用 /debug:pdbonly 生成将产生 PDB,但是不会产生通知 JIT 编译器调试信息可用的 DebuggableAttribute 。如果您想为不希望其成为可调试的发布版本生成 PDB , 请使用 /debug:pdbonly 。有关更多信息,请参见 /debug (C# 编译器选项)或 /debug (Visual Basic) 。Visual Studio 调试器使用 EXE 或 DLL 文件中的 PDB 路径查找 project.pdb 文件 。如果调试器无法在该位置找到 PDB 文件,或者该路径无效,调试器将先搜索包含 EXE 的路径,然后搜索“选项”对话框中指定的符号路径 。该路径通常是“符号”节点中的“调试”文件夹 。如果调试器无法找到 .PDB 文件,则显示“查找符号”对话框,这将允许您搜索符号或向搜索路径添加其他位置 。Debug里的PDB是full,保存着调试和项目状态信息、有断言、堆栈检查等代码 。Release 里的PDB是pdb-only,基本上:出什么错了 错误在哪行 。因为很多人把PDB理解成:调试文件、Program Debug Database、会泄露代码机密,所以想将其删除,那只要在VS的 项目--生成--高级--调试信息--None便可重要事项调试器只会为二进制文件加载与该二进制文件生成之时所创建的 PDB 完全相符的 PDB 。就是说,该 PDB 必须是原 PDB 或其副本 。因为编译器在创建二进制文件时会考虑多种因素 , 所以,即使代码自身没有变化 , 二进制文件的实际布局也可能会有变化 。
vb.netpdb的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、vb.netpdb的信息别忘了在本站进行查找喔 。

    推荐阅读