Login
User Name:

Password:



Register
Forgot your password?
Vote for Us!
auth_update crash
Dec 23, 2017, 10:15 pm
By Remcon
check_tumble
Dec 18, 2017, 7:21 pm
By Remcon
parse description bug
Dec 15, 2017, 10:08 pm
By Remcon
Couple bugs
Dec 12, 2017, 5:42 pm
By Remcon
Bug in disarm( )
Nov 12, 2017, 6:54 pm
By GatewaySysop
LoP 1.46
Author: Remcon
Submitted by: Remcon
LOP 1.45
Author: Remcon
Submitted by: Remcon
LOP Heroes Edition
Author: Vladaar
Submitted by: Vladaar
Heroes sound extras
Author: Vladaar
Submitted by: Vladaar
6Dragons 4.3
Author: Vladaar
Submitted by: Vladaar
Users Online
CommonCrawl, Google, Bing, Yandex

Members: 0
Guests: 6
Stats
Files
Topics
Posts
Members
Newest Member
478
3,708
19,242
612
Jacki72H
Today's Birthdays
There are no member birthdays today.
Related Links
» SmaugMuds.org » General » Coding » Cores for dummies
Forum Rules | Mark all | Recent Posts

Cores for dummies
< Newer Topic :: Older Topic > How to read a core

Pages:<< prev 1 next >>
Post is unread #1 Jul 16, 2002, 4:08 pm   Last edited Nov 24, 2007, 4:57 pm by Samson
Go to the top of the page
Go to the bottom of the page

Guest - (Unregistered)

Hi,

This is a crash that I am having, but rather then just ask people for help on solving it, I would like to ask if anyone is kind enough to reply how to properly read a core. I get some useful info from them, but a lot them look like gibberish. If someone has a good handle on core reading and could enlighten me I would appreciate it.
Tue Jul 16 15:511 PDT 2002
Core was generated by `../src/smaug 5050'.
Program terminated with signal 11, Segmentation fault.
#0 0x08051930 in i3save_char (ch=0x70000, fp=0x85ae6d0) at i3.c:4517
4517 fprintf( fp, "i3ignore %s~\n", temp->name );
#0 0x08051930 in i3save_char (ch=0x70000, fp=0x85ae6d0) at i3.c:4517
#1 0x08128d09 in fwrite_char (ch=0x85adeb8, fp=0x85ae6d0) at save.c:534
#2 0x08127c80 in save_char_obj (ch=0x85adeb8) at save.c:237
#3 0x0805d35e in do_save (ch=0xbfffbc20, argument=0xbfffd904 "";)
at act_comm.c:2256
#4 0x080ec463 in interpret (ch=0x85adeb8, argument=0xbfffd904 "";)
at interp.c:732
#5 0x080b30cb in game_loop () at comm.c:672
#6 0x080b295a in main (argc=2, argv=0x0) at comm.c:328
#7 0x40067647 in __libc_start_main (main=0x80b24a8 , argc=2,
ubp_av=0xbfffde34, init=0x80492a4 , fini=0x81557c0 ,
rtld_fini=0x4000dcd4 , stack_end=0xbfffde2c)
at ../sysdeps/generic/libc-start.c:129
#0 0x08051930 in i3save_char (ch=0x70000, fp=0x85ae6d0) at i3.c:4517
4517 fprintf( fp, "i3ignore %s~\n", temp->name );
4512
4513 fprintf( fp, "i3invis %d\n", I3INVIS(ch) );
4514 if( I3LISTEN(ch) && str_cmp( I3LISTEN(ch), "" ) )
4515 fprintf( fp, "i3listen %s~\n", I3LISTEN(ch) );
4516 for( temp = FIRST_I3IGNORE(ch); temp; temp = temp->next )
4517 fprintf( fp, "i3ignore %s~\n", temp->name );
4518 return;
4519 }
4520
4521 void I3_readucache( UCACHE_DATA *user, FILE *fp )
temp = (struct I3_ignore *) 0x70000
#1 0x08128d09 in fwrite_char (ch=0x85adeb8, fp=0x85ae6d0) at save.c:534
534 i3save_char( ch, fp );
529 ch->pcdata->killed[sn].vnum,
530 ch->pcdata->killed[sn].count );
531 }
532
533 #ifdef I3
534 i3save_char( ch, fp );
535 #endif
536
537 fprintf( fp, "End\n\n" );
538 return;
paf = (struct affect_data *) 0x70000
sn = 458752
track = 140175056
i = 458752
pos = -8024
skill = (struct skill_type *) 0x85ae6d0
#2 0x08127c80 in save_char_obj (ch=0x85adeb8) at save.c:237
237 fwrite_char( ch, fp );
232 else
233 {
234 bool ferr;
235
236 fchmod(fileno(fp), S_IRUSR|S_IWUSR | S_IRGRP|S_IWGRP | S_IROTH|S_IWOTH);
237 fwrite_char( ch, fp );
238 if ( ch->morph )
239 fwrite_morph_data ( ch, fp );
240 if ( ch->first_carrying )
241 fwrite_obj( ch, ch->last_carrying, fp, 0, OS_CARRY, ch->pcdata->hotboot );
ferr = 32 ' '
strsave = "../player/v/Vladaar�00¸�Z230ÿ¿(213�13200ÿ¿¸�Z N�00�00he gnomeVH
@�37h$
strback = "../gods/Vladaar�00�01�00�00�00ÿ¿¨ÿ¿.�34@p¼ÿ¿200ÿ¿X¼ÿ¿1�06�34@Vladp¼ÿ¿�$
fp = (struct _IO_FILE *) 0x85ae6d0
#3 0x0805d35e in do_save (ch=0xbfffbc20, argument=0xbfffd904 "";)
at act_comm.c:2256
2256 save_char_obj( ch );
2251 send_to_char_color( "&BYou must be at least second level to save.\r\n", ch );
2252 return;
2253 }
2254 WAIT_STATE( ch, 2 ); /* For big muds with save-happy players, like RoD */
2255 update_aris(ch); /* update char affects and RIS */
2256 save_char_obj( ch );
2257 saving_char = NULL;
258 send_to_char( "Saved...\r\n", ch );
2259 return;
2260 }
No locals.
#4 0x080ec463 in interpret (ch=0x85adeb8, argument=0xbfffd904 "";)
at interp.c:732
732 (*cmd->do_fun) ( ch, argument );
727 * Dispatch the command.
728 */
729 ch->prev_cmd = ch->last_cmd; /* haus, for automapping */
730 ch->last_cmd = cmd->do_fun;
731 start_timer(&time_used);
732 (*cmd->do_fun) ( ch, argument );
733 end_timer(&time_used);
734 /*
735 * Update the record of how many times this command has been used (haus)
736 */
command = "save�00ize", '�00' , "Call to Arms", '�00' , "$
logline = "save�00¢ZM�00�00�00in grey�00VH
@�22206�31", '�00'
       
Post is unread #2 Jul 17, 2002, 12:04 am   Last edited Nov 24, 2007, 4:58 pm by Samson
Go to the top of the page
Go to the bottom of the page

Samson
Black Hand
GroupAdministrators
Posts3,639
JoinedJan 1, 2002


Tue Jul 16 15:511 PDT 2002
Core was generated by `../src/smaug 5050'.
Program terminated with signal 11, Segmentation fault.
#0 0x08051930 in i3save_char (ch=0x70000, fp=0x85ae6d0) at i3.c:4517
4517 fprintf( fp, "i3ignore %s~\n", temp->name );
#0 0x08051930 in i3save_char (ch=0x70000, fp=0x85ae6d0) at i3.c:4517
#1 0x08128d09 in fwrite_char (ch=0x85adeb8, fp=0x85ae6d0) at save.c:534
#2 0x08127c80 in save_char_obj (ch=0x85adeb8) at save.c:237
#3 0x0805d35e in do_save (ch=0xbfffbc20, argument=0xbfffd904 "";)
at act_comm.c:2256
#4 0x080ec463 in interpret (ch=0x85adeb8, argument=0xbfffd904 "";)
at interp.c:732
#5 0x080b30cb in game_loop () at comm.c:672
#6 0x080b295a in main (argc=2, argv=0x0) at comm.c:328
#7 0x40067647 in __libc_start_main (main=0x80b24a8 , argc=2,
ubp_av=0xbfffde34, init=0x80492a4 , fini=0x81557c0 ,
rtld_fini=0x4000dcd4 , stack_end=0xbfffde2c)
at ../sysdeps/generic/libc-start.c:129


Notice what happens to ch when going from frame 1 up to frame 0. You have enough here to determine that the pointer's value was corrupted somehow. 0x70000 does not match 0x85adeb8, which is resulting in invalid memory access. Hence, a crash. Of course in reading this I can't tell you WHY it's crashing, just that it is. To find out why, you need to figure out how it corrupted the pointer value.

Although even I now forget, it appears as though this is from an older implementation of the I3 code. Might want to look into updating it and see if that solves the problem
       
Post is unread #3 Jul 17, 2002, 7:16 am
Go to the top of the page
Go to the bottom of the page

Guest - (Unregistered)

Samson,

thanks for the insight. Commenting out I3 from my makefile also fixed my color problem.

Vladaar
       
Post is unread #4 Jul 17, 2002, 2:48 pm
Go to the top of the page
Go to the bottom of the page

Samson
Black Hand
GroupAdministrators
Posts3,639
JoinedJan 1, 2002

It did? That makes absolutely no sense. I3 doesn't have anything at all to do with the internal color system of the mud. It should not have meant anything to it at all.
       
Post is unread #5 Jul 20, 2002, 6:16 pm
Go to the top of the page
Go to the bottom of the page

Guest - (Unregistered)

More on core for dummies.

My problem has changed. Commenting out i3 made my colors work properly again. However, now my fshow, destroy, and foldarea commands crash the mud. They in turn give me a arithmatic core. If anyone has suggestions regarding what this core means I would appreciate the help.

Core was generated by `smaug 5050 hotboot 6.
Program terminated with signal 8, Arithmetic exception.
#0 0x080e035f in rd_parse (ch=0x8559cc8, level=115, exp=0xbfffcb23 "l";)
at magic.c:809
809 case '/': total /= rd_parse(ch, level, sexp[1]); break;
#0 0x080e035f in rd_parse (ch=0x8559cc8, level=115, exp=0xbfffcb23 "l";)
at magic.c:809
#1 0x080e0314 in rd_parse (ch=0x8559cc8, level=115, exp=0xbfffcb20 "";)
at magic.c:807
#2 0x080e02c1 in rd_parse (ch=0x8559cc8, level=115, exp=0xbfffcb20 "";)
at magic.c:803
#3 0x080e04f7 in dice_parse (ch=0x73, level=115,
exp=0x73 ) at magic.c:836
#4 0x080eac95 in spell_affectchar (sn=272, level=115, ch=0x8559cc8,
vo=0x8559cc8) at magic.c:5666
#5 0x080eb354 in spell_affect (sn=272, level=115, ch=0x8559cc8, vo=0x8559cc8)
at magic.c:5846
#6 0x080ec10c in spell_smaug (sn=272, level=115, ch=0x8559cc8, vo=0x8559cc8)
at magic.c:6266
#7 0x080e208e in do_cast (ch=0x8559cc8,
argument=0x73 ) at magic.c:1715
#8 0x080ddc39 in interpret (ch=0x8559cc8,
argument=0xbfffed42 "'unholy protection'";) at interp.c:732
#9 0x080a46f3 in game_loop () at comm.c:672
       
Post is unread #6 Jul 23, 2002, 2:34 am
Go to the top of the page
Go to the bottom of the page

Guest - (Unregistered)

More on core for dummies.

Core was generated by `smaug 5050 hotboot 6.

Gotta love these.... where on earth did you get that string buffer from when you restarted the process image?

Anywho..

Program terminated with signal 8, Arithmetic exception.
#0 0x080e035f in rd_parse (ch=0x8559cc8, level=115, exp=0xbfffcb23 "l";)
at magic.c:809
809 case '/': total /= rd_parse(ch, level, sexp[1]); break;

I'm taking a very wild guess here, but it does check that you aren't doing the age old fun method of dividing by zero here? That would cause an exception, there is potentially other maths stuff that will too.

Any chance you can print out what sexp[1] is? (and is it supposed to only take a single character? sexp[1] is a char, not a char* I take it, although if you wanted the rest of the string you'd use sexp+1 I believe.. but then this cold I have could be screwing up my mind and I be completely wrong on that score..)
       
Pages:<< prev 1 next >>