我试图在gdb中一次执行两个命令:
finish; next
Run Code Online (Sandbox Code Playgroud)
我试过用';' 分开命令,但gdb不允许我同时做两个.
是否可以在gdb中执行多个命令,类似于以';'分隔的bash命令 分隔符?
所以我正在运行一个Python脚本,在其中我通过编写调用Python的调试器PDB:
import ipdb; ipdb.set_trace()
Run Code Online (Sandbox Code Playgroud)
(iPython的PDB版本,虽然我认为它不会产生影响;我只将其用于彩色输出).
现在,当我到调试器时,我想执行多行语句,例如if子句或for循环,但是一旦我输入
if condition:
Run Code Online (Sandbox Code Playgroud)
并点击返回键,我收到错误信息 *** SyntaxError: invalid syntax (<stdin>, line 1)
如何在PDB中执行多行语句?如果不可能有一种解决方法仍然执行if子句或for循环?
首先,我为这个问题的长度道歉.
我是IronScheme的作者.最近我一直在努力发出不错的调试信息,以便我可以使用'native'.NET调试器.
虽然这部分成功,但我遇到了一些问题.
第一个问题与踩踏有关.
由于Scheme是一种表达式语言,一切都倾向于用括号括起来,不像主要的.NET语言似乎是基于语句(或行).
原始代码(Scheme)看起来像:
(define (baz x)
(cond
[(null? x)
x]
[(pair? x)
(car x)]
[else
(assertion-violation #f "nooo" x)]))
Run Code Online (Sandbox Code Playgroud)
我故意在换行符上列出每个表达式.
发出的代码转换为C#(通过ILSpy),如下所示:
public static object ::baz(object x)
{
if (x == null)
{
return x;
}
if (x is Cons)
{
return Builtins.Car(x);
}
return #.ironscheme.exceptions::assertion-violation+(
RuntimeHelpers.False, "nooo", Builtins.List(x));
}
Run Code Online (Sandbox Code Playgroud)
如你所见,非常简单.
注意:如果代码在C#中转换为条件表达式(?:),那么整个过程只需要一个调试步骤,请记住这一点.
这是带有源和行号的IL输出:
.method public static object '::baz'(object x) cil managed
{
// Code size 56 (0x38)
.maxstack 6
.line 15,15 : 1,2 ''
//000014:
//000015: …Run Code Online (Sandbox Code Playgroud) 最近我开始随机收到这条消息:
在Visual Studio中找不到元数据文件'...\Release\project.dll'
我有一个包含几个项目的解决方案.当前的构建模式是Debug,所有项目的配置都设置为Debug.但是当我尝试运行主项目时 - 有时它会给我一些错误,所有这些都是"元数据文件'...\Release\projectX.dll'找不到" - 而且,看,它说的是关于RELEASE文件夹,虽然当前模式是Debug.为什么?我试图在所有解决方案文件中搜索"Release\projectX.dll"的引用,我在ResolveAssemblyReference.cache文件中找到了一个.
我通过互联网进行了很好的搜索,发现了一些有类似问题的人,但没有解决方案,或者至少没有可行的解决方案.
我试图删除对这些项目的引用并阅读它们,但有一段时间我又开始重新获得这些错误.
这似乎是个bug.当我总是使用调试模式时,为什么要在Release文件夹中搜索引用的项目?
PS.对于那些遇到这个问题的人:我无法轻易解决它.它重新安装Windows后才消失:(
应该使用哪个预处理器定义来指定代码的调试部分?
使用#ifdef _DEBUG或者#ifndef NDEBUG是否有更好的方法来做到这一点,例如#define MY_DEBUG?
我认为_DEBUG是Visual Studio特有的,是NDEBUG标准吗?
每一个体面的PHP程序员有一个print_r或var_dump包装他们使用,爱情和指定快捷键,我们为什么不分享我们最喜欢的人.
我遇到了以下段落:
在Visual Studio中编译代码时,IDE中的"调试与发布"设置对性能几乎没有差别......生成的代码几乎相同.C#编译器并没有真正进行任何优化.C#编译器只是吐出IL ...而在运行时它是执行所有优化的JITer.JITer确实具有调试/释放模式,这对性能产生巨大影响.但这并不能决定你是否运行项目的调试或发布配置,而是关闭是否附加了调试器."
有人可以指导我一篇能够证明这一点的微软文章吗?
谷歌搜索" C#debug vs release performance "主要返回结果,说" Debug有很多性能损失 "," 发布已经优化 "," 不要将调试部署到生产中 ".
再一次,我的apache虚拟主机配置有问题.(使用默认配置而不是我的特定配置).
问题不是错误配置,而是如何解决它.
有没有人有好的建议来快速解决这类问题?
一些更多的信息.
默认的conf文件是这个:
NameVirtualHost *
<VirtualHost *>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
ServerSignature On
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes …Run Code Online (Sandbox Code Playgroud) 我如何获得有关git/git-shell的一些调试信息?
我有一个问题,user1可以克隆存储库没有问题,而user2只能克隆一个空的.我设定了GIT_TRACE=1,但没有任何有用的东西被告知.
最后,经过长时间的反复试验,结果证明这是文件的权限问题.适当的错误消息可能会使此问题短路.
我有一个指针UIView.我如何访问它UIViewController? [self superview]是另一个UIView,但不是UIViewController,对吧?