Hi,
Recently, I have been having trouble running Help Viewer.app; it crashes immediately after I start it up. I did a clean install, but the problem persists. So, I decided to try debugging it myself.
First I loaded the exe. into a blank project on Xcode and ran GDB. The backtrace shows frame #0 at 0x90196a44. This address points to CFStringGetLength. Looking at the crash log:
Exception: EXC_BAD_ACCESS Codes: KERN_PROTECTION_FAILURE
Thread 0 Crashed:
#0 0x90196a5c in 0x90196a5c
#1 0x8d384e04 in CFStringCopyConvertingHTMLEntityCharacters (CFStringCopyConvertingHTMLEntityCharacters + 32)
#2 0x8d38f254 in -[HelpView _extractTitleAndIconFromBooks]
(-[HelpView _extractTitleAndIconFromBooks]+136)
Now, as I understand it, CFStringGetLength is one of the primitive functions of CFString; the other being CFStringGetCharacterIndex. So the problem lies not in the copy and conversion of the HTML characters, but the number of Unicode characters in the CFString object...right?
Next, I thought it would be a good idea to take a look at the attributes of the CFString object. So I went back and called CFShowStr in GDB:
(gdb)call (void) CFShowStr(0x90196a44)
This is an NSString, not CFString
I don't know the Cocoa command for CFShowString, so I found myself stuck at this point. I wondered, "Where should I go from here?"
I disassembled the function CFStringGetLength, but didn't see much.
Then I pulled up the list of strings in the .exe:
root# strings -o 'Help Viewer'
...now I have a (long) list of string names and their offsets.
My question is, am I headed in the right direction and where should I go from here?
Someone's help would be much appreatiated
Thanks
Recently, I have been having trouble running Help Viewer.app; it crashes immediately after I start it up. I did a clean install, but the problem persists. So, I decided to try debugging it myself.
First I loaded the exe. into a blank project on Xcode and ran GDB. The backtrace shows frame #0 at 0x90196a44. This address points to CFStringGetLength. Looking at the crash log:
Exception: EXC_BAD_ACCESS Codes: KERN_PROTECTION_FAILURE
Thread 0 Crashed:
#0 0x90196a5c in 0x90196a5c
#1 0x8d384e04 in CFStringCopyConvertingHTMLEntityCharacters (CFStringCopyConvertingHTMLEntityCharacters + 32)
#2 0x8d38f254 in -[HelpView _extractTitleAndIconFromBooks]
(-[HelpView _extractTitleAndIconFromBooks]+136)
Now, as I understand it, CFStringGetLength is one of the primitive functions of CFString; the other being CFStringGetCharacterIndex. So the problem lies not in the copy and conversion of the HTML characters, but the number of Unicode characters in the CFString object...right?
Next, I thought it would be a good idea to take a look at the attributes of the CFString object. So I went back and called CFShowStr in GDB:
(gdb)call (void) CFShowStr(0x90196a44)
This is an NSString, not CFString
I don't know the Cocoa command for CFShowString, so I found myself stuck at this point. I wondered, "Where should I go from here?"
I disassembled the function CFStringGetLength, but didn't see much.
Then I pulled up the list of strings in the .exe:
root# strings -o 'Help Viewer'
...now I have a (long) list of string names and their offsets.
My question is, am I headed in the right direction and where should I go from here?
Someone's help would be much appreatiated
Thanks