On Sat, Apr 02, 2005 at 06:39:11PM +0200, Martin Samuelsson wrote:
> Next time I'm networked I'll try to remember fetching all requiered
> libraries for building packages myself, but I'm afraid that's only if
> I remember it.

Vale... Here it comes the useful stack backtrace, below my signature.

It seems "err = ti68k_init();" at gui/main.c:195 returns -1 for some reason and
that the error handling seg.faults when trying to call cable->close() because
cable is NULL.

Since I don't know the code I can only guess, but is this that the failure is
to early and the error handlers can't imagine anything going wrong prior to
cables getting a value? I'm attaching a patch that removed the SIGSEGV and
instead makes tiemu show a message box saying "tiemu   : err: Msg: Transfer
aborted Cause: the user !". Which is better, but not really clear to me.

Tracing down why ti68k_init() returns error ends up at hw_init() in
core/ti_hw/hw.c which gets confused since img_infos.calc_type=='\0',
apperantly. Which is indeed what the Image information states in it's
output. "Calculator  : nonCalculator  : none".

So my guess is that the conversion of the OS download failed setting the
calculator type silently. 

I removed the ROM image and tried starting tiemu against the OS
download, and guess what?! Now it works.

My guess is that you should probably apply the patch removing the sig11
and don't care about that the recent version can't work with old rom
converts. If you're really into working with this issue, maybe you
should think about a clearer error message than the above for a corrupt
ROM image.

For what it's worth skin changing doesn't work for me and having a us
keyboard mapping is very annoying, but those are other issues that I
might or might not file bugs about...

Thanks!  Now I can forget my calculator at home without missing it too
much.
--
/Martin

leka% gdb tiemu
GNU gdb 6.3-debian
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-linux"...Using host libthread_db library 
"/lib/tls/libthread_db.so.1".

(gdb) r
Starting program: /usr/bin/tiemu
[Thread debugging using libthread_db enabled]
[New Thread -1218060160 (LWP 23177)]
TiEmu II - Version 1.80-050326
  (C) Romain Lievin & Thomas Corvazier  2000-2001
  (C) Romain Lievin 2001-2003
  (C) Julien Blache 2003
  (C) Romain Lievin 2004-2005
  (C) Romain Lievin & Kevin Kofler 2005
THIS PROGRAM COMES WITH ABSOLUTELY NO WARRANTY
PLEASE READ THE DOCUMENTATION FOR DETAILS
Configuration file not found, use default values. You can create one by the 
'File|Save config' command menu.
Scanning images/upgrades... Done.
Image informations:
  Calculator  : none
  Firmware    : v2.09
  Memory type : FLASH
  Memory size : 2MB (2097152 bytes)
  ROM base    : 40
  Hardware    : 47
  Has boot    : yes
ticables library version 3.8.9
setlocale: <en_US.UTF-8>
bindtextdomain: </usr/share/locale>
textdomain: <libticables>
built for __LINUX__ target.
checking resources:
  IO_API: found at compile time (HAVE_TERMIOS_H)
  IO_ASM: found at compile time (HAVE_ASM_IO_H).
  IO_TIPAR: found at compile time (HAVE_LINUX_TICABLE_H)
  IO_TISER: found at compile time (HAVE_LINUX_TICABLE_H)
  IO_TIUSB: found at compile time (HAVE_LINUX_TICABLE_H)
  IO_LIBUSB: found at compile time (HAVE_LIBUSB)
quick search for parallel/serial ports:
  serial port found at 0x2f8
search for all ports:
  /dev/ttyS0 at 0x3f8
tifiles library version 0.6.3
setlocale: <en_US.UTF-8>
bindtextdomain: </usr/share/locale>
textdomain: <libtifiles>
ticalcs library version 4.5.8
setlocale: <en_US.UTF-8>
bindtextdomain: </usr/share/locale>
textdomain: <libticalcs>

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1218060160 (LWP 23177)]
0xb7fb6b33 in ticalc_get_error (err_num=-1, error_msg=0xbffff430 "Msg: Transfer 
aborted\nCause: the user !") at error.c:186
186       TRYF(cable->close());
(gdb) bt full
#0  0xb7fb6b33 in ticalc_get_error (err_num=-1, error_msg=0xbffff430 "Msg: 
Transfer aborted\nCause: the user !") at error.c:186
        aaaa_ = 134445884
#1  0x0814dd23 in tiemu_error (err_code=-1, err_str=0x8037b3c <Address 
0x8037b3c out of bounds>) at misc/tie_error.c:61
        err = 0
        s = "Msg: Transfer aborted\nCause: the user !\000s a bug. Please report 
it.\n.\000\000\000\000\224ï\213ïïyïXï\037\b\001\000\000\000\224ï\213ïï\213ïïï\213ïï
 ï\037\bH\000\000\000 \226\227ï`\214\227ï \226\227ï\000ï&\b 
\226\227ï`\214\227ï 
\226\227\000\214ï\204ï\020ïïïL\032ïï\230\220\205ï\236;\a\b\230ï\237ï\030\222&\b\001Q\006\b
 
\000\000\000ïk\232ï\030\222&\b\230ï\237ïN\221\205ïï>\205ï,ï\204ïïï\237ï"...
#2  0x08150f97 in main (argc=1, argv=0xbffff6f4) at gui/main.c:197
        err = 0
(gdb)
diff -ur libticalcs4-4.5.8/src/error.c libticalcs4-4.5.8-nosegv/src/error.c
--- libticalcs4-4.5.8/src/error.c       2004-05-06 09:32:12.000000000 +0200
+++ libticalcs4-4.5.8-nosegv/src/error.c        2005-04-03 13:47:08.825790935 
+0200
@@ -183,7 +183,7 @@
     break;
   }
 
-  TRYF(cable->close());
+  if(cable) TRYF(cable->close());
   UNLOCK_TRANSFER();
 
   return 0;

Attachment: signature.asc
Description: Digital signature

Reply via email to