我在OSX上调试Eclipse中的C++程序(Helios的最新RC,用自己内部更新的最新CDT)时遇到了麻烦.
该程序非常简单(基本上是NeHe的OpenGL教程的第2课),由一个cpp文件组成,使用OpenGL和Cocoa框架,并与libSDL.a和libSDLmain.a链接.
项目的结构非常简单:源文件位于项目的子目录中,名为src /,可执行文件构建在项目的根目录中.
问题在于,每当我尝试添加断点并对其进行调试时,断点似乎都会被完美地命中,但是没有显示任何源 - 相反,我只是在代码窗口中得到"没有源可用于main()"错误.
编译器标志的优化设置为none,编译器和链接器都设置了调试符号标志(-g).
Eclipse中的调试设置设置为"Standard spawn progess",调试器设置为"gdb".
现在最奇怪的是,如果我尝试调试完全相同的可执行文件 - 即.与Eclipse构建的完全相同 - 使用终端(shell)中的gdb然后一切正常.断点被击中,源代码显示,完全没有问题.
我确保Eclipse和shell都使用相同的gdb可执行文件,它们是(它是/ usr/bin/gdb).
现在我可能错了,但这一切都告诉我,编译器和链接器标志不会有问题(因为相同的可执行文件可以从shell调试),所以可能问题必须是如何调用gdb从Eclipse内部?也许从Eclipse运行时,gdb会提取不同的配置文件或者什么,而不是从shell运行时?(有人知道吗?)
我真的很感激任何帮助,因为它正在慢慢驱使我循环!
如果有任何其他有用的细节,请告诉我 - Eclipse/cdt/gdb的确切版本号,确切的链接器/编译器命令行等等 - 我很乐意用它们更新这篇文章.
提前谢谢了,
thoughton.
--- 编辑@"14小时前" ---
我尝试了"添加文件系统路径"(带有"搜索子文件夹")选项,但这不起作用.我也试过创建一个新的完全平坦的项目,但这也不起作用.我甚至试图获得Galileo版本(带有CDT更新的eclipse-SDK-3.5.2RC4),但这没有任何区别(除了gdb启动速度较慢).
我注意到这里有一些奇怪的事情:一旦我得到"No source available"消息,如果我然后切换Eclipse的控制台以显示"gdb"控制台,并打开"详细控制台模式"以便我可以进行通信,我可以然后发出"l"和"bt"命令并让它们成功运行,显示我的断点被击中的正确源和堆栈.哪,纠正我,如果我错了,必须意味着信息在那里并正确调用gdb - 那么为什么Eclipse不会看到这些信息呢?
老实说,我已经接近放弃Eclipse了......我也带着如此高的期望来到它.
任何额外的帮助或想法将非常感激.
吨.
我需要每15分钟左右检查一下我的窗口服务是否正在运行.
如果它没有运行,那么我该如何重新启动Windows服务呢?
我有一个函数获取ZIP文件并将其解压缩到一个目录(我使用DotNetZip库.)
public void ExtractFileToDirectory(string zipFileName, string outputDirectory)
{
ZipFile zip = ZipFile.Read(zipFileName);
Directory.CreateDirectory(outputDirectory);
zip.ExtractAll(outputDirectory,ExtractExistingFileAction.OverwriteSilently);
}
Run Code Online (Sandbox Code Playgroud)
我的ZIP文件包含多个文件和目录.但我想只提取其中一些文件,而不是全部.
我怎样才能做到这一点?
我有一个名为"地址"的表,其中包含:
...领域.
在标题列中,插入区域和区域的名称.区域的parent_id值为零,区域的parent_id为区域的id.
我想要一个查询,在一列中显示区域,在另一列中显示相应的区域.
我在我的Web项目中寻找合适的图表组件,请帮帮我!谢谢!
请帮我解决这个奇怪的情况:
这是代码:
链接是这样的 - www.blablabla.ru#3
正则表达式是这样的:
var id = window.location.href.replace(/\D/, '' );
alert(id);
Run Code Online (Sandbox Code Playgroud)
正则表达式是正确的 - 它必须只显示数字......但它没有显示数字:-(
你可以请教我,并提供一些关于如何只获得字符串数字的信息吗?
谢谢
如何确定编译器实现的C++标准版本?据我所知,以下是我所知道的标准:
MSDN将System.Enum定义为抽象类:
[SerializableAttribute]
[ComVisibleAttribute(true)]
public abstract class Enum : ValueType, IComparable, IFormattable, IConvertible
Run Code Online (Sandbox Code Playgroud)
并且MSDN也对抽象类做出了这样的陈述:
无法实例化抽象类.抽象类的目的是提供多个派生类可以共享的基类的公共定义.
但我根本无法从System.Enum派生.根据Jeffery Richter在他的书"CLR via C#"中的说法,C#编译器禁止这种推导.
我检查了System.Enum的成员,其中大多数是静态的,这是合理的,因为它无法实例化,静态方法不需要调用对象实例.但是也有一些实例方法,比如GetHashCode()和GetTypeCode().
所以,我的第一个问题是,如果System.Enum无法实例化或派生,那么如何调用这些实例方法呢?这不是一种悖论吗?
我知道我可以使用以下方法来调用这些实例方法,但为什么呢?是否创建了某种System.Enum或派生类型对象实例?什么时候?和谁?
public enum Days:byte { Saturday, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday };
Days d = Days.Friday;
d.GetTypeCode();
d.GetHashCode();
Run Code Online (Sandbox Code Playgroud) 我得到了ff.偶尔出现在Java控制台中的错误:
Exception in thread "thread applet-my.package.MyApplet-10" java.lang.NoClassDefFoundError: another/package/SomeClass
at my.package.MyApplet.init(MyApplet.java:95)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: another.package.SomeClass
at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
... 3 more
Caused by: java.io.IOException: open HTTP connection failed:https://myserver/mycontext/applets/another/package/SomeClass.class
at sun.plugin2.applet.Applet2ClassLoader.getBytes(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader.access$000(Unknown Source)
at sun.plugin2.applet.Applet2ClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
... 7 more
Run Code Online (Sandbox Code Playgroud)
我的applet标签如下:
<applet codebase="../../applets" code="my.package.MyApplet" class="invisible" id="myApplet">
<param value="value0" name="param0"/>
...
<param value="valueN" name="paramN" />
<param value="folder/myApplet__0.0.1177.jar,folder/commons-io-1.3.2__0.0.1177.jar,..." name="cache_archive"/>
<param value="0.0.1177.0,0.0.1177.0,...," name="cache_version"/>
</applet>
Run Code Online (Sandbox Code Playgroud)
重要的是我强调"偶尔"这个词.有时applet会毫不费力地初始化.这也意味着,当浏览器重新启动时,问题就会消失.
我知道 …
我正在创建一个静态类,它将保存一些带有信息的向量.我必须使它同步,以便在有人正在编辑或从向量中读取时将锁定该类.
做这个的最好方式是什么?
是否有足够的功能在类内部同步,如下所示:
public synchronized insertIntoVector(int id)
{
}
Run Code Online (Sandbox Code Playgroud)
提前致谢 :)