windbg dump : path of loaded dll which only shows dll name - dll

I am trying to debug issues with dll version and paths.
I have a dump which shows this output for lmfsm which shows no path for few dlls.
Some of these dlls are app specific so i know they should be coming from same folder as MainEXE but i am not sure about others.
There is no path shown for dll present in same dir as main exe (dllPresentInSameDirAsMainExe.dll) and dll coming from gac (dll_from_gac.dll).
So, which dll is being picked up for System.IO.COmpression.dll which is present in my local MainEXE folder as well.
0:000> lmfsm
00000000`00220000 00000000`00228000 MainEXE D:\ABCPATH\MainEXEPkg.Code.1.0.0.20200323.1\MainEXE.exe
00000000`1aab0000 00000000`1ac3c000 dllPresentInSameDirAsMainExe dllPresentInSameDirAsMainExe.dll
00000000`1db50000 00000000`1dbcc000 dll_from_gac Dll.From.GAC.dll
00000000`20350000 00000000`2036e000 System_IO_Compression System.IO.Compression.dll
00007ffb`d0250000 00007ffb`d025e000 System_IO_Compression_FileSystem_ni C:\Windows\assembly\NativeImages_v4.0.30319_64\System.IO.Cf61e09c5#\c4e0a673a512f8626f9b499f8574dc90\System.IO.Compression.FileSystem.ni.dll
00007ffb`d7700000 00007ffb`d8344000 System_ni C:\Windows\assembly\NativeImages_v4.0.30319_64\System\66a8a818dfb2a81d684cd89cd3b83a80\System.ni.dll
So, how to find the path of System.IO.Compression.dll loaded in the process dump ?

WinDbg help says:
f
Displays the full image path. (This path always matches the path that is displayed in the initial load notification, unless you issued a .reload -s command.) When you use f, symbol type information is not displayed.
And indeed, a .reload -s seems to fix the problem:
0:000> lmf
start end module name
00f50000 00f58000 DebuggingEnumDefinition DebuggingEnumDefinition.exe
71640000 71692000 MSCOREE C:\WINDOWS\SysWOW64\MSCOREE.DLL
74e50000 74eef000 apphelp C:\WINDOWS\SysWOW64\apphelp.dll
751a0000 7539e000 KERNELBASE C:\WINDOWS\SysWOW64\KERNELBASE.dll
759a0000 75a80000 KERNEL32 C:\WINDOWS\SysWOW64\KERNEL32.dll
777c0000 7795a000 ntdll ntdll.dll
0:000> .reload -s
......
0:000> lmf
start end module name
00f50000 00f58000 DebuggingEnumDefinition C:\...\bin\Debug\DebuggingEnumDefinition.exe
71640000 71692000 MSCOREE C:\WINDOWS\SYSTEM32\MSCOREE.DLL
74e50000 74eef000 apphelp C:\WINDOWS\SYSTEM32\apphelp.dll
751a0000 7539e000 KERNELBASE C:\WINDOWS\System32\KERNELBASE.dll
759a0000 75a80000 KERNEL32 C:\WINDOWS\System32\KERNEL32.dll
777c0000 7795a000 ntdll C:\WINDOWS\SYSTEM32\ntdll.dll

Related

XCode: The file “[APP NAME].app” couldn’t be opened because there is no such file

For context, I am encountering this immediately after resolving this issue:
Xcode error: unable to create directory '/[PATH_TO_APP]/[APP_NAME].app' (in target '[TARGET]' from project '[PROJECT]')
Here is the full error details text (with redactions in [] for privacy):
Details
The file “[APP NAME].app” couldn’t be opened because there is no such file.
Domain: NSCocoaErrorDomain
Code: 260
Failure Reason: The file doesn’t exist.
User Info: {
NSFilePath = "/[APP NAME].app";
}
--
The operation couldn’t be completed. No such file or directory
Domain: NSPOSIXErrorDomain
Code: 2
Failure Reason: No such file or directory
--
System Information
macOS Version 10.15.5 (Build 19F101)
Xcode 11.5 (16139)
Running ls -l in the project folder shows the [APP NAME].app now present, but navigating to the same location and selecting the file in Finder shows a "crossed out circle" over the app's icon. Removing the file and building again results in the same thing. I've also tried renaming the project and restarting, etc, to no avail.
NSFilePath = "/[APP NAME].app" feels like a missing or misspelled environment variable.
If the build expects custom environment variable like $(MyBuildDir) to be defined, when it's not, then running a command with $(MyBuildDir)/[APP NAME].app would result in "/[APP NAME].app"
The same is true for if the environment variable misspelled. For example, using $(UBILD_DIR)/[APP NAME].app instead of BUILD_DIR would result in "/[APP NAME].app"

Errors Creating App Package (UWP, Appx) - fatal error CMF1106: failed to open input PDB file for reading

I'm getting errors when Creating App Packages for a UWP Win 10 application.
On my machine the error is:
C:\Users\Developer\.nuget\packages\nodatime\2.4.0\lib\netstandard2.0\NodaTime.pdb : fatal error CMF1106: failed to open input PDB file for reading (PDB error code = 11)3 input PDB file is not generated by /DEBUG:fastlinkW must read and agree to the Data Collection Policy at MSPDBCMF : fatal error CMF1000: internal error
The pdb file exists in the mentioned directory: C:\Users\Developer\.nuget\packages\nodatime\2.4.0\lib\netstandard2.0
On a hosted VSTS build the error message is even more cryptic:
C:\Users\VssAdministrator\.nuget\packages\nodatime\2.4.0\lib\netstandard2.0\NodaTime.pdb : fatal error CMF1106: failed to open input PDB file for reading (PDB error code = 11)3 input PDB file is not generated by /DEBUG:fastlinkW must read and agree to the Data Collection Policy at ??? before using /errorreport:send1 warning treated as error; the PDB file is intact# specified output filename is too long (exceeding 0 characters)
Note 1: On my machine the package is actaully successfully created but on the VSTS build the step fails as it detects the error in logs and stops.
Note 2: I'm pretty sure this is not NodaTime specific. This is about something else...
My msbuild switches are:
/p:AppxBundlePlatforms="$(BuildPlatform)"
/p:AppxPackageDir="$(Build.ArtifactStagingDirectory)\AppxPackages\"
/p:AppxBundle=Never
/p:UapAppxPackageBuildMode=StoreUpload
I am now trying with extra /p:DebugSymbols=false /p:DebugType=None, but even if it fails, I would like to understand and eliminate the 'fastlink' errors.
Explicitly setting DebugType to pdbonly worked in my case, but not sure if you need portable debug symbols or not, so this might not be an option for you.
<PropertyGroup>
<DebugType>pdbonly</DebugType>
</PropertyGroup>

When importing Nim module for Lua bindings, error shows: "could not load: lua(|5.1|5.0).dll"

I'm new to the Nim programming language, and coming from a Lua background, it excited me to find out that there is a module for adding Lua bindings to Nim.
I installed Nimble (Nim's package manager) for Windows and executed "nimble install lua" to download and install the correct module. Upon trying to import it and compile the source, this happened:
C:\Users\Ashley\Desktop\Stuff\Coding\Nim\Projects\LuaTest>nim c -r "C:\Users\Ashley\Desktop\Stuff\Coding\Nim\Projects\LuaTest\main.nim"
Hint: system [Processing]
Hint: main [Processing]
Hint: lua [Processing]
CC: main
CC: lua_lua
Hint: [Link]
Hint: operation successful (10698 lines compiled; 1.262 sec total; 16.163MB; Debug Build) [SuccessX]
could not load: lua(|5.1|5.0).dll
Error: execution of an external program failed: 'c:\users\ashley\desktop\stuff\coding\nim\projects\luatest\main.exe '
I have Lua 5.1 already installed with the proper entries in PATH. It's located in Program Files (x86). The directory contains a dll called lua5.1.dll. I tried looking up the error on Google, but there were no results that helped. What could be the problem?
On Windows you can put the library at the same place as the generated binary. In this case the file should be called lua.dll, lua5.1.dll or lua5.0.dll. Also make sure that the library and binary are both for the same system architecture, either x86 (32bit) or x86-64 (64bit).

dlopen() error image not found

I have software that first loads a .dylib lets call libFirst.dylib using the following command:
void* handle = dlopen(path.c_str(), RTLD_LAZY | RTLD_GLOBAL);
Later on inside a function from the loaded libFirst.dylib I attempt to load another .dylib using the same command but for libSecond.dylib, the loading of this shared library gives me the following warnings in my Xcode console:
error warning: Ignored unknown object module at 0x129310 with type 0x8a8399
dlerror: dlopen(/path/libSecond.dylib, 9): Library not loaded: libFirst.dylib
Referenced from: /path/libSecond.dylib
Reason: image not found
What I don't get is that its says libFirst.dylib is not loaded but I am currently inside a function from libFirst.dylib, so how can this be?
All my paths in DYLD_LIBRARY_PATH appear correct too.
Thanks in advance, I have been stuck on this for days.
I ended up using -install_name to change the install name of all my libraries to #rpath/dylibName.dylib and then in Xcode I set the Runpath Search paths using #loader_path to find all my .dylibs that I was using.
use:
install_name_tool -id #executable_path/../Frameworks/mylib.dylib mylib.dylib
then check it with:
otool -D mylib.dylib
I think an easier way to get around this error would be to revert to an earlier version where you were not getting this error. Right click on the project folder and navigate to local history to revert to an earlier version. I verified this to be working on the android studio installed on Mac OS Big sur.

arm-none-symbianelf-ld throwing "No Such File or Directory" error looking for file [...].GCCE.UREL.objects.via when building project

Im using Carbide C++ 2.3.0 to build a Flash Stub project with S60)5th_Edition_SDK-v1.0 Phone Release (GCCE) set as build configuration. I have installed Perl and JRE and the CSL toolchain (GCCE), and Ive manually updated the Windows PATH variable to point to GCCE/bin.
When I create my project according to - this article and click build I get only the following error message -
#\S60\devices\S60_5th_Edition_SDK_v1.0\EPOC32\BUILD\Symbian\Carbide\workspace\*[name]\*group\*[NAME]*\GCCE\*[name]*_0xECB9C23A.GCCE.UREL.objects.via: No such file: No such file or directory
The console output is -
arm-none-symbianelf-ld: #\S60\devices\S60_5th_Edition_SDK_v1.0\EPOC32\BUILD\Symbian\Carbide\workspace\name\group\NAME\GCCE\name_0xECB9C23A.GCCE.UREL.objects.via: No such file: No such file or directory
make[1]: *** [\S60\devices\S60_5th_Edition_SDK_v1.0\epoc32\release\gcce\urel\name_0xECB9C23A.exe] Error 1
make: *** [TARGETCUEMEMMOB] Error 2
My errors log panel shows that Perlv5.6.1 was not detected (i installed strawberry perl 5.10.1) should this matter?
I have checked that the EPOCROOT is set correctly and navigated in windows explorer to the file that cannot be found and I can see it there.
I cannot find any help with this on the nokia forums.
Yes, it matters.
The recommended perl implementation is ActivePerl 5.6.1, available from activestate.com