[squeak-dev] WebClient httpGet: 'http://freegeoip.net/json/' works on windows not linux

Tobias Pape Das.Linux at gmx.de
Mon Feb 26 21:46:01 UTC 2018


Hi Tim

> On 26.02.2018, at 21:13, tim Rowledge <tim at rowledge.org> wrote:
> 
> 
> 
>> On 26-02-2018, at 12:03 PM, tim Rowledge <tim at rowledge.org> wrote:
>> 
>> Which probably doesn't mean much to anyone so I guess I'll look up my notes on the joys of running gdb and try again. I hate gdb.

have you ever trie "tui enable" ?


> 
> It fails in loadLibrary() and looks like in dlsym.c @ line 58 it fails to find a file or directory.
> 

Yes,,,
> I have to dash, so hee is the gdb output so far - 
> Thread 1 "squeak" hit Breakpoint 1, sqCreateSSL ()
>    at /home/pi/DizietFS/Documents/Squeak/Rasbian-VM/vm/platforms/unix/plugins/SqueakSSL/sqUnixOpenSSL.c:275
> 275		sqInt handle = 0;
> (gdb) list
> 270	/* sqCreateSSL: Creates a new SSL instance.
> 271		Arguments: None.
> 272		Returns: SSL handle.
> 273	*/
> 274	sqInt sqCreateSSL(void) {
> 275		sqInt handle = 0;
> 276		sqSSL *ssl = NULL;
> 277	
> 278		if (!wasInitialized) {
> 279	 		if (!loadLibrary()) {
> (gdb) n
> 276		sqSSL *ssl = NULL;
> (gdb) 
> 278		if (!wasInitialized) {
> (gdb) s
> 279	 		if (!loadLibrary()) {
> (gdb) 
> loadLibrary ()
>    at /home/pi/DizietFS/Documents/Squeak/Rasbian-VM/vm/platforms/unix/plugins/SqueakSSL/openssl_overlay.h:430
> 430	  SQO_DECLARATIONS
> (gdb) list
> 425	    sqo_ ## name =(ret (*)(__VA_ARGS__)) _sqo_find(#name);
> 426	#  define SQO_DECL_NO(ret, name, ...) /**/
> 427	#endif  /* defined(SQSSL_OPENSSL_LINKED) */
> 428	
> 429	/* THIS LINE IS VITAL */
> 430	  SQO_DECLARATIONS
> 431	
> 432	
> 433	#undef SQO_DECL___
> 434	#undef SQO_DECL_NO
> (gdb) s
> _sqo_find (name=0x75e2da80 "ASN1_STRING_data")
>    at /home/pi/DizietFS/Documents/Squeak/Rasbian-VM/vm/platforms/unix/plugins/SqueakSSL/openssl_overlay.h:311
> 311	  void* sym = NULL;
> (gdb) s
> 312	  SQO_HAS_FOUND_SYM(sym, name, RTLD_DEFAULT);
> (gdb) 
> __dlsym (handle=0x0, name=0x75e2da80 "ASN1_STRING_data") at dlsym.c:58
> 58	dlsym.c: No such file or directory.

This is expected. It tries to find "ASN1_STRING_data" in the current loaded process images, but it is not yet there. But see below...

> (gdb) n
> 56	in dlsym.c
> (gdb) 
> 58	in dlsym.c
> (gdb) 
> 56	in dlsym.c
> (gdb) 
> 58	in dlsym.c
> (gdb) 
> 56	in dlsym.c
> (gdb) 
> 58	in dlsym.c
> (gdb) 
> 56	in dlsym.c
> (gdb) 
> 58	in dlsym.c
> (gdb) 
> 68	in dlsym.c
> (gdb) 
> 63	in dlsym.c
> (gdb) 
> 64	in dlsym.c
> (gdb) 
> 65	in dlsym.c
> (gdb) 
> 68	in dlsym.c
> (gdb) 
> 70	in dlsym.c
> (gdb) 
> 72	in dlsym.c
> (gdb) 
> 70	in dlsym.c
> (gdb) 
> 72	in dlsym.c
> (gdb) 
> 70	in dlsym.c
> (gdb) 
> 72	in dlsym.c
> (gdb) 
> 75	in dlsym.c
> (gdb) 
> _sqo_find (name=0x75e2da80 "ASN1_STRING_data")
>    at /home/pi/DizietFS/Documents/Squeak/Rasbian-VM/vm/platforms/unix/plugins/SqueakSSL/openssl_overlay.h:313
> 313	  SQO_FIND_SYM(sym, name, self, NULL);

.. it is also not found in the main executable but...

> (gdb) 
> 314	  SQO_FIND_SYM(sym, name, ssl, "libssl.so");
> (gdb) 
> Found symbol ASN1_STRING_data in dlhandle_ssl

it _is_ found in an libssl.

> 317	}
> (gdb) 
> Found symbol ASN1_STRING_length in RTLD_DEFAULT
> Found symbol BIO_free_all in RTLD_DEFAULT
> Found symbol BIO_new in RTLD_DEFAULT
> Found symbol BIO_s_mem in RTLD_DEFAULT
> Found symbol BIO_ctrl_pending in RTLD_DEFAULT
> Found symbol BIO_ctrl in RTLD_DEFAULT
> Found symbol BIO_write in RTLD_DEFAULT
> Found symbol BIO_read in RTLD_DEFAULT
> Found symbol ERR_print_errors_fp in RTLD_DEFAULT
> Found symbol SSL_CTX_free in RTLD_DEFAULT
> Found symbol SSL_CTX_set_cipher_list in RTLD_DEFAULT
> Found symbol SSL_CTX_set_default_verify_paths in RTLD_DEFAULT
> Found symbol SSL_CTX_ctrl in RTLD_DEFAULT
> Found symbol SSL_CTX_use_PrivateKey_file in RTLD_DEFAULT
> Found symbol SSL_CTX_use_certificate_file in RTLD_DEFAULT
> Found symbol SSL_accept in RTLD_DEFAULT
> Found symbol SSL_connect in RTLD_DEFAULT
> Found symbol SSL_free in RTLD_DEFAULT
> Found symbol SSL_ctrl in RTLD_DEFAULT
> Found symbol SSL_get_error in RTLD_DEFAULT
> Found symbol SSL_get_peer_certificate in RTLD_DEFAULT
> Found symbol SSL_get_verify_result in RTLD_DEFAULT

so are all these, too.

However, the next in line (openssl_overlay.h:274) is apparently _not_ found.

how strange.

is the openssl library list you gave some days ago still correct?

Best regards
	-tobias

> loadLibrary ()
>    at /home/pi/DizietFS/Documents/Squeak/Rasbian-VM/vm/platforms/unix/plugins/SqueakSSL/openssl_overlay.h:438
> 438	}
> (gdb) 
> sqCreateSSL ()
>    at /home/pi/DizietFS/Documents/Squeak/Rasbian-VM/vm/platforms/unix/plugins/SqueakSSL/sqUnixOpenSSL.c:280
> 280				return 0;
> (gdb) 
> 
> 
> tim
> --
> tim Rowledge; tim at rowledge.org; http://www.rowledge.org/tim
> Strange OpCodes: SEOB: Set Every Other Bit
> 
> 
> 



More information about the Squeak-dev mailing list