symbolicatecrash doesn't work because mdfind finds nothing - xcode4.5

Running Xcode 4.5.2 on OSX Mountain Lion (10.8.2)
I'm trying to symbolicate crash reports but the symbolicatecrash script always fails. I'm not actually interested in the app symbols. I want the system library symbols, but it can't even find those:
..fetching symbol file for UIKit--[undef]
Searching []...-- NO MATCH
Searching in Spotlight for dsym with UUID of cd513a2f22f53d698c3e10f6fe48a63e
Running mdfind "com_apple_xcode_dsym_uuids == CD513A2F-22F5-3D69-8C3E-10F6FE48A63E"
#dsym_paths = ( )
#exec_names = ( )
Did not find executable for dsym
## Warning: Can't find any unstripped binary that matches version of /System/Library/Frameworks/UIKit.framework/UIKit
UIKit.framework with that UUID does exist:
$ pwd
/Users/karl/Library/Developer/Xcode/iOS DeviceSupport/5.1.1 (9B206)/Symbols/System/Library/Frameworks
$ dwarfdump --uuid UIKit.framework/UIKit
UUID: CD513A2F-22F5-3D69-8C3E-10F6FE48A63E (armv7) UIKit.framework/UIKit
However, mdfind refuses to see it:
$ mdfind "com_apple_xcode_dsym_uuids == CD513A2F-22F5-3D69-8C3E-10F6FE48A63E"
$
Even searching using mdfind "com_apple_xcode_dsym_uuids == *" doesn't give any results inside of the Library dir or any system library/framework; only dSYM files from apps that I've compiled are listed.
How do I fix mdfind so that it includes system libraries in its searches?

Related

Missing dSYM no matter what

Firebase Crashlytics console lists this file as missing:
D79D73EB-C9BE-3D0A-B3F5-4D6E5BF6E3A0 1.1.1 (1084) Optional
So I successfully download symbols from
https://appstoreconnect.apple.com/WebObjects/iTunesConnect.woa/ra/ng/app/***/activity/ios/builds/1.1.1/1084/details
The UUID is present:
$ dwarfdump -u ~/Downloads/appDsyms/* | grep 3A0
UUID: D79D73EB-C9BE-3D0A-B3F5-4D6E5BF6E3A0 (arm64) /Users/gene/Downloads/appDsyms/d79d73eb-c9be-3d0a-b3f5-4d6e5bf6e3a0.dSYM
Then I upload it to Crashlytics, probably for the 10th time:
$ Pods/Fabric/upload-symbols -gsp GoogleService-Info.plist \
-p ios ~/Downloads/appDsyms/d79d73eb-c9be-3d0a-b3f5-4d6e5bf6e3a0.dSYM
Successfully submitted symbols for architecture arm64 with UUID d79d73ebc9be3d0ab3f54d6e5bf6e3a0 in dSYM: /Users/gene/Downloads/appDsyms/d79d73eb-c9be-3d0a-b3f5-4d6e5bf6e3a0.dSYM
Now I go back to Firebase Crashlitics console and still see the UUID as missing.
I did try to upload it as appDsyms.zip too, also successfully. And unzipped and upload individual files. Tried different ways of uploading maybe 10 times. All worked fine. But the UUID is still missing:
What am I doing wrong?
Apparently Crashlytics has been partially broken for at least 4 days:
https://groups.google.com/forum/?pli=1#!topic/firebase-talk/nO-NCq7p2iQ
I suppose they could not be bothered to tell us that it's been broken. The status dashboard shows "green" for the whole week.
Google, shame on you.

Robotframework, AutoIt: Error message "No keyword with name 'Send' found"

I'm trying to get familiar with the robotframework using autoitlibrary to test Windows applications. I found some examples which use the Send command to type text into a notpad window.
That's what I've done so far:
*** Settings ***
Library AutoItLibrary
*** Variables ***
${app} C:/Program Files/Notepad++/notepad++.exe
*** Test Cases ***
Enter text
Run ${app}
Win Wait Active new 1 - Notepad++
Send This is just a test.
So, the Notepad++ window is opened, but then it failed with the No keyword with name 'Send' found. message. I suppose there is no Send command in the AutoItLibrary, but I also cannot find any other command which may do this job.
AutoIt is installed, and so is the wrapper by pip install robotframework-autoitlibrary.
There really exists a Send keyword in AutoIt, but supposedly not in the wrapper for robotframework.
And ideas to fix this?
UPDATE: Windows 10 (64bit in a VirtualBox), Python v3.7.6 (32bit), RF v3.1.2, RF-AutoItLibrary v1.2.4, AutoIt v3.3.14.5
The "Search Keywords" dialog in RIDE provides AutoItLibrary as a Source, but then list only a few commands. So I suppose the library is accessible, but incomplete.
import os, re, subprocess, sys
# Set path to Python directories.
programfiles = os.environ['programfiles']
if not programfiles:
exit('Failed to get programfiles')
python_dirs = [os.path.join(programfiles, 'Python35'),
os.path.join(programfiles, 'Python36'),
os.path.join(programfiles, 'Python37'),
os.path.join(programfiles, 'Python38')]
# Process each python directory.
for python_dir in python_dirs:
print('---')
# Set path to AutoItX3.dll.
autoitx_dll = os.path.join(python_dir, r'Lib\site-packages\AutoItLibrary\lib\AutoItX3.dll')
if not os.path.isfile(autoitx_dll):
print('File not found: "' + autoitx_dll + '"')
continue
# Set path to the makepy module.
makepy = os.path.join(python_dir, r'Lib\site-packages\win32com\client\makepy.py')
if not os.path.isfile(makepy):
print('File not found: "' + makepy + '"')
continue
# Generate cache using make.py.
command = [os.path.join(python_dir, 'python.exe'), makepy, autoitx_dll]
with subprocess.Popen(command, stderr=subprocess.PIPE, cwd=python_dir, universal_newlines=True) as p:
stderr = p.communicate()[1]
print(stderr.rstrip())
parameters = re.findall(r'^Generating to .+\\([A-F0-9\-]+)x(\d+)x(\d+)x(\d+)\.py$', stderr, re.M)
if len(parameters) == 1:
parameters = parameters[0]
print('Insert the next line into AutoItLibrary.__init__.py if not exist.\n'
' win32com.client.gencache.EnsureModule("{{{guid}}}", {major}, {minor}, {lcid})'
.format(guid=parameters[0],
major=parameters[1],
minor=parameters[2],
lcid=parameters[3]))
# Pause so the user can view the subprocess output.
input('Press the return key to continue...')
The generated cache done by win32com\client\makepy.py for AutoItLibrary from the setup.py is saved in the %temp%\gen_py folder. This is done only when setup.py is executed. If the %temp% directory is cleaned later, which removes the cache, then I notice keywords like Send may fail to be recognized by the robotframework.
One solution appears to be regenerating the cache. The code above will generate the cache by use of makepy.py. It may also print a message about inserting win32com.client.gencache.EnsureModule(...) into AutoItLibrary\__init__.py for any of the Python versions as needed. This will ensure the cache is available when AutoItLibrary
is imported.
Change paths in the code to suit your environment.
With further research:
AutoItLibrary currently has AutoItX 3.3.6.1 and latest AutoIt has AutoItX 3.3.14.5. Important to know as one version registered can overwrite the registration of the previous registration.
AutoItLibrary currently registers AutoIt3X.dll without the _x64 suffix on the name on x64 systems. I may reference AutoIt3_x64.dll to define difference between x86 and x64.
Any version of AutoIt3X.dll and AutoIt3_x64.dll uses the same ID codes and the last registered wins (based on bitness as both x86 and x64 registrations can co-exist).
The TypeLib class key registered ID is {F8937E53-D444-4E71-9275-35B64210CC3B} and is where win32com may search.
If AutoIt3X.dll and AutoIt3_x64.dll are registered, unregister any 1 of those 2 will remove the AutoItX3.Control class key. Without this key, AutoIt3X will fail as AutoItLibrary needs this key. To fix, register again e.g. regsvr32.exe AutoIt3X.dll as admin in the working directory of AutoIt3X.dll.
The methods of any same version of AutoItX will match i.e. AutoIt3X.dll and AutoIt3X_x64.dll only changes in bitness, not methods.
Inserting win32com.client.gencache.EnsureModule("{F8937E53-D444-4E71-9275-35B64210CC3B}", 0, 1, 0) into AutoItLibrary\__init__.py should ensure the cache is always available for any AutoItX version. The initial code can be used to generate the cache, though the suggested change in AutoItLibrary\__init__.py makes it obsolete as the cache is generated on import of AutoItLibrary. If the ID was not constant, then the initial code may inform you of the ID to use.
The cache is important as it has generated .py files with methods like e.g.:
def Send(self, strSendText=defaultNamedNotOptArg, nMode=0):
'method Send'
# etc...
which if missing, makes Send and many others, an invalid keyword in AutoItLibrary.
If AutoItX 3.3.14.5 is registered, the - leading methods are removed and the + leading methods are added as compared to AutoItX 3.3.6.1:
-BlockInput
-CDTray
-IniDelete
-IniRead
-IniWrite
-RegDeleteKey
-RegDeleteVal
-RegEnumKey
-RegEnumVal
-RegRead
-RegWrite
-RunAsSet
+RunAs
+RunAsWait
So if any of those methods causes error, then you may want AutoItX 3.3.6.1 registered instead. In the AutoItX history, 3.3.10.0 release is when those method changes happened.
Fix:
Check your python architecture ( is it 32 or 64 bit)
For 32:
Open cmd in "Run as administrator" mode
run the command pip install robotframework-autoitlibrary
Now clone the autoit library source code:
https://github.com/nokia/robotframework-autoitlibrary
in the root directory run the below command: python setup.py install using cmd in admin mode
to navigate to root directory use the command pushd <filepath>' instead ofcd ` if cd doesn't work in cmd opened in admin mode.
For 64:
Open cmd in "Run as administrator" mode
Now clone the autoit library source code:
https://github.com/nokia/robotframework-autoitlibrary
in the root directory run the below command: python setup.py install using cmd in admin mode
to navigate to root directory use the command pushd <filepath>' instead ofcd ` if cd doesn't work in cmd opened in admin mode.

Issue while installing the weblogic 12 jar at windows

C:\Program Files\weblogic>"C:\Program Files\Java\jdk1.8.0_102\bin\java" -jar fmw_12.2.1.1.0_wls_quick.jar
Launcher log file is C:\Users\kb\AppData\Local\Temp\OraInstall2016-10-05_10-23-23PM\launcher2016-10-05_10-23-23PM.log.
Extracting the installer . . . . . . . . Done
Checking if CPU speed is above 300 MHz. Actual 2594 Passed
Checking swap space: must be greater than 512 MB Passed
Checking if this platform requires a 64-bit JVM. Actual 64 Passed (64-bit not required)
Checking temp space: must be greater than 300 MB. Actual 825693 MB Passed
Preparing to launch the Oracle Universal Installer from C:\Users\kb\AppData\Local\Temp\OraInstall2016-10-05_10-23-23PM
Log: C:\Users\kb\AppData\Local\Temp\OraInstall2016-10-05_10-23-23PM\install2016-10-05_10-23-23PM.log
*****************************************************
Distribution Name : Oracle Fusion Middleware 12c WebLogic and Coherence Developer
Distribution Version : 12.2.1.1.0
Oracle Home : C:\Program Files\weblogic\wls12210
Java Home : C:\Program Files\Java\jdk1.8.0_102
Note: Oracle Home not supplied (defaulted to <present working dir>\wls12210)
*****************************************************
Copyright (c) 1996, 2016, Oracle and/or its affiliates. All rights reserved.
Skipping Software Updates
Starting check : CertifiedVersions
Expected result: One of 6.1,6.2,6.3,10.0
Actual Result: 10.0
Check complete. The overall result of this check is: Passed
CertifiedVersions Check: Success.
Starting check : CheckJDKVersion
Problem: This JDK version was not certified at the time it was made generally available. It may have been certified following general availability.
Recommendation: Check the Supported System Configurations Guide (http://www.oracle.com/technetwork/middleware/ias/downloads/fusion-certification-100350.html) for further details. Press "Next" if you wish to continue.
Expected result: 1.8.0_77
Actual result: 1.8.0_102
Warning: Check:CheckJDKVersion completed with warnings.
Validations are enabled for this session.
Verifying data
[VALIDATION] [ERROR]:INST-07004: Oracle Home location contains one or more invalid characters
[VALIDATION] [SUGGESTION]:The directory name may only contain alphanumeric, underscore (_), hyphen (-) , or dot (.) characters, and it must begin with an alphanumeric character. Provide a different directory name.
installation Failed. Exiting installation due to data validation failure.
The log(s) can be found here: C:\Users\kb\AppData\Local\Temp\OraInstall2016-10-05_10-23-23PM.
Press Enter to exit
I tried SET ORACLE_HOME="C:\Program Files\weblogic"
executing from C:\Program Files\weblogic
How to solve this problem? Or is there any other weblogic jar files needs to be used?
Set the ORACLE_HOME argument when executing the Java command at the command-line:
i.e.:
C:\Program Files\Java\jdk1.8.0_144\bin>java -jar C:\WebLogicDownloads\fmw_12.2.1.2.0_wls_quick.jar ORACLE_HOME=C:\WebLogicServer
The issue is solved. I changed the JDK location to C driver "C:\" from "C:\program files".
Thanks!
Apparently the following error is important:
INST-07004: Oracle Home location contains one or more invalid characters
[VALIDATION] [SUGGESTION]:The directory name may only contain alphanumeric,
underscore (_), hyphen (-) , or dot (.) characters, and it must begin with
an alphanumeric character. Provide a different directory name. installation
Failed. Exiting installation due to data validation failure.
The problem is the space in the middle of "Program Files". Do to the limitations on the name you can't even use the 8-character abbreviated name for Program Files (usually PROGRA~1). I suggest you install WebLogic directly into the root of your C: drive, so try using C:\weblogic.
Best of luck.
Your folder name with setup is invalid or you are installing from rar directly then this problem arises. Check the software information path to see if it is invalid.

Why R is unable to load a shared object?

I am trying to use XLConnect library in R. If I execute
library(XLConnect)
I get the following error message:
JAVA_HOME cannot be determined from the Registry
To resolve this problem I set first the JAVA_HOME variable:
Sys.setenv(JAVA_HOME='C:/Program Files (x86)/Java/jre1.8.0_65')
library(XLConnect)
It looks like it helps me to come further but then I get another problem:
unable to load shared object 'C:/Program Files/R/R-3.2.2/library/rJava/libs/x64/rJava.dll'
It wonder why R cannot load rJava.dll. At least this file is located in the folder where R searches for it:
C:\Program Files\R\R-3.2.2\library\rJava\libs\x64
ADDED
Please note that the rJava.dll file exists and it is located there, where R is searching for it. I guess that the problem is in incompatibility between 32bit and 64bit versions. I assume that because R complains:
% 1 is not a valid Win32 application
Well, why do R expect it to be a Win32 application`? First, my OS is 64bit, second my Java is also for the 64bit and finally, the `rJava.dll` object is located in the folder withx64` in the name (so, I assume it is also a 64bit version).
I faced the same issue . Please locate jvm.dll
should be in (your JRE version could be different )
C:\Program Files (x86)\Java\jre1.8.0_65\bin\client
or
C:\Program Files (x86)\Java\jre1.8.0_65\bin\server
add this path to your windows system path and you are good to go .but keep in mind the version of jre and R should be consistent,if your java is in Program Files its 64 bit so launch from 64 bit R if its in Program Files (x86)its 32 bit so use 32 bit R
like in my case it showed error in 64 bit
but worked perfectly in 32 bit
You did use / instead of \.
Sys.setenv(JAVA_HOME='C:\\Program Files (x86)\\Java\\jre1.8.0_65')
library(XLConnect)
I am using UNIX. Therefore I cannot test it by myself but your path might be wrong as well.
According to this post you can search it by using this:
find.java <- function() {
for (root in c("HLM", "HCU")) for (key in c("Software\\JavaSoft\\Java Runtime Environment",
"Software\\JavaSoft\\Java Development Kit")) {
hive <- try(utils::readRegistry(key, root, 2),
silent = TRUE)
if (!inherits(hive, "try-error"))
return(hive)
}
hive
}
credit goes to #nograpes for the function and this article for helping me giving you the answer.

Fail to link to standard library of Ocaml-java (or Cafesterol)

I am a new user of Ocaml-java (or Cafesterol) which compiles primtive Ocaml program to executable jar that is allowed run on JVM. However when I try to compile a test program into executable jar I got error info as follow:
>java -jar ~/ocaml-project/ocamljava-bin-1.4/bin/ocamljava.jar -standalone regexdna.ml -o regexdna.jar
File "regexdna.ml", line 1, characters 0-1:
Error: No implementations provided for the following modules:
Str referenced from regexdna.cmj
Unix referenced from regexdna.cmj
It seems module Str and Unix is missing from Ocaml-java. However, str.jar and unix.jar do exist under ~/ocaml-project/ocamljava-bin-1.4/lib/others/ when I install Ocaml-java, and within these jars we do have Str.class and Unix.class. (I suppose this directory is on the path of the standard library of Ocaml-java, so it should be included in default search path)
Can any Ocaml-java user tell me how Ocaml-java search for dependency libraries?
Quoting Xavier Clerc on this :
Well it should work, but you have to pass explicitly the referenced
library (just as in vanilla OCaml). Leading in your case to:
$ /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java -jar ~/opt/ocamljava-2.0-early-access9/lib/ocamljava.jar str.cmja regexdna.ml
Note that I am using the latest ocamljava preview.

Resources