我很难找到在当前目录及其子目录中查找匹配项.
当我运行find *test.c它时,只给我当前目录中的匹配项.(不查看子目录)
如果我尝试find . -name *test.c我会期望相同的结果,但它只给我在子目录中的匹配.当有工作目录中应该匹配的文件时,它会给我:find: paths must precede expression: mytest.c
这个错误是什么意思,我如何从当前目录及其子目录获取匹配?
在一台PC上运行CMake时,CMake默认生成NMake文件.另一方面,它生成一个Visual Studio项目.
我知道我可以通过添加-G "NMake Makefiles"到我的CMake语句的末尾来覆盖默认值,但我想知道为什么它默认为一个上的Visual Studio项目和另一个上的NMake文件.
我正在尝试使用WinDBG检查程序集的可执行文件,但我很难找到它.我想在我的程序中的第一条指令处设置一个断点,但是当我尝试手动执行(使用模块的地址)时,WinDBG告诉我"由于","无法在该位置插入断点"对内存位置的访问无效."
我注意到当我通过源代码GUI创建一个断点时,地址与我模块的第一部分不同(在我的例子中:"Win32FileOpen",我编写的一个简单程序.)是否有某种类型的标题这需要在我的模块地址上添加一个偏移量?
在另一个 问题中,我看到了这样的建议:"我会尝试将断点地址计算为:模块启动+代码启动+代码偏移",但不确定从何处获取这些值.有人可以详细说明一下吗?
我不仅仅使用源GUI的原因是我希望能够使用我可能没有源/符号的程序来执行此操作.
如果有一种更简单的方法可以立即开始使用我打开的可执行文件,请告诉我.(例如,打开一个.exe Olly会立即向我显示该.exe的程序集,搜索引用的字符串会给我该模块的结果等等.WinDBG似乎在ntdll.dll中启动我,这对我来说通常没用.)
0:000> lm
start end module name
00000000`00130000 00000000`0014b000 Win32FileOpen C (private pdb symbols) C:\cfinley\code\Win32FileOpen\Debug\Win32FileOpen.pdb
00000000`73bd0000 00000000`73c2c000 wow64win (deferred)
00000000`73c30000 00000000`73c6f000 wow64 (deferred)
00000000`74fe0000 00000000`74fe8000 wow64cpu (deferred)
00000000`77750000 00000000`778f9000 ntdll (pdb symbols) c:\symbols\mssymbols\ntdll.pdb\15EB43E23B12409C84E3CC7635BAF5A32\ntdll.pdb
00000000`77930000 00000000`77ab0000 ntdll32 (deferred)
0:000> bu 00000000`00130000
0:000> bl
0 e x86 00000000`001413a0 0001 (0001) 0:**** Win32FileOpen!main <-- One that is generated via GUI
1 e x86 00000000`00130000 0001 (0001) 0:**** Win32FileOpen!__ImageBase <-- One I tried to set manually
0:000> …Run Code Online (Sandbox Code Playgroud) 我们有一个我们在Tomcat 8中运行的Web应用程序,最近我们观察到我们团队中的一些开发人员构建的工件(.war文件)抛出了一个NoClassDefFoundError,而其他人构建的相同代码按预期运行.
来自logs/localhost.2018-05-11.log:
org.jboss.resteasy.spi.UnhandledException: java.lang.NoClassDefFoundError: Could not initialize class org.geotools.referencing.datum.DefaultEllipsoid
...
Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.geotools.referencing.datum.DefaultEllipsoid
at org.geotools.referencing.GeodeticCalculator.<init>(GeodeticCalculator.java:277)
...
Run Code Online (Sandbox Code Playgroud)
这有时(但不总是)伴随(前面):
org.jboss.resteasy.spi.UnhandledException: java.lang.IncompatibleClassChangeError: Implementing class
...
Run Code Online (Sandbox Code Playgroud)
检查war文件,工作和损坏的工件的内容看起来是相同的,有一个值得注意的例外,jar文件的"目录排序" WEB-INF/lib是不同的.
在爆炸的war文件上执行以下过程并重新启动Tomcat似乎消除了异常:
$ # jars in "bad" order
$ ls -U WEB-INF/lib
x.jar
b.jar
y.jar
a.jar
c.jar
z.jar
$ cp -p WEB-INF/lib/* /tmp/lib/
$ rm -r WEB-INF/lib
$ mv /tmp/lib WEB-INF/lib
$ # jars in "good" order (appears to be alphabetical after a 'cp' on my …Run Code Online (Sandbox Code Playgroud) 我一直试图使用WinDbg 来解决一些"破解"(来自http://crackmes.de).我所看到的大部分解决方案都涉及使用Olly Dbg对装配进行修改; 有没有办法在WinDbg中做到这一点?
当我运行时,我看到控制台上打印了$mvn -q clean install一堆语句。[debug] execute contextualize
经过一番搜索,我确定这是 Maven Resources Plugin 2.5 版本的问题。这个问题已经在2.6版本中修复了,但是我不知道如何让我的项目使用它。(http://jira.codehaus.org/browse/MRESOURCES-140)
我的项目都没有在它们的 poms 中列出这个插件,所以我不确定 Maven 从哪里获取它,也许它被用在其他 Apache 依赖项之一或其他东西中?(我什至不明白这个插件是做什么的或者Maven中的插件一般是如何使用的)
我尝试将以下内容添加到我的根 pom 中:
<build>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
</plugin>
</plugins>
</build>
Run Code Online (Sandbox Code Playgroud)
然而,这似乎并不能解决问题。我仍然看到[debug] execute contextualize输出,当我运行时$mvn help:effective-pom,输出仍然显示:
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>default-resources</id>
<phase>process-resources</phase>
<goals>
<goal>resources</goal>
</goals>
</execution>
<execution>
<id>default-testResources</id>
<phase>process-test-resources</phase>
<goals>
<goal>testResources</goal>
</goals>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
我怎样才能强制 Maven 使用这个插件的新版本,以便我可以抑制恼人的[debug] execute contextualize输出?
我想打印GetDiskFreeSpaceEx(...)设置的根卷的大小,但它给我的值是ULARGE_INTEGER.以十进制数字打印到控制台的最佳方法是什么?我使用的是普通的C和Windows API函数.