我在MacOS Lion上使用GDB 7(7.3)遇到了麻烦.
我做的是:
$ sudo port install gdb
Run Code Online (Sandbox Code Playgroud)
之后将GDB安装到:/ opt/local/bin/ggdb
但是当我尝试执行GDB时,我总是在开始时收到以下内容:
BFD: unable to read unknown load command 0x24
BFD: unable to read unknown load command 0x26
BFD: unable to read unknown load command 0x24
BFD: unable to read unknown load command 0x26
Run Code Online (Sandbox Code Playgroud)
进一步它告诉我:
从......完成阅读符号.
但是当我试图通过'bt'获得回溯时,我只看到未解决的函数地址.我试图在我的应用程序文件夹中设置LIBRARY_PATH.
$ export DYLD_LIBRARY_PATH=`pwd`
Run Code Online (Sandbox Code Playgroud)
但没有成功.问题仍然存在.
使用Lion/Xcode提供的默认GDB 6.3可以正常工作.
提前感谢任何建议.
我在GDB中有一个名为x的变量,我希望将其与字符串进行比较.
gdb $ print $x
$1 = 0x1001009b0 "hello"
Run Code Online (Sandbox Code Playgroud)
但与...比较
if $x == "hello"
Run Code Online (Sandbox Code Playgroud)
不起作用.
如何管理它以放置变量并通过Run()在Sandbox()中运行代码?
function Sandbox() {
this.test = 'insandbox';
}
Sandbox.prototype.Run = function(src) {
eval.call(this, src);
};
Sandbox.prototype.getvar = function(name) {
return this[name];
};
var bx = new Sandbox();
bx.Run('var x = 1;');
print(bx.getvar('test'))
print(bx.getvar('x')) // undefined
print(x)
Run Code Online (Sandbox Code Playgroud)
请不要关于eval()的答案是不安全的,我不应该使用它.关于使用setter/getters,请不要回答.
谢谢阅读!