[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
loading bundles stopped working
From: |
Sebastian Reitenbach |
Subject: |
loading bundles stopped working |
Date: |
Sun, 25 Nov 2018 19:30:36 +0100 |
User-agent: |
SOGoMail 4.0.2 |
Hi,
since a good months ago, on OpenBSD -current amd64, bundle loading stopped
working. I'm not sure what caused it, at least nothing with regard to objc and
gnustep, since I haven't touched the packages since then.
So ktrace tells me, it finds the GSBackend bundle, opens the
Info-Gnustep.plist, reads it, and opens the
object file. But then in:
Breakpoint 1, initialize_gnustep_backend () at NSApplication.m:321
321 backend = NSClassFromString (@"GSBackend");
That NSClassFromString fails, and basically all GUI applications stop working
as well as
any other application that loads bundles seems to have the same/similar problem
as well,
as I saw the same thing with SOGo webmailer.
Below a gdb session, where I tried to follow the flow from above backtrace.
I think somewhere in libobjc2, some "assumption" how things work, is due to
some change
in the OS or some dependent package not right anymore?
But I've no clue.
Things are built with clang from base, wich is:
OpenBSD clang version 6.0.0 (tags/RELEASE_600/final) (based on LLVM 6.0.0)
Target: amd64-unknown-openbsd6.4
Thread model: posix
InstalledDir: /usr/bin
But I also tried clang6.0.1 from ports, but to no avail.
On OpenBSD -current there is /usr/bin/ld, /usr/bin/ld.lld and /usr/bin/ld.bfd
installed,
where /usr/bin/ld is a hardlink to /usr/bin/ld.lld.
When I build libobjc2 or other libs/apps, then for linking clang is used, which
in turn uses
I think /usr/bin/ld ?
So, the thing is, when I replace all /usr/bin/ld* with the /usr/bin/ld.bfd, and
rebuild everything,
then GUI apps, as well as SOGo start up. But I can't do that when building
packages :(
At some point in time the default linker was changed from the ld.bfd to ld.lld,
but I think
that happened quite a bit earlier.
I tried to force using /usr/bin/ld.bfd setting LD=/usr/bin/ld.bfd, but then
building gnustep-base or
others, when it comes to linking, it is whining about parameters/flags it
doesn't understand.
someone can point me into some direction what might go wrong here?
Sebastian
following versions are installed:
gnustep-back-0.26.2 GNUstep gui backend
gnustep-base-1.25.1p1 GNUstep base library
gnustep-gui-0.26.2 GNUstep gui library
gnustep-libobjc2-1.8.1p0 GNUstep libobjc2 objective-c runtime
gnustep-make-2.7.0p2 GNUstep makefile package
egdb /usr/local/bin/GMines
GNU gdb (GDB) 7.12.1
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-unknown-openbsd6.4".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /usr/local/bin/GMines...done.
(gdb) r
Starting program: /usr/local/bin/GMines
Program received signal SIGFPE, Arithmetic exception.
0x00000b039aff524c in _dl_find_symbol_obj (obj=0xb03d90cbc00,
sl=0x7f7fffff44d8) at /usr/src/libexec/ld.so/resolve.c:584
584 for (si = obj->buckets[sl->sl_elf_hash % obj->nbuckets];
(gdb) bt
#0 0x00000b039aff524c in _dl_find_symbol_obj (obj=0xb03d90cbc00,
sl=0x7f7fffff44d8) at /usr/src/libexec/ld.so/resolve.c:584
#1 0x00000b039aff5068 in _dl_find_symbol (name=0xb0360931d15 "getpid",
this=0x7f7fffff4578, flags=48, ref_sym=0xb03608c6338, req_obj=<optimized out>,
pobj=0x7f7fffff4570) at /usr/src/libexec/ld.so/resolve.c:663
#2 0x00000b039aff3f1a in _dl_bind (object=0xb03f04dd400, index=<optimized
out>) at /usr/src/libexec/ld.so/amd64/rtld_machine.c:357
#3 0x00000b039aff5fed in _dl_bind_start () at
/usr/src/libexec/ld.so/amd64/ldasm.S:108
#4 0x00000b0360d6b5c4 in NSLogv (format=0xb0399f41308, args=0x7f7fffff48c0) at
NSLog.m:350
#5 0x00000b0360c73d75 in -[NSAssertionHandler
handleFailureInFunction:file:lineNumber:description:] (self=0xb03e00bfd38,
_cmd=0xb0357e4f7c8 <.objc_selector_list+1392>,
functionName=0xb0371011688, fileName=0xb040117be88, line=323,
format=0xb0357e4d0e8 <.objc_str.404>) at NSAssertionHandler.m:101
#6 0x00000b0357abed97 in initialize_gnustep_backend () at NSApplication.m:322
#7 0x00000b0357ac136b in -[NSApplication _init] (self=0xb039592ee08,
_cmd=0xb0357e4fa38 <.objc_selector_list+2016>) at NSApplication.m:878
#8 0x00000b0360d8e5f8 in -[NSObject performSelector:withObject:]
(self=0xb039592ee08, _cmd=0xb0360fb5630 <.objc_selector_list+720>,
aSelector=0xb0357e4fa38 <.objc_selector_list+2016>, anObject=0xb039592ee08)
at NSObject.m:2000
#9 0x00000b0360e24673 in -[NSObject(NSThreadPerformAdditions)
performSelector:onThread:withObject:waitUntilDone:modes:] (self=0xb039592ee08,
_cmd=0xb0360fb53a0 <.objc_selector_list+64>, aSelector=0xb0357e4fa38
<.objc_selector_list+2016>, aThread=0xb0400c40588, anObject=0xb039592ee08,
aFlag=1 '\001',
anArray=0xb040117b988) at NSThread.m:1672
#10 0x00000b0360e24321 in -[NSObject(NSThreadPerformAdditions)
performSelectorOnMainThread:withObject:waitUntilDone:modes:]
(self=0xb039592ee08,
_cmd=0xb0360fb53e0 <.objc_selector_list+128>, aSelector=0xb0357e4fa38
<.objc_selector_list+2016>, anObject=0xb039592ee08, aFlag=1 '\001',
anArray=0xb040117b988)
at NSThread.m:1627
#11 0x00000b0360e243be in -[NSObject(NSThreadPerformAdditions)
performSelectorOnMainThread:withObject:waitUntilDone:] (self=0xb039592ee08,
_cmd=0xb0357e50098 <.objc_selector_list+3648>, aSelector=0xb0357e4fa38
<.objc_selector_list+2016>, anObject=0xb039592ee08, aFlag=1 '\001') at
NSThread.m:1638
#12 0x00000b0357ac1ad5 in -[NSApplication init] (self=0xb039592ee08,
_cmd=0xb0357e50178 <.objc_selector_list+3872>) at NSApplication.m:978
#13 0x00000b0357ac12dd in +[NSApplication sharedApplication]
(self=0xb0357e4e8b8 <_OBJC_CLASS_NSApplication>, _cmd=0xb014671b268
<.objc_selector_list+160>)
at NSApplication.m:850
#14 0x00000b014670dfb8 in gnustep_base_user_main (argc=1, argv=0x7f7fffff4f48,
env=0x7f7fffff4f58) at main.m:44
#15 0x00000b0360dc21e7 in main (argc=1, argv=0x7f7fffff4f48,
env=0x7f7fffff4f58) at NSProcessInfo.m:1002
#16 0x00000b014670a056 in ___start ()
#17 0x0000000000000000 in ?? ()
(gdb) frame 6
#6 0x00000b0357abed97 in initialize_gnustep_backend () at NSApplication.m:322
322 NSCAssert1 (backend != Nil,
(gdb) list
317 path);
318
319 /* Now get the GSBackend class, which should have just been
loaded
320 * from the bundle. */
321 backend = NSClassFromString (@"GSBackend");
322 NSCAssert1 (backend != Nil,
323 _(@"Backend at path %@ doesn't contain the GSBackend class"),
path);
324 [backend initializeBackend];
325 }
326
(gdb) break NSApplication.m:321
Breakpoint 1 at 0xb0357abec6e: file NSApplication.m, line 321.
(gdb) c
Continuing.
Program terminated with signal SIGFPE, Arithmetic exception.
The program no longer exists.
(gdb) r
Starting program: /usr/local/bin/GMines
Breakpoint 1, initialize_gnustep_backend () at NSApplication.m:321
321 backend = NSClassFromString (@"GSBackend");
(gdb) s
NSClassFromString (aClassName=0xfaf8e68cfe0 <.objc_str.393>) at
NSObjCRuntime.m:108
108 if (aClassName != nil)
(gdb) n
110 int len = [aClassName length];
(gdb)
111 char buf[len+1];
(gdb)
113 [aClassName getCString: buf
(gdb)
114 maxLength: len + 1
(gdb)
113 [aClassName getCString: buf
(gdb)
116 return objc_lookUpClass (buf);
(gdb) s
objc_lookUpClass (name=0x7f7ffffee240 "GSBackend") at
/home/ports/pobj/amd64/gnustep-libobjc2-1.8.1/libobjc2-1.8.1/class_table.c:519
519 return (id)class_table_get_safe(name);
(gdb) s
class_table_get_safe (class_name=0x7f7ffffee240 "GSBackend") at
/home/ports/pobj/amd64/gnustep-libobjc2-1.8.1/libobjc2-1.8.1/class_table.c:131
131 if (NULL == class_name) { return Nil; }
(gdb) list
126 class_table_internal_insert(class_table, class);
127 }
128
129 PRIVATE Class class_table_get_safe(const char *class_name)
130 {
131 if (NULL == class_name) { return Nil; }
132 return class_table_internal_table_get(class_table, class_name);
133 }
134
135 PRIVATE Class class_table_next(void **e)
(gdb) print class_name
$1 = 0x7f7ffffee240 "GSBackend"
(gdb) print class_table
$2 = (class_table_internal_table *) 0xfaf8951e9c0
(gdb) print *class_table
$3 = {lock = 0xfafca3b8200, table_size = 4096, table_used = 784,
enumerator_count = 1, old = 0x0, table = 0xfafbe1fa000}
(gdb) s
132 return class_table_internal_table_get(class_table, class_name);
(gdb) s
class_table_internal_table_get (table=0xfaf8951e9c0, key=0x7f7ffffee240) at
/home/ports/pobj/amd64/gnustep-libobjc2-1.8.1/libobjc2-1.8.1/hash_table.h:418
418 PREFIX(_table_cell) cell = PREFIX(_table_get_cell)(table, key);
(gdb) print table
$4 = (class_table_internal_table *) 0xfaf8951e9c0
(gdb) print key
$5 = (const void *) 0x7f7ffffee240
(gdb) print *key
Attempt to dereference a generic pointer.
(gdb) print const char *key
A syntax error in expression, near `key'.
(gdb) print const char * key
A syntax error in expression, near `key'.
(gdb) print (const char *) key
$6 = 0x7f7ffffee240 "GSBackend"
(gdb) s
class_table_internal_table_get_cell (table=0xfaf8951e9c0, key=0x7f7ffffee240)
at /home/ports/pobj/amd64/gnustep-libobjc2-1.8.1/libobjc2-1.8.1/hash_table.h:338
338 uint32_t hash = MAP_TABLE_HASH_KEY(key);
(gdb) print (const char *) key
$7 = 0x7f7ffffee240 "GSBackend"
(gdb) s
string_hash (str=0x7f7ffffee240 "GSBackend") at
/home/ports/pobj/amd64/gnustep-libobjc2-1.8.1/libobjc2-1.8.1/string_hash.h:10
10 uint32_t hash = 0;
(gdb) list
5 * Efficient string hash function.
6 */
7 __attribute__((unused))
8 static uint32_t string_hash(const char *str)
9 {
10 uint32_t hash = 0;
11 int32_t c;
12 while ((c = *str++))
13 {
14 hash = c + (hash << 6) + (hash << 16) - hash;
(gdb) s
12 while ((c = *str++))
(gdb)
14 hash = c + (hash << 6) + (hash << 16) - hash;
(gdb) print c
$8 = 71
(gdb) c
Continuing.
Program received signal SIGFPE, Arithmetic exception.
0x00000faee7d1e24c in _dl_find_symbol_obj (obj=0xfaf1783e800,
sl=0x7f7ffffede78) at /usr/src/libexec/ld.so/resolve.c:584
584 for (si = obj->buckets[sl->sl_elf_hash % obj->nbuckets];
(gdb) c
Continuing.
Program terminated with signal SIGFPE, Arithmetic exception.
The program no longer exists.
(gdb) r
Starting program: /usr/local/bin/GMines
Breakpoint 1, initialize_gnustep_backend () at NSApplication.m:321
321 backend = NSClassFromString (@"GSBackend");
(gdb) s
NSClassFromString (aClassName=0xa32a1719fe0 <.objc_str.393>) at
NSObjCRuntime.m:108
108 if (aClassName != nil)
(gdb)
110 int len = [aClassName length];
(gdb)
111 char buf[len+1];
(gdb)
113 [aClassName getCString: buf
(gdb)
114 maxLength: len + 1
(gdb)
113 [aClassName getCString: buf
(gdb)
116 return objc_lookUpClass (buf);
(gdb)
objc_lookUpClass (name=0x7f7ffffc0090 "GSBackend") at
/home/ports/pobj/amd64/gnustep-libobjc2-1.8.1/libobjc2-1.8.1/class_table.c:519
519 return (id)class_table_get_safe(name);
(gdb)
class_table_get_safe (class_name=0x7f7ffffc0090 "GSBackend") at
/home/ports/pobj/amd64/gnustep-libobjc2-1.8.1/libobjc2-1.8.1/class_table.c:131
131 if (NULL == class_name) { return Nil; }
(gdb)
132 return class_table_internal_table_get(class_table, class_name);
(gdb)
class_table_internal_table_get (table=0xa331e009540, key=0x7f7ffffc0090) at
/home/ports/pobj/amd64/gnustep-libobjc2-1.8.1/libobjc2-1.8.1/hash_table.h:418
418 PREFIX(_table_cell) cell = PREFIX(_table_get_cell)(table, key);
(gdb)
class_table_internal_table_get_cell (table=0xa331e009540, key=0x7f7ffffc0090)
at /home/ports/pobj/amd64/gnustep-libobjc2-1.8.1/libobjc2-1.8.1/hash_table.h:338
338 uint32_t hash = MAP_TABLE_HASH_KEY(key);
(gdb)
string_hash (str=0x7f7ffffc0090 "GSBackend") at
/home/ports/pobj/amd64/gnustep-libobjc2-1.8.1/libobjc2-1.8.1/string_hash.h:10
10 uint32_t hash = 0;
(gdb)
12 while ((c = *str++))
(gdb)
14 hash = c + (hash << 6) + (hash << 16) - hash;
(gdb)
12 while ((c = *str++))
(gdb)
14 hash = c + (hash << 6) + (hash << 16) - hash;
(gdb)
12 while ((c = *str++))
(gdb)
14 hash = c + (hash << 6) + (hash << 16) - hash;
(gdb)
12 while ((c = *str++))
(gdb)
14 hash = c + (hash << 6) + (hash << 16) - hash;
(gdb)
12 while ((c = *str++))
(gdb)
14 hash = c + (hash << 6) + (hash << 16) - hash;
(gdb) print hash
$9 = 277150827
(gdb) list
9 {
10 uint32_t hash = 0;
11 int32_t c;
12 while ((c = *str++))
13 {
14 hash = c + (hash << 6) + (hash << 16) - hash;
15 }
16 return hash;
17 }
18
(gdb) s
12 while ((c = *str++))
(gdb)
14 hash = c + (hash << 6) + (hash << 16) - hash;
(gdb)
12 while ((c = *str++))
(gdb)
14 hash = c + (hash << 6) + (hash << 16) - hash;
(gdb)
12 while ((c = *str++))
(gdb)
14 hash = c + (hash << 6) + (hash << 16) - hash;
(gdb)
12 while ((c = *str++))
(gdb)
14 hash = c + (hash << 6) + (hash << 16) - hash;
(gdb)
12 while ((c = *str++))
(gdb)
16 return hash;
(gdb) print hash
$10 = 4054769640
(gdb) s
class_table_internal_table_get_cell (table=0xa331e009540, key=0x7f7ffffc0090)
at /home/ports/pobj/amd64/gnustep-libobjc2-1.8.1/libobjc2-1.8.1/hash_table.h:339
339 PREFIX(_table_cell) cell = PREFIX(_table_lookup)(table, hash);
(gdb) print cell
$11 = (class_table_internal_table_cell) 0x7f7ffffbffe0
(gdb) list
334 }
335
336 static void *PREFIX(_table_get_cell)(PREFIX(_table) *table, const void
*key)
337 {
338 uint32_t hash = MAP_TABLE_HASH_KEY(key);
339 PREFIX(_table_cell) cell = PREFIX(_table_lookup)(table, hash);
340 // Value does not exist.
341 if (!MAP_TABLE_VALUE_NULL(cell->value))
342 {
343 if (MAP_TABLE_COMPARE_FUNCTION(key, cell->value))
(gdb)
344 {
345 return cell;
346 }
347 uint32_t jump = cell->secondMaps;
348 // Look at each offset defined by the jump table to
find the displaced location.
349 for (int hop = __builtin_ffs(jump) ; hop > 0 ; hop =
__builtin_ffs(jump))
350 {
351 PREFIX(_table_cell) hopCell =
PREFIX(_table_lookup)(table, hash+hop);
352 if (MAP_TABLE_COMPARE_FUNCTION(key,
hopCell->value))
353 {
(gdb) s
class_table_internal_table_lookup (table=0xa331e009540, hash=4054769640) at
/home/ports/pobj/amd64/gnustep-libobjc2-1.8.1/libobjc2-1.8.1/hash_table.h:219
219 hash = hash % TABLE_SIZE(table);
(gdb) lidz
Undefined command: "lidz". Try "help".
(gdb) list
214 };
215
216 static inline PREFIX(_table_cell) PREFIX(_table_lookup)(PREFIX(_table)
*table,
217 uint32_t hash)
218 {
219 hash = hash % TABLE_SIZE(table);
220 return &table->table[hash];
221 }
222
223 static int PREFIX(_table_move_gap)(PREFIX(_table) *table, uint32_t
fromHash,
(gdb) print table
$12 = (class_table_internal_table *) 0xa331e009540
(gdb) print hash
$13 = 4054769640
(gdb) print &table->table[hash]
$14 = (struct class_table_internal_table_cell_struct *) 0xa41d88dfe80
(gdb) print (struct class_table_internal_table_cell_struct *)
&table->table[hash]
$15 = (struct class_table_internal_table_cell_struct *) 0xa41d88dfe80
(gdb) print (struct class_table_internal_table_cell_struct *) 0xa41d88dfe80
$16 = (struct class_table_internal_table_cell_struct *) 0xa41d88dfe80
(gdb) print (struct class_table_internal_table_cell_struct *) 0xa41d88dfe80
$17 = (struct class_table_internal_table_cell_struct *) 0xa41d88dfe80
(gdb) print 0xa41d88dfe80
$18 = 11277922336384
(gdb) print (struct class_table_internal_table_cell_struct ) 0xa41d88dfe80
Invalid cast.
(gdb) print (struct class_table_internal_table_cell_struct *) &0xa41d88dfe80
Attempt to take address of value not located in memory.
(gdb) print (struct class_table_internal_table_cell_struct *) *0xa41d88dfe80
Cannot access memory at address 0xa41d88dfe80
(gdb) print (struct class_table_internal_table_cell_struct *) ^CQuit88dfe80
(gdb) print table->table[hash]
Cannot access memory at address 0xa41d88dfe80
(gdb) print &table->table[hash]
$19 = (struct class_table_internal_table_cell_struct *) 0xa41d88dfe80
(gdb) s
220 return &table->table[hash];
(gdb) s
class_table_internal_table_get_cell (table=0xa331e009540, key=0x7f7ffffc0090)
at /home/ports/pobj/amd64/gnustep-libobjc2-1.8.1/libobjc2-1.8.1/hash_table.h:341
341 if (!MAP_TABLE_VALUE_NULL(cell->value))
(gdb) print cell
$20 = (class_table_internal_table_cell) 0xa32bda0fe80
(gdb) print cell->value
$21 = (void *) 0xa32a18f9620 <_OBJC_CLASS_IBConnectionRecord>
(gdb) s
class_table_internal_is_null (value=0xa32a18f9620
<_OBJC_CLASS_IBConnectionRecord>) at
/home/ports/pobj/amd64/gnustep-libobjc2-1.8.1/libobjc2-1.8.1/hash_table.h:77
77 return value == NULL;
(gdb) list
72 #endif
73 #ifndef MAP_TABLE_VALUE_TYPE
74 # define MAP_TABLE_VALUE_TYPE void*
75 static BOOL PREFIX(_is_null)(void *value)
76 {
77 return value == NULL;
78 }
79 # define MAP_TABLE_TYPES_BITMAP 1
80 # define MAP_TABLE_VALUE_NULL PREFIX(_is_null)
81 # define MAP_TABLE_VALUE_PLACEHOLDER NULL
(gdb) print value
$22 = (void *) 0xa32a18f9620 <_OBJC_CLASS_IBConnectionRecord>
(gdb) s
class_table_internal_table_get_cell (table=0xa331e009540, key=0x7f7ffffc0090)
at /home/ports/pobj/amd64/gnustep-libobjc2-1.8.1/libobjc2-1.8.1/hash_table.h:343
343 if (MAP_TABLE_COMPARE_FUNCTION(key, cell->value))
(gdb) print key
$23 = (const void *) 0x7f7ffffc0090
(gdb) print cell->value
$24 = (void *) 0xa32a18f9620 <_OBJC_CLASS_IBConnectionRecord>
(gdb) s
class_compare (name=0x7f7ffffc0090 "GSBackend", class=0xa32a18f9620
<_OBJC_CLASS_IBConnectionRecord>)
at
/home/ports/pobj/amd64/gnustep-libobjc2-1.8.1/libobjc2-1.8.1/class_table.c:71
71 return string_compare(name, class->name);
(gdb) print name
$25 = 0x7f7ffffc0090 "GSBackend"
(gdb) print class->name
$26 = 0xa32a0c84d0e "IBConnectionRecord"
(gdb) s
string_compare (str1=0x7f7ffffc0090 "GSBackend", str2=0xa32a0c84d0e
"IBConnectionRecord")
at
/home/ports/pobj/amd64/gnustep-libobjc2-1.8.1/libobjc2-1.8.1/string_hash.h:25
25 if (str1 == str2)
(gdb) list
20 * Test two strings for equality.
21 */
22 __attribute__((unused))
23 static int string_compare(const char *str1, const char *str2)
24 {
25 if (str1 == str2)
26 {
27 return 1;
28 }
29 if (str1 == NULL || str2 == NULL)
(gdb) s
29 if (str1 == NULL || str2 == NULL)
(gdb)
33 return strcmp(str1, str2) == 0;
(gdb)
strcmp () at /usr/src/lib/libc/arch/amd64/string/strcmp.S:12
12 RETGUARD_SETUP(strcmp, r11)
(gdb) n
18 testb $7,%dil
(gdb)
19 je .Ls1aligned
(gdb)
35 testb $7,%sil
(gdb)
36 jne .Lbyte_loop
(gdb)
59 movb (%rdi),%al
(gdb)
60 incq %rdi
(gdb)
61 movb (%rsi),%dl
(gdb)
62 incq %rsi
(gdb)
63 testb %al,%al
(gdb)
64 je .Ldone
(gdb)
65 cmpb %al,%dl
(gdb)
66 je .Lbyte_loop
(gdb)
69 movzbq %al,%rax
(gdb)
70 movzbq %dl,%rdx
(gdb)
71 subq %rdx,%rax
(gdb)
72 RETGUARD_CHECK(strcmp, r11)
(gdb)
strcmp () at /usr/src/lib/libc/arch/amd64/string/strcmp.S:73
73 ret
(gdb)
string_compare (str1=0x7f7ffffc0090 "GSBackend", str2=0xa32a0c84d0e
"IBConnectionRecord")
at
/home/ports/pobj/amd64/gnustep-libobjc2-1.8.1/libobjc2-1.8.1/string_hash.h:34
34 }
(gdb)
class_table_internal_table_get_cell (table=0xa331e009540, key=0x7f7ffffc0090)
at /home/ports/pobj/amd64/gnustep-libobjc2-1.8.1/libobjc2-1.8.1/hash_table.h:347
347 uint32_t jump = cell->secondMaps;
(gdb) list
342 {
343 if (MAP_TABLE_COMPARE_FUNCTION(key, cell->value))
344 {
345 return cell;
346 }
347 uint32_t jump = cell->secondMaps;
348 // Look at each offset defined by the jump table to
find the displaced location.
349 for (int hop = __builtin_ffs(jump) ; hop > 0 ; hop =
__builtin_ffs(jump))
350 {
351 PREFIX(_table_cell) hopCell =
PREFIX(_table_lookup)(table, hash+hop);
(gdb) print jump
$27 = 2207597367
(gdb) s
349 for (int hop = __builtin_ffs(jump) ; hop > 0 ; hop =
__builtin_ffs(jump))
(gdb)
359 }
(gdb) print hop
No symbol "hop" in current context.
(gdb) n
361 if (table->old)
(gdb) list
356 // Clear the most significant bit and try again.
357 jump &= ~(1 << (hop-1));
358 }
359 }
360 #ifndef MAP_TABLE_STATIC_SIZE
361 if (table->old)
362 {
363 return PREFIX(_table_get_cell)(table->old, key);
364 }
365 #endif
(gdb) print table->old
$28 = (struct class_table_internal_table_struct *) 0x0
(gdb) n
366 return NULL;
(gdb)
367 }
(gdb) list
362 {
363 return PREFIX(_table_get_cell)(table->old, key);
364 }
365 #endif
366 return NULL;
367 }
368
369 __attribute__((unused))
370 static void PREFIX(_table_move_second)(PREFIX(_table) *table,
371 PREFIX(_table_cell) emptyCell)
(gdb) n
class_table_internal_table_get (table=0xa331e009540, key=0x7f7ffffc0090) at
/home/ports/pobj/amd64/gnustep-libobjc2-1.8.1/libobjc2-1.8.1/hash_table.h:419
419 if (NULL == cell)
(gdb) print cell
$29 = (class_table_internal_table_cell) 0x0
(gdb) n
424 return MAP_TABLE_VALUE_PLACEHOLDER;
(gdb) list
419 if (NULL == cell)
420 {
421 #ifdef MAP_TABLE_ACCESS_BY_REFERENCE
422 return NULL;
423 #else
424 return MAP_TABLE_VALUE_PLACEHOLDER;
425 #endif
426 }
427 #ifdef MAP_TABLE_ACCESS_BY_REFERENCE
428 return &cell->value;
(gdb) print MAP_TABLE_VALUE_PLACEHOLDER
No symbol "MAP_TABLE_VALUE_PLACEHOLDER" in current context.
(gdb) n
432 }
(gdb)
class_table_get_safe (class_name=0x7f7ffffc0090 "GSBackend") at
/home/ports/pobj/amd64/gnustep-libobjc2-1.8.1/libobjc2-1.8.1/class_table.c:133
133 }
(gdb) list
128
129 PRIVATE Class class_table_get_safe(const char *class_name)
130 {
131 if (NULL == class_name) { return Nil; }
132 return class_table_internal_table_get(class_table, class_name);
133 }
134
135 PRIVATE Class class_table_next(void **e)
136 {
137 return class_table_internal_next(class_table,
(gdb) s
NSClassFromString (aClassName=0xa32a1719fe0 <.objc_str.393>) at
NSObjCRuntime.m:117
117 }
(gdb)
119 }
(gdb)
initialize_gnustep_backend () at NSApplication.m:322
322 NSCAssert1 (backend != Nil,
- loading bundles stopped working,
Sebastian Reitenbach <=
- Re: loading bundles stopped working, David Chisnall, 2018/11/25
- Re: loading bundles stopped working, Sebastian Reitenbach, 2018/11/26
- Re: loading bundles stopped working, David Chisnall, 2018/11/26
- Re: loading bundles stopped working, Sebastian Reitenbach, 2018/11/26
- Re: loading bundles stopped working, David Chisnall, 2018/11/26
- Re: loading bundles stopped working, Sebastian Reitenbach, 2018/11/26
- Re: loading bundles stopped working, David Chisnall, 2018/11/27
- Re: loading bundles stopped working, Sebastian Reitenbach, 2018/11/28
- Re: loading bundles stopped working, David Chisnall, 2018/11/28
- Re: loading bundles stopped working, Sebastian Reitenbach, 2018/11/28