Originally posted by: FlorianPommerening
I'll try static builds next week. For now, here is the output of `disassemble` and `info registers`:
Program received signal SIGSEGV, Segmentation fault.
0x08773266 in ucnv_createConverter_44_cplex ()
(gdb) disassemble
Dump of assembler code for function ucnv_createConverter_44_cplex:
0x08773090 <+0>: push %edi
0x08773091 <+1>: push %esi
0x08773092 <+2>: push %ebp
0x08773093 <+3>: push %ebx
0x08773094 <+4>: sub $0x118,%esp
0x0877309a <+10>: mov 0x12c(%esp),%eax
0x087730a1 <+17>: mov %eax,0x114(%esp)
0x087730a8 <+24>: call 0x87730ad <ucnv_createConverter_44_cplex+29>
0x087730ad <+29>: pop %edi
0x087730ae <+30>: lea 0x76ef53(%edi),%edi
0x087730b4 <+36>: mov -0x4d3b98(%edi),%esi
0x087730ba <+42>: mov -0x4d3b94(%edi),%ebp
0x087730c0 <+48>: mov -0x4d3b90(%edi),%ebx
0x087730c6 <+54>: mov -0x4d3b8c(%edi),%ecx
0x087730cc <+60>: mov -0x4d3b88(%edi),%edx
0x087730d2 <+66>: mov -0x4d3b84(%edi),%eax
0x087730d8 <+72>: mov %edi,0x110(%esp)
0x087730df <+79>: mov -0x4d3b80(%edi),%edi
0x087730e5 <+85>: mov %edi,0x10(%esp)
0x087730e9 <+89>: mov 0x134(%esp),%edi
0x087730f0 <+96>: cmpl $0x0,(%edi)
0x087730f3 <+99>: mov 0x10(%esp),%edi
0x087730f7 <+103>: jle 0x8773106 <ucnv_createConverter_44_cplex+118>
0x087730f9 <+105>: xor %eax,%eax
0x087730fb <+107>: add $0x118,%esp
0x08773101 <+113>: pop %ebx
0x08773102 <+114>: pop %ebp
0x08773103 <+115>: pop %esi
0x08773104 <+116>: pop %edi
0x08773105 <+117>: ret
0x08773106 <+118>: mov %edi,0x108(%esp)
0x0877310d <+125>: mov %eax,0x104(%esp)
0x08773114 <+132>: mov 0x130(%esp),%eax
0x0877311b <+139>: mov %edx,0x100(%esp)
0x08773122 <+146>: mov %ecx,0xfc(%esp)
0x08773129 <+153>: mov %ebx,0xf8(%esp)
0x08773130 <+160>: mov 0x134(%esp),%ebx
0x08773137 <+167>: mov %ebp,0xf4(%esp)
0x0877313e <+174>: mov %esi,0xf0(%esp)
0x08773145 <+181>: mov %ebx,0xc(%esp)
0x08773149 <+185>: lea 0x10(%esp),%edx
0x0877314d <+189>: lea 0xf0(%esp),%ecx
0x08773154 <+196>: call 0x8774b5c <ucnv_loadSharedData_44_cplex.>
0x08773159 <+201>: mov %eax,%ebp
0x0877315b <+203>: mov 0x134(%esp),%eax
0x08773162 <+210>: mov (%eax),%edx
0x08773164 <+212>: test %edx,%edx
0x08773166 <+214>: jle 0x87731ed <ucnv_createConverter_44_cplex+349>
0x0877316c <+220>: test %ebp,%ebp
0x0877316e <+222>: je 0x877332d <ucnv_createConverter_44_cplex+669>
0x08773174 <+228>: cmpl $0xffffffff,0x4(%ebp)
0x08773178 <+232>: je 0x877332d <ucnv_createConverter_44_cplex+669>
0x0877317e <+238>: mov 0x110(%esp),%ebx
0x08773185 <+245>: lea 0x26268(%ebx),%esi
0x0877318b <+251>: push %esi
0x0877318c <+252>: call 0x879aeb0 <umtx_lock_44_cplex>
0x08773191 <+257>: pop %ecx
0x08773192 <+258>: mov 0x4(%ebp),%eax
0x08773195 <+261>: test %eax,%eax
0x08773197 <+263>: jbe 0x877319f <ucnv_createConverter_44_cplex+271>
0x08773199 <+265>: dec %eax
0x0877319a <+266>: mov %eax,0x4(%ebp)
0x0877319d <+269>: jne 0x87731d8 <ucnv_createConverter_44_cplex+328>
0x0877319f <+271>: movsbl 0x14(%ebp),%eax
0x087731a3 <+275>: test %eax,%eax
0x087731a5 <+277>: jne 0x87731d8 <ucnv_createConverter_44_cplex+328>
0x087731a7 <+279>: mov 0x18(%ebp),%eax
0x087731aa <+282>: mov 0x8(%eax),%eax
0x087731ad <+285>: test %eax,%eax
0x087731af <+287>: je 0x87731b5 <ucnv_createConverter_44_cplex+293>
0x087731b1 <+289>: push %ebp
0x087731b2 <+290>: call *%eax
0x087731b4 <+292>: pop %ecx
0x087731b5 <+293>: mov 0x8(%ebp),%eax
0x087731b8 <+296>: test %eax,%eax
0x087731ba <+298>: je 0x87731c3 <ucnv_createConverter_44_cplex+307>
0x087731bc <+300>: push %eax
0x087731bd <+301>: call 0x87964d0 <udata_close_44_cplex>
0x087731c2 <+306>: pop %ecx
0x087731c3 <+307>: mov 0xc(%ebp),%eax
0x087731c6 <+310>: test %eax,%eax
0x087731c8 <+312>: je 0x87731d1 <ucnv_createConverter_44_cplex+321>
0x087731ca <+314>: push %eax
0x087731cb <+315>: call 0x886b540 <uprv_free_44_cplex>
0x087731d0 <+320>: pop %ecx
0x087731d1 <+321>: push %ebp
0x087731d2 <+322>: call 0x886b540 <uprv_free_44_cplex>
0x087731d7 <+327>: pop %ecx
0x087731d8 <+328>: push %esi
0x087731d9 <+329>: call 0x879af10 <umtx_unlock_44_cplex>
0x087731de <+334>: pop %ecx
0x087731df <+335>: mov 0x134(%esp),%eax
0x087731e6 <+342>: mov (%eax),%edx
0x087731e8 <+344>: jmp 0x877332d <ucnv_createConverter_44_cplex+669>
0x087731ed <+349>: cmpl $0x0,0x114(%esp)
0x087731f5 <+357>: je 0x8773347 <ucnv_createConverter_44_cplex+695>
0x087731fb <+363>: movl $0x1,0x10c(%esp)
0x08773206 <+374>: push $0x104
0x0877320b <+379>: push $0x0
0x0877320d <+381>: pushl 0x11c(%esp)
0x08773214 <+388>: mov 0x11c(%esp),%ebx
0x0877321b <+395>: call 0x804adb0 <memset@plt>
0x08773220 <+400>: add $0xc,%esp
0x08773223 <+403>: mov 0x10c(%esp),%eax
0x0877322a <+410>: mov 0x114(%esp),%ecx
0x08773231 <+417>: mov %al,0x21(%ecx)
0x08773234 <+420>: mov %ebp,0x18(%ecx)
0x08773237 <+423>: mov 0xfc(%esp),%edx
0x0877323e <+430>: mov %edx,0x1c(%ecx)
0x08773241 <+433>: movsbl 0xf8(%esp),%ebx
0x08773249 <+441>: test %ebx,%ebx
0x0877324b <+443>: jne 0x87732c3 <ucnv_createConverter_44_cplex+563>
0x0877324d <+445>: mov %ecx,%esi
0x0877324f <+447>: mov 0x110(%esp),%ebx
0x08773256 <+454>: movl $0xffffffff,0xb4(%esi)
0x08773260 <+464>: lea 0x8ee1f44,%edi
=> 0x08773266 <+470>: mov (%ebx,%edi,1),%edx
0x08773269 <+473>: mov %edx,0x4(%esi)
0x0877326c <+476>: lea 0x8ee1f08,%ecx
0x08773272 <+482>: mov (%ebx,%ecx,1),%eax
0x08773275 <+485>: mov %eax,(%esi)
0x08773277 <+487>: mov 0x1c(%ebp),%edi
0x0877327a <+490>: mov %edi,0x2c(%esi)
0x0877327d <+493>: mov 0x10(%ebp),%edx
0x08773280 <+496>: movzbl 0x47(%edx),%ecx
0x08773284 <+500>: mov %cl,0x3c(%esi)
0x08773287 <+503>: mov 0x10(%ebp),%eax
0x0877328a <+506>: movzbl 0x50(%eax),%edx
0x0877328e <+510>: mov %dl,0x42(%esi)
0x08773291 <+513>: mov 0x10(%ebp),%ecx
0x08773294 <+516>: movsbl 0x4c(%ecx),%eax
0x08773298 <+520>: push %eax
0x08773299 <+521>: mov %al,0x3d(%esi)
0x0877329c <+524>: lea 0x6c(%esi),%edi
0x0877329f <+527>: mov %edi,0x14(%esi)
0x087732a2 <+530>: mov 0x10(%ebp),%esi
0x087732a5 <+533>: add $0x48,%esi
0x087732a8 <+536>: push %esi
0x087732a9 <+537>: push %edi
0x087732aa <+538>: call 0x804b000 <memcpy@plt>
0x087732af <+543>: add $0xc,%esp
0x087732b2 <+546>: mov 0x114(%esp),%eax
0x087732b9 <+553>: movl $0x1,0x100(%eax)
0x087732c3 <+563>: mov 0x18(%ebp),%eax
0x087732c6 <+566>: mov 0xc(%eax),%edx
0x087732c9 <+569>: test %edx,%edx
0x087732cb <+571>: je 0x87731df <ucnv_createConverter_44_cplex+335>
0x087732d1 <+577>: pushl 0x134(%esp)
0x087732d8 <+584>: lea 0xf4(%esp),%eax
0x087732df <+591>: push %eax
0x087732e0 <+592>: pushl 0x11c(%esp)
0x087732e7 <+599>: call *%edx
0x087732e9 <+601>: add $0xc,%esp
0x087732ec <+604>: mov 0x134(%esp),%eax
0x087732f3 <+611>: mov (%eax),%edx
0x087732f5 <+613>: test %edx,%edx
0x087732f7 <+615>: jle 0x877332d <ucnv_createConverter_44_cplex+669>
0x087732f9 <+617>: movsbl 0xf8(%esp),%eax
0x08773301 <+625>: test %eax,%eax
0x08773303 <+627>: jne 0x877332d <ucnv_createConverter_44_cplex+669>
0x08773305 <+629>: pushl 0x114(%esp)
0x0877330c <+636>: mov 0x114(%esp),%ebx
0x08773313 <+643>: call 0x8771f90 <ucnv_close_44_cplex>
0x08773318 <+648>: pop %ecx
0x08773319 <+649>: mov 0x134(%esp),%eax
0x08773320 <+656>: mov (%eax),%edx
0x08773322 <+658>: movl $0x0,0x114(%esp)
0x0877332d <+669>: test %edx,%edx
0x0877332f <+671>: jg 0x87730f9 <ucnv_createConverter_44_cplex+105>
0x08773335 <+677>: mov 0x114(%esp),%eax
0x0877333c <+684>: add $0x118,%esp
0x08773342 <+690>: pop %ebx
0x08773343 <+691>: pop %ebp
0x08773344 <+692>: pop %esi
0x08773345 <+693>: pop %edi
0x08773346 <+694>: ret
0x08773347 <+695>: push $0x104
0x0877334c <+700>: mov 0x114(%esp),%ebx
0x08773353 <+707>: call 0x886b4f0 <uprv_malloc_44_cplex>
0x08773358 <+712>: pop %ecx
0x08773359 <+713>: mov %eax,0x114(%esp)
0x08773360 <+720>: cmpl $0x0,0x114(%esp)
0x08773368 <+728>: je 0x877337a <ucnv_createConverter_44_cplex+746>
0x0877336a <+730>: movl $0x0,0x10c(%esp)
0x08773375 <+741>: jmp 0x8773206 <ucnv_createConverter_44_cplex+374>
0x0877337a <+746>: mov 0x134(%esp),%eax
0x08773381 <+753>: movl $0x7,(%eax)
0x08773387 <+759>: mov $0x7,%edx
0x0877338c <+764>: test %ebp,%ebp
0x0877338e <+766>: je 0x87733f9 <ucnv_createConverter_44_cplex+873>
0x08773390 <+768>: cmpl $0xffffffff,0x4(%ebp)
0x08773394 <+772>: je 0x87733f9 <ucnv_createConverter_44_cplex+873>
0x08773396 <+774>: lea 0x26268(%ebx),%esi
0x0877339c <+780>: push %esi
0x0877339d <+781>: call 0x879aeb0 <umtx_lock_44_cplex>
0x087733a2 <+786>: pop %ecx
0x087733a3 <+787>: mov 0x4(%ebp),%eax
0x087733a6 <+790>: test %eax,%eax
0x087733a8 <+792>: jbe 0x87733b0 <ucnv_createConverter_44_cplex+800>
0x087733aa <+794>: dec %eax
0x087733ab <+795>: mov %eax,0x4(%ebp)
0x087733ae <+798>: jne 0x87733e9 <ucnv_createConverter_44_cplex+857>
0x087733b0 <+800>: movsbl 0x14(%ebp),%eax
0x087733b4 <+804>: test %eax,%eax
0x087733b6 <+806>: jne 0x87733e9 <ucnv_createConverter_44_cplex+857>
0x087733b8 <+808>: mov 0x18(%ebp),%eax
0x087733bb <+811>: mov 0x8(%eax),%eax
0x087733be <+814>: test %eax,%eax
0x087733c0 <+816>: je 0x87733c6 <ucnv_createConverter_44_cplex+822>
0x087733c2 <+818>: push %ebp
0x087733c3 <+819>: call *%eax
0x087733c5 <+821>: pop %ecx
0x087733c6 <+822>: mov 0x8(%ebp),%eax
0x087733c9 <+825>: test %eax,%eax
0x087733cb <+827>: je 0x87733d4 <ucnv_createConverter_44_cplex+836>
0x087733cd <+829>: push %eax
0x087733ce <+830>: call 0x87964d0 <udata_close_44_cplex>
0x087733d3 <+835>: pop %ecx
0x087733d4 <+836>: mov 0xc(%ebp),%eax
0x087733d7 <+839>: test %eax,%eax
0x087733d9 <+841>: je 0x87733e2 <ucnv_createConverter_44_cplex+850>
0x087733db <+843>: push %eax
0x087733dc <+844>: call 0x886b540 <uprv_free_44_cplex>
0x087733e1 <+849>: pop %ecx
0x087733e2 <+850>: push %ebp
0x087733e3 <+851>: call 0x886b540 <uprv_free_44_cplex>
0x087733e8 <+856>: pop %ecx
0x087733e9 <+857>: push %esi
0x087733ea <+858>: call 0x879af10 <umtx_unlock_44_cplex>
0x087733ef <+863>: pop %ecx
0x087733f0 <+864>: mov 0x134(%esp),%eax
0x087733f7 <+871>: mov (%eax),%edx
0x087733f9 <+873>: movl $0x0,0x114(%esp)
0x08773404 <+884>: jmp 0x877332d <ucnv_createConverter_44_cplex+669>
0x08773409 <+889>: lea 0x0(%esi,%eiz,1),%esi
End of assembler dump.
And the output of `info registers`:
(gdb) info registers
eax 0x0 0
ecx 0x8f10850 150014032
edx 0x0 0
ebx 0x8ee2000 149823488
esp 0xffffc740 0xffffc740
ebp 0x8ef55a0 0x8ef55a0 <_Latin1Data_44_cplex>
esi 0x8f10850 150014032
edi 0x8ee1f44 149823300
eip 0x8773266 0x8773266 <ucnv_createConverter_44_cplex+470>
eflags 0x10246 [ PF ZF IF RF ]
cs 0x23 35
ss 0x2b 43
ds 0x2b 43
es 0x2b 43
fs 0x0 0
gs 0x63 99
#CPLEXOptimizers#DecisionOptimization