小编Pet*_*elm的帖子

如何在没有源代码的情况下检查GDB中的std :: string?

我正在尝试调试没有可用源代码的程序,我需要查看它存储在std :: string中的内容.我一直在谷歌搜索并在这里查看,我发现了一些关于输出STL容器的信息,但所有这些都引用了变量,没有源代码或调试信息,我所拥有的是类数据的内存偏移量.有没有办法做到这一点?

c++ gdb stl std c++-standard-library

17
推荐指数
2
解决办法
1万
查看次数

Python:子进程中的持久shell变量

我正在尝试使用Pythons子进程模块执行一系列命令,但是我需要在运行它们之前使用export设置shell变量.当然shell似乎并不持久,因此当我稍后运行命令时,这些shell变量会丢失.

有什么办法可以解决这个问题吗?我可以创建一个/ bin/sh进程,但是如何获得在其下运行的命令的退出代码?

python variables shell subprocess persistent

8
推荐指数
2
解决办法
2842
查看次数

x86间接寻址中默认使用哪个段?

我有点困惑的是,当您拥有x86程序集(如下所示)时,究竟使用了哪个段(英特尔语法):

mov ax,[di]

我很确定它不会是代码段,我在想数据段还是堆栈?(或者是数据段的堆栈部分?)

x86 assembly

7
推荐指数
1
解决办法
1789
查看次数

在PHP5中记录致命/解析错误

我正在编写一个错误记录服务,该服务将集成到我的服务器上运行的网站上,这将通过电子邮件向我发送错误批次等.

所以我一直试图找出是否有办法处理致命错误和解析错误,但是不使用这些技巧来处理PHP代码(输出缓冲区,关闭函数).我很乐意在我的PHP代码之外编写一些C代码或其他东西来处理它.如果可能的话,我还想发布重定向(我的网站使用输出缓冲,因此不应该发送任何标头).

我很确定这可以通过PHP模块完成,但我从来没有写过,也不知道从哪里开始.

php error-logging php-extension parse-error fatal-error

5
推荐指数
1
解决办法
1841
查看次数

C#:如何在BackgroundWorker进度报告回调中解决"Collection was modified"?

我已经使用了BackgroundWorkers了,但我以前从未遇到过这个问题.我的程序分析逻辑分析仪的输出,产生数据包,其中有数千个.为了防止更新延迟更新我的表单中的ListView(我之前报告了每个发现的,并且表单完全没有响应)我正在收集通用列表(List <Packet>)中的BackgroundWorker内的数据包和然后报告当找到n量(当前为250),或者发生异常时,或者当它完成时.

当我在List <Packet>上进行迭代时,问题发生在我的回调中,我得到一个InvalidOperationException,其中包含"Collection was modified"错误.我没有触及foreach中的集合(我正在添加到另一个集合中,但我认为没有理由可以修改我正在迭代的集合 - 再加上评论它不能解决问题.)我是甚至尝试锁定e.UserState,将e.UserState存储到本地作用域List <Packet>并锁定,似乎没有任何作用.

这是我的回调方法的代码:

void worker_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
    progressBar.Value = e.ProgressPercentage;
    packetsListView.SuspendLayout();
    lock ((List<Packet>)e.UserState)
    {
        foreach (Packet packet in (List<Packet>)e.UserState)
        {
            packets.Add(packet);
            ListViewItem item = new ListViewItem(string.Format("{0}ns", Math.Round(packet.StartSampleNumber * 41.666667)));
            item.Tag = packet;
            item.SubItems.Add(new ListViewItem.ListViewSubItem(item, packet.Description));
            packetsListView.Items.Add(item);
        }
    }
    packetsListView.ResumeLayout();

    statusLabel.Text = string.Format("Analyzing...found {0} {1}", packetsListView.Items.Count, packetsListView.Items.Count == 1 ? "packet" : "packets");
}
Run Code Online (Sandbox Code Playgroud)

c# collections multithreading generic-list backgroundworker

0
推荐指数
1
解决办法
1033
查看次数