Bugs and complaints on current master

Collapse
X
 
  • Time
  • Show
Clear All
new posts

  • Nick
    replied
    Originally posted by Pete Mack
    Another crash from verbose mode object drop code:
    [New Thread 8384.0x26a0]

    Program received signal SIGSEGV, Segmentation fault.
    object_is_ignored (obj=0x31fa494) at obj-ignore.c:584
    584 if (obj->known->notice & OBJ_NOTICE_IGNORE)
    (gdb) where
    #0 object_is_ignored (obj=0x31fa494) at obj-ignore.c:584
    #1 0x00459b3a in drop_near (c=0x32514a4, dropped=dropped@entry=0xb0f05c,
    chance=chance@entry=0, y=57, x=139, verbose=verbose@entry=true)
    at obj-pile.c:957
    #2 0x0043c832 in monster_death (mon=mon@entry=0x7aafda8,

    It is (again) dereferencing **dropped when that is already deleted/merged.
    Hm. Looks like *dropped was probably OK but (*dropped)->known was probably already freed.

    Do you know what the monster was - a mimic maybe?

    Leave a comment:


  • Pete Mack
    replied
    Another crash from verbose mode object drop code:
    [New Thread 8384.0x26a0]

    Program received signal SIGSEGV, Segmentation fault.
    object_is_ignored (obj=0x31fa494) at obj-ignore.c:584
    584 if (obj->known->notice & OBJ_NOTICE_IGNORE)
    (gdb) where
    #0 object_is_ignored (obj=0x31fa494) at obj-ignore.c:584
    #1 0x00459b3a in drop_near (c=0x32514a4, dropped=dropped@entry=0xb0f05c,
    chance=chance@entry=0, y=57, x=139, verbose=verbose@entry=true)
    at obj-pile.c:957
    #2 0x0043c832 in monster_death (mon=mon@entry=0x7aafda8,

    It is (again) dereferencing **dropped when that is already deleted/merged.

    Leave a comment:


  • Nick
    replied
    Originally posted by StMicah
    I'm not sure what happened here....I was playing this character (yesterday) on one mac, moved the save file from the angband save file to my dropbox to play while I traveled, but opening the save file crashes angband.

    Any thoughts?
    Thanks, that was a considerable (if easily fixed) bug in saving and loading of traps, which would have occurred any time you saved and reloaded twice on the same level.

    Attached is a fixed savefile - it is not quite as you saw it last, every trap on the current level is a pit...

    I have pushed a build which fixes this problem, it should be up on the nightlies page before too long.
    Attached Files

    Leave a comment:


  • Pete Mack
    replied
    Getting crashes on loading saved game--fails when scanning loaded trap data, which appears hopelessly corrupt.

    Leave a comment:


  • StMicah
    replied
    I'm not sure what happened here....I was playing this character (yesterday) on one mac, moved the save file from the angband save file to my dropbox to play while I traveled, but opening the save file crashes angband.

    Any thoughts?
    Attached Files

    Leave a comment:


  • Nick
    replied
    Originally posted by Derakon
    Look, it's not Nowhere Town.
    I'm not done yet

    Leave a comment:


  • Derakon
    replied
    Originally posted by Nick
    OK, thanks. I fail at town again
    Look, it's not Nowhere Town. You're getting better at this.

    Leave a comment:


  • Nick
    replied
    Originally posted by StMicah
    I suspect this is not supposed to happen! Just started a new game and can't make it to town.
    OK, thanks. I fail at town again

    Leave a comment:


  • StMicah
    replied
    I suspect this is not supposed to happen! Just started a new game and can't make it to town.
    Attached Files

    Leave a comment:


  • kandrc
    replied
    And when I try to recover from that one, my @ is in a different location from where it was when I crashed, and I get the following:

    Code:
    Program received signal SIGABRT, Aborted.
    0x00007ffff6d7f979 in raise () from /lib64/libc.so.6
    (gdb) bt
    #0  0x00007ffff6d7f979 in raise () from /lib64/libc.so.6
    #1  0x00007ffff6d81088 in abort () from /lib64/libc.so.6
    #2  0x00007ffff6d78966 in __assert_fail_base () from /lib64/libc.so.6
    #3  0x00007ffff6d78a12 in __assert_fail () from /lib64/libc.so.6
    #4  0x0000000000407791 in square_istrap (c=0x894fa8, y=19, x=38) at cave-square.c:464
    #5  0x000000000049f735 in square_trap_flag (c=0x894fa8, y=19, x=38, flag=3) at trap.c:90
    #6  0x00000000004084d5 in square_isvisibletrap (c=0x894fa8, y=19, x=38) at cave-square.c:705
    #7  0x00000000004084fd in square_issecrettrap (c=0x894fa8, y=19, x=38) at cave-square.c:712
    #8  0x000000000048e31b in search (p=0x9bb9e8) at player-util.c:943
    #9  0x0000000000487106 in notice_stuff (p=0x9bb9e8) at player-calcs.c:2278
    #10 0x000000000041c094 in on_new_level () at game-world.c:716
    #11 0x00000000004ad45a in start_game (new_game=false) at ui-game.c:417
    #12 0x00000000004ad475 in play_game (new_game=false) at ui-game.c:426
    #13 0x00000000004e583d in main (argc=1, argv=0x7fffffffdc48) at main.c:524
    (gdb)
    EDIT:
    Looking at it more closely, I'm being placed on the permanent wall in a small (labyrinth) level. Going to try to edit my position in the debugger to save the game. Stairs don't work. Loaded into a bad place. If I can get him moved, I'll try to recall and see if that salvages things.

    Rogue @ just found an early ESP on a *Slay Animal*. I'd rather not abandon.

    EDIT 2:
    Ah, this did the trick:

    Code:
    Breakpoint 1, start_game (new_game=false) at ui-game.c:415
    (gdb) print character_dungeon
    $1 = true
    (gdb) call character_dungeon = 0
    $2 = false
    (gdb) cont
    Continuing.
    Last edited by kandrc; January 6, 2017, 14:58.

    Leave a comment:


  • kandrc
    replied
    Here's another segfault in 4.0.3-603-g81b3e23:

    Code:
    Program received signal SIGSEGV, Segmentation fault.
    0x00000000004dd857 in flag_on_dbg (flags=0x411 <Address 0x411 out of bounds>, size=3, flag=1, fi=0x4eb64d "c->squares[y][x].info", fl=0x4eb641 "SQUARE_MARK") at z-bitflag.c:226
    226             if (flags[flag_offset] & flag_binary) return false;
    (gdb) bt
    #0  0x00000000004dd857 in flag_on_dbg (flags=0x411 <Address 0x411 out of bounds>, size=3, flag=1, fi=0x4eb64d "c->squares[y][x].info", fl=0x4eb641 "SQUARE_MARK")
        at z-bitflag.c:226
    #1  0x00000000004099ad in square_mark (c=0xb19578, y=0, x=55) at cave-square.c:1098
    #2  0x0000000000405568 in wiz_light (c=0xbb7a18, full=false) at cave-map.c:446
    #3  0x0000000000420cd0 in labyrinth_gen (p=0x9bbc28) at gen-cave.c:887
    #4  0x000000000041e2ed in cave_generate (c=0x74b480 <cave>, p=0x9bbc28) at generate.c:864
    #5  0x000000000041c476 in run_game_loop () at game-world.c:840
    #6  0x00000000004ad48f in play_game (new_game=false) at ui-game.c:433
    #7  0x00000000004e583d in main (argc=1, argv=0x7fffffffdc48) at main.c:524
    (gdb)

    Leave a comment:


  • Nick
    replied
    Originally posted by kandrc
    I hit an infinite loop in scatter(). Specifically, it's never passing the test for square_in_bounds_fully(), as ny is being generated in the range [-2, 0].

    Here's some detail. I don't know this code well enough to see what the issue is exactly, but I suspect the parameters coming into scatter() are bad.
    Thanks, that's really helpful.

    Leave a comment:


  • kandrc
    replied
    I hit an infinite loop in scatter(). Specifically, it's never passing the test for square_in_bounds_fully(), as ny is being generated in the range [-2, 0].

    Here's some detail. I don't know this code well enough to see what the issue is exactly, but I suspect the parameters coming into scatter() are bad.

    Code:
    (gdb) bt
    #0  square_in_bounds_fully (c=0xd9e558, y=-1, x=74) at cave-square.c:764
    #1  0x00000000004044db in scatter (c=0xd9e558, yp=0x7fffffffd760, xp=0x7fffffffd75c, y=-1, x=74, d=1, need_los=false) at cave.c:297
    #2  0x00000000004301a1 in vault_monsters (c=0xd9e558, y1=-1, x1=74, depth=18, num=1) at gen-util.c:731
    #3  0x0000000000429b33 in build_room_template (c=0xd9e558, y0=4, x0=74, ymax=7, xmax=28, doors=1, 
        data=0x9da588 "%%%####%%#%%####%%#%%####%%%%...##...+...##..9+...##...%%##....#####....#####....##%  ##..##   ##..##   ##..##  %##....#####....#####....##%%...##...+9..##...+...##...%%%%####%%#%%####%%#%%####%%%", tval=0) at gen-room.c:1009
    #4  0x0000000000429df5 in build_room_template_type (c=0xd9e558, y0=56, x0=172, typ=1, rating=1) at gen-room.c:1074
    #5  0x000000000042d7c4 in build_template (c=0xd9e558, y0=56, x0=172, rating=1) at gen-room.c:2384
    #6  0x000000000042eef7 in room_build (c=0xd9e558, by0=0, bx0=0, profile=..., finds_own_space=true) at gen-room.c:2990
    #7  0x0000000000422d08 in modified_chunk (depth=17, height=56, width=172) at gen-cave.c:1688
    #8  0x000000000042327c in modified_gen (p=0x9bbbf8) at gen-cave.c:1791
    #9  0x000000000041e2ed in cave_generate (c=0x74b480 <cave>, p=0x9bbbf8) at generate.c:864
    #10 0x000000000041c476 in run_game_loop () at game-world.c:840
    #11 0x00000000004ad48f in play_game (new_game=false) at ui-game.c:433
    #12 0x00000000004e583d in main (argc=1, argv=0x7fffffffdc48) at main.c:524
    (gdb) print *c
    $24 = {
      name = 0x0, 
      created_at = 43089, 
      depth = 17, 
      feeling = 0 '\000', 
      obj_rating = 65, 
      mon_rating = 242, 
      good_item = false, 
      height = 56, 
      width = 172, 
      feeling_squares = 0, 
      feat_count = 0xc6e938, 
      squares = 0xc6ea48, 
      objects = 0xd64db8, 
      obj_max = 127, 
      monsters = 0xda3648, 
      mon_max = 4, 
      mon_cnt = 3, 
      mon_current = -1
    }
    (gdb) up
    #1  0x00000000004044db in scatter (c=0xd9e558, yp=0x7fffffffd760, xp=0x7fffffffd75c, y=-1, x=74, d=1, need_los=false) at cave.c:297
    297                     if (!square_in_bounds_fully(c, ny, nx)) continue;
    (gdb) print y
    $25 = -1
    (gdb) print x
    $26 = 74
    (gdb) print d
    $27 = 1
    (gdb) down
    #0  square_in_bounds_fully (c=0xd9e558, y=-1, x=74) at cave-square.c:764
    764             assert(c);
    (gdb) list
    759             return x >= 0 && x < c->width && y >= 0 && y < c->height;
    760     }
    761
    762     bool square_in_bounds_fully(struct chunk *c, int y, int x)
    763     {
    764             assert(c);
    765             return x > 0 && x < c->width - 1 && y > 0 && y < c->height - 1;
    766     }
    767
    768
    (gdb) print *yp
    No symbol "yp" in current context.
    (gdb) up
    #1  0x00000000004044db in scatter (c=0xd9e558, yp=0x7fffffffd760, xp=0x7fffffffd75c, y=-1, x=74, d=1, need_los=false) at cave.c:297
    297                     if (!square_in_bounds_fully(c, ny, nx)) continue;
    (gdb) print *yp
    $28 = 77
    (gdb) print *xp
    $29 = 2
    (gdb)

    Leave a comment:


  • kandrc
    replied
    Not sure is this one should be considered a bug or not, nor am I certain of historical behavior, but staff of sleep monsters wakes sleeping monsters that make the saving throw.

    Leave a comment:


  • Derakon
    replied
    Originally posted by luneya
    Always available? Unless this has been changed when I wasn't watching, the only always-available scrolls are phase door and word of recall. If mapping scrolls are indeed always available (or we're willing to make them so) then I agree that this is an adequate solution. Otherwise, we probably do need to bring stair detection back.
    They shouldn't be always available; magic mapping is a powerful ability and the fact that holy casters are the only ones with unlimited access to it is a powerful defining feature of the class. I'd say Sense Surroundings and Clairvoyance are their most distinctive spells after Healing.

    Leave a comment:

Working...
😀
😂
🥰
😘
🤢
😎
😞
😡
👍
👎