小编JSB*_*ոգչ的帖子

在GDB中显示当前汇编指令

我正在GDB中进行一些汇编级调试.有没有办法让GDB以与显示当前源代码行相同的方式向我显示当前的汇编指令?每个命令后的默认输出如下所示:

0x0001433f      990         Foo::bar(p);
Run Code Online (Sandbox Code Playgroud)

这给了我当前指令的地址,但是我必须继续参考输出,disassemble以便查看我当前正在执行哪条指令.

assembly gdb

169
推荐指数
7
解决办法
19万
查看次数

如何以编程方式获取DLL或EXE文件的版本?

我需要使用C或C++中的Win32本机API获取DLL或EXE文件的产品版本和文件版本.我不是在寻找Windows版本,而是通过右键单击DLL文件,选择"属性",然后查看"详细信息"选项卡看到的版本号.这通常是由四部分组成的点缀版本号xxxx

c++ dll winapi exe version

68
推荐指数
5
解决办法
8万
查看次数

C#:等待所有线程完成

我正在编写我正在编写的代码中的常见模式,我需要等待组中的所有线程完成,并且超时.超时应该是所有线程完成所需的时间,因此简单地为每个线程执行thread.Join(timeout)将不起作用,因为可能的超时是超时*numThreads.

现在我做类似以下的事情:

var threadFinishEvents = new List<EventWaitHandle>();

foreach (DataObject data in dataList)
{
    // Create local variables for the thread delegate
    var threadFinish = new EventWaitHandle(false, EventResetMode.ManualReset);
    threadFinishEvents.Add(threadFinish);

    var localData = (DataObject) data.Clone();
    var thread = new Thread(
        delegate()
        {
            DoThreadStuff(localData);
            threadFinish.Set();
        }
    );
    thread.Start();
}

Mutex.WaitAll(threadFinishEvents.ToArray(), timeout);
Run Code Online (Sandbox Code Playgroud)

但是,对于这种事情,似乎应该有一个更简单的习语.

c# multithreading

63
推荐指数
6
解决办法
10万
查看次数

对于Perl条件,使用'if'与'unless'

在Perl代码中最好使用ifvs的一些指导原则是什么unless?在某些情况下是否有充分理由偏好其中一种?

perl if-statement readability

49
推荐指数
4
解决办法
5万
查看次数

重载运算符==与Equals()

我正在开发一个C#项目,直到现在,我已经使用了不可变对象和工厂来确保Foo始终可以比较类型对象的相等性==.

Foo创建后无法更改对象,并且工厂始终为给定的参数集返回相同的对象.这很好用,在整个代码库中我们假设它==始终用于检查相等性.

现在我需要添加一些引入边缘情况的功能,但这并不总是有效.最简单的方法是operator ==为该类型重载,以便项目中的其他代码都不需要更改.但这让我感觉像代码味道:重载operator ==并且Equals不仅仅是看起来很奇怪,而且我习惯于==检查引用相等性的约定,并Equals检查对象的相等性(或任何术语).

这是一个合理的问题,还是我应该继续超载operator ==

c# equals operator-overloading

44
推荐指数
6
解决办法
3万
查看次数

字符串数组和c#中的字符串列表有什么区别

我在MSDN上听说阵列比集合更快.

你能告诉我那么string[]快吗?List<string>.

c# arrays string

42
推荐指数
3
解决办法
4万
查看次数

将eval()限制在狭窄的范围内

我有一个javascript文件,读取另一个文件,其中可能包含需要eval() - ed的javascript片段.脚本片段应该符合javascript的严格子集,这限制了它们可以做什么以及它们可以更改哪些变量,但我想知道是否有某种方法可以通过阻止eval在全局范围内查看变量来强制执行此操作.类似于以下内容:

function safeEval( fragment )
{
    var localVariable = g_Variable;

    {
        // do magic scoping here so that the eval fragment can see localVariable
        // but not g_Variable or anything else outside function scope

        eval( fragment );
    }
}
Run Code Online (Sandbox Code Playgroud)

实际的代码不需要看起来像这样 - 我对任何和所有带闭包的奇怪技巧都是开放的等等.但我确实想知道这是否可能.

javascript eval

31
推荐指数
4
解决办法
2万
查看次数

向printf传递了太多参数

任何已经工作超过一周的C程序员遇到了因printf使用更多格式说明符而非实际参数调用而导致的崩溃,例如:

printf("Gonna %s and %s, %s!", "crash", "burn");
Run Code Online (Sandbox Code Playgroud)

但是,当你向printf 传递太多参数时,是否会发生类似的坏事?

printf("Gonna %s and %s!", "crash", "burn", "dude");
Run Code Online (Sandbox Code Playgroud)

我对x86/x64程序集的了解使我相信这是无害的,虽然我不相信没有一些边缘条件我缺少,而且我不知道其他架构.这种情况是否保证是无害的,或者这里是否存在潜在的崩溃诱因?

c printf

31
推荐指数
2
解决办法
3万
查看次数

从java中的String数组中删除Null值

如何从java中的String数组中删除null值?

String[] firstArray = {"test1","","test2","test4",""};
Run Code Online (Sandbox Code Playgroud)

我需要"firstArray"而没有像这样的null(空)值

String[] firstArray = {"test1","test2","test4"};
Run Code Online (Sandbox Code Playgroud)

java arrays string

30
推荐指数
3
解决办法
12万
查看次数

在C#中传递通用List <>

我脑子里死了; 我根据特定的类(c1,c2,c3 ......)定义了几个List'.我有一个方法来处理这些列表上的信息.我想要做的是传递特定列表,但让方法接受通用列表,然后通过typeof确定要执行的具体工作.我知道它可能,但我似乎无法在方法方面获得正确的语法.所以,例如:

List<c1> c1var;
List<c2> c2var;
List<c3> c3var;

some_method(c1var);
some_method(c2var);
some_method(c3var);

class some_thing
some_method(List<> somevar)
if typeof(somevar).name = x then
esle if typeof(somevar).name = y then....
Run Code Online (Sandbox Code Playgroud)

如何设置方法的参数列表?

谢谢R.桑德斯

c# generics list

27
推荐指数
2
解决办法
4万
查看次数