小编sig*_*ice的帖子

如何反汇编原始x86代码?

我想拆解我的可启动x86磁盘的MBR(前512字节).我已经将MBR复制到了一个文件中

dd if=/dev/my-device of=mbr bs=512 count=1
Run Code Online (Sandbox Code Playgroud)

对可以反汇编文件的Linux实用程序的任何建议mbr

linux x86 assembly mbr x86-16

87
推荐指数
6
解决办法
7万
查看次数

为什么每次运行应用程序时都必须使用导出定义LD_LIBRARY_PATH?

我有一些使用一些共享库的代码(gcc上的c代码).编译时我必须使用-I和-L显式定义include和library目录,因为它们不在标准位置.当我尝试运行代码时,出现以下错误:

./sync_test 
./sync_test: error while loading shared libraries: libsync.so: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)

但是,执行以下操作,一切正常:

export LD_LIBRARY_PATH="/path/to/library/"
./sync_test
Run Code Online (Sandbox Code Playgroud)

现在,奇怪的是,这只能工作一次.如果我再次尝试运行sync_test,除非我先运行export命令,否则会得到相同的错误.我尝试将以下内容添加到我的.bashrc中,但它没有区别:

LD_LIBRARY_PATH="/path/to/library/"
Run Code Online (Sandbox Code Playgroud)

c linux gcc shared-libraries ld

41
推荐指数
5
解决办法
11万
查看次数

为什么习惯上在基于Lisp的语言中将许多右括号放在一行上?

通常代码如下所示:

(one-thing
    (another-thing arg1 (f arg5 r))
    (another-thing arg1 (f arg5 r)))
Run Code Online (Sandbox Code Playgroud)

为什么不喜欢这个?:

(one-thing
    (another-thing arg1 (f arg5 r))
    (another-thing arg1 (f arg5 r))
)
Run Code Online (Sandbox Code Playgroud)

它允许更容易地添加和删除"另一个东西"行(不删除和重新添加尾部右括号).你也可以对那个单独的右括号(例如";循环结束")发表一些评论.

当我使用第二种风格的代码与使用第一种风格的现有代码混合时有多糟糕?

lisp coding-style clojure parentheses

35
推荐指数
3
解决办法
3727
查看次数

在Linux中没有X.org的OpenGL

我想在Linux中打开没有X的OpenGL上下文.有没有办法做到这一点?

我知道集成英特尔显卡硬件是不可能的,尽管大多数人在他们的系统中都有nvidia卡.我想得到一个适用于nvidia卡的解决方案.

如果除了通过集成的英特尔硬件之外别无他法,我想可以知道它是如何完成的.

X11协议和协议本身太大而复杂.它提供的鼠标/键盘/平板电脑输入多路复用功能对于现代程序来说过于臃肿.我认为这是阻止Linux桌面改进的最糟糕的障碍,这就是我寻找替代方案的原因.

linux x11 opengl nvidia

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

如何让GDB摆脱循环?

我可以告诉GDB立即从函数返回return,并用函数调用函数call myFunction.

但是如何让它摆脱目前的循环呢?即表现好像是在break;发表声明.

jump myfile.c:<linenumber>做到这一点的呢?

c gdb goto break

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

不应该指定参数'foo' - 有什么危害?

比较这种方法:

void doStuff(String val) {
    if (val == null) {
        val = DEFAULT_VALUE;
    }

    // lots of complex processing on val
}
Run Code Online (Sandbox Code Playgroud)

...对于这种方法:

void doStuff(String origVal) {
    String val = origVal;
    if (val == null) {
        val = DEFAULT_VALUE;
    }

    // lots of complex processing on val
}
Run Code Online (Sandbox Code Playgroud)

对于前一种方法,Eclipse会发出警告"不应分配参数'val'".为什么?

在我看来,前者更清洁.首先,它并没有迫使我想出两个好名字val(想出一个好的名字就足够了).

(注意:假设val封闭类中没有命名的字段.)

java eclipse warnings compiler-warnings

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

为什么TCP段中的SYN或FIN位消耗序列号空间中​​的一个字节?

我试图理解这种设计背后的基本原理.我浏览了几个RFC,但没有发现任何明显的结果.

networking tcp protocols

25
推荐指数
2
解决办法
5894
查看次数

为什么abs(0x80000000)== 0x80000000?

我刚刚开始阅读Hacker's Delight,它将abs(-2 31)定义为-2 31.这是为什么?

我尝试printf("%x", abs(0x80000000))了几个不同的系统,我在所有系统上都找到了0x80000000.

c integer 32-bit bit-manipulation

21
推荐指数
4
解决办法
8000
查看次数

像MSDN一样参考Linux API?

有没有什么好看的MSDN或者提供的Linux API参考?我喜欢有关MSDN参数的详细信息以及增强文档中的前置条件.但到目前为止,我发现Linux的网络没有任何可比性.

c c++ linux api

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

如何在OS X Lion上获取bash以在选项卡完成期间忽略.DS_Store文件?

我有很多目录,其中包含一个文件..DS_Store文件的存在使文件名完成有点尴尬.当我点击标签时,如何告诉bash忽略.DS_Store文件?

macos bash shell command-line

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