当我在我的C++代码上使用我的调试器(在我的特定情况下,它是QT Creator以及GDB启发了这一点)时,有时即使在调用make clean之后make调试器似乎也吓坏了.
有时它似乎与另一段代码的行号对齐,并会跳转.有时这是一条线,有时这完全是关闭的,它会不规律地跳转.
其他时候,它会因为踩到我没有要求它进入的事情而变得惊慌失措,就像踩过函数调用一样,它可能会进入作为其一部分的字符串初始化例程.
当我遇到seg故障时,有时它能够告诉我它在哪里完美发生,有时它甚至不能显示哪些函数称为代码的问号,从哪里开始,我所看到的就是汇编,即使在运行时也是如此重复相同的代码.
我似乎无法找出导致这些失败的模式,有时我的调试器表现得非常好.
这些调试器背后的理论原因是什么,以及我可以采取哪些具体步骤来防止它们?
如果用户在远程桌面会话中运行,是否有办法检查浏览器内部(例如javascript)?
如果用户在远程桌面(即终端服务)内运行浏览器,我想在网站上禁用动画.
如果这是一个本机应用程序,而不是一个网站,我可以使用以下方法执行此检查:
//Native code
isRemoteSession = GetSystemMetrics( SM_REMOTESESSION );
Run Code Online (Sandbox Code Playgroud)
要么
//Managed Code:
isRemoteSession = System.Windows.Forms.SystemInformation.TerminalServerSession;
Run Code Online (Sandbox Code Playgroud)
是否有类似的检查可以在浏览器内完成?
注意:为了本次讨论的目的,假设我们所讨论的浏览器是Internet Explorer 8.
更新一:也许在于如何从javascript获取终端服务客户端机器名?
我有一个JSP文件,可以创建一个Excel文档.
我想动态设置要下载的文件的名称.
这是我将文件名设置为"test.xsl"的方式:
<% response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition","attachment; filename=" + "test.xsl" );
%>
Run Code Online (Sandbox Code Playgroud)
如何设置要测试的文件名 - $ {今天的日期} .xsl(即test-20100805.xsl)?
我想警告用户,如果他们的提交消息不遵循某组指南,然后给他们选项来编辑他们的提交消息,忽略警告或取消提交.问题是我似乎无法访问stdin.
下面是我的commit-msg文件:
function verify_info {
if [ -z "$(grep '$2:.*[a-zA-Z]' $1)" ]
then
echo >&2 $2 information should not be omitted
local_editor=`git config --get core.editor`
if [ -z "${local_editor}" ]
then
local_editor=${EDITOR}
fi
echo "Do you want to"
select CHOICE in "edit the commit message" "ignore this warning" "cancel the commit"; do
case ${CHOICE} in
i*) echo "Warning ignored"
;;
e*) ${local_editor} $1
verify_info "$1" $2
;;
*) echo "CHOICE = ${CHOICE}"
exit 1
;;
esac
done
fi
}
verify_info …Run Code Online (Sandbox Code Playgroud) 我想对printURL上的参数进行操作,就像这样(在本例中是Google):
我想得到它并像这样打印:
print("Go <a href='$url'>back</a> to the page you was before the login);
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我一直在玩XAML中声明对象.我在Silverlight程序集中有这些类:
public class TextItem
{
public string TheValue { get; set; }
}
public class TextItemCollection
{
public ObservableCollection<TextItem> TextItems { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后,我在我的XAML中有这个:
<UserControl.Resources>
<app:TextItemCollection x:Key="TextItemsResource">
<app:TextItemCollection.TextItems>
<app:TextItem TheValue="Hello world I am one of the text values"/>
<app:TextItem TheValue="And I am another one of those text items"/>
<app:TextItem TheValue="And I am yet a third!"/>
</app:TextItemCollection.TextItems>
</app:TextItemCollection>
</UserControl.Resources>
Run Code Online (Sandbox Code Playgroud)
出于某种原因,如果我在尝试调试应用程序时包含该节点,Silverlight会挂起(我只看到旋转的蓝色加载圆圈).如果我注释掉该节点,它会立即运行.
有任何想法吗?
我正在使用Ubuntu 10并在Firefox 3.6和Chrome 5中尝试以下代码.
$(document).ready(function(){
$(document).bind("keypress", function(e){
alert("Pressed");
});
});
Run Code Online (Sandbox Code Playgroud)
令人惊讶的是,上面的代码在FF3.6中运行良好.即对于按下的每一把钥匙,我都会收到警报框.
但在Chrome中,我看到了不同的行为.例如,当我按向上/向下翻页,向上/向下箭头/向左键(不幸的是,这些是我迫切想要跟踪的关键事件)时,我没有收到警报框.
有没有人为什么Chrome没有将'keypress'事件绑定到某些键,例如向上/向下翻页,向左/向右箭头?
我和我的一位同事讨论了检查空值的问题.
他认为"在某些情况下"下面的代码会给他一个空值异常:
string test = null;
if(test == null) //error here
{
}
Run Code Online (Sandbox Code Playgroud)
但如果将代码更改为此,则不会出现错误:
string test = null;
if(null == test) //NO error here
{
}
Run Code Online (Sandbox Code Playgroud)
我告诉他这不可能发生,但他发誓修复了他的代码.是否有任何可能导致上述更改可能导致错误的情况?
我正在寻找一种在Mac OS X 10.6中模拟鼠标移动事件的方法.它必须以鼠标单位(而不是像素)来定义 - 这很重要!
我需要这个基本上由绘图线组成的实验.
欢迎任何想法.
谢谢!
今年夏天,我在图像/视频实验室里一直在我的大学工作.就在最近,我的教授给了我一个由毕业生写的程序,他刚离开程序"修理",因为它"给出了一些错误".
该项目是用C++编写的(似乎是学生代码中反复出现的坏标志).我在VS08中打开了项目,并运行了项目,事实证明,"错误"是一个bad_alloc.果然,内存管理,或更准确地说,缺乏内存管理,就是问题所在.
程序员似乎喜欢在整个代码中混合mallocs,news和new [],绝对没有free,delete或delete [].更糟糕的是,所有对象似乎至少做了4-5个不相关的事情.最重要的是,这是程序员留下的评论:
//do not delete objects, it seems to cause bugs in the segmenter
Run Code Online (Sandbox Code Playgroud)
从我所看到的,有一个很好的不健康的指针和引用的引用组合,所有的值都通过引用单个类函数来改变,这些函数也可能是静态的.在编译时,大约有23个警告 - 比如从double转换为char时可能丢失数据,大约17个未使用的变量等等.像我这样的时候我希望C++在大学中从不存在,并且所有实验室工作都是像python或matlab一样完成......
所以现在,教授希望我"弄乱"这个程序,这样它就可以运行大约比以前大10倍的数据集.我承认,我有点害怕告诉她代码是垃圾.
StackOverflow,你们之前从未失败过,提出好的建议,所以现在我恳求,任何关于处理这类情况的建议都会受到很多赞赏.
编辑 代码大约是5000 LoC
EDIT2 教授决定采用最简单的方法.哪个内存越来越多.是的,因为要在这个问题上投钱......