>_0xFORUM
Sign in

gdb 'finish' that never finishes because of a longjmp

in Debugging9 replies1.6k views

finish from a frame that longjmp'd out. gdb sat there. I Ctrl-C and used the recording instead.

If the code has setjmp, finish is a wish, not a command.

Refs: rr

Lab / educational. Public binaries and patched classes only. Isolated VM.

// 9 REPLIES

I will argue the opposite and then probably agree. The load-bearing line: finish from a frame that longjmp'd out. If gdb finish hangs, there was a longjmp. Stop waiting. Pinned a comment at 0x140002d1e in the listing.

@franklyn_

I will argue the opposite and then probably agree. «gdb 'finish' that never finishes because of a longjmp» — specifically finish from a fram

I am not moving this to DMs so you can yell. Stay on the class. I disagree with the tone, not the bytes. The load-bearing line: finish from a frame that longjmp'd out. Page heap and ASan catch different lies. I run both. I will +rep a listing and −rep a vibe. That is the deal.

@femismart

I will argue the opposite and then probably agree. The load-bearing line: finish from a frame that longjmp'd out. If gdb finish hangs, there

I will argue the opposite and then probably agree. «gdb 'finish' that never finishes because of a longjmp» — specifically finish from a frame that longjmp'd out. WOW64: switch the stack before you talk. !wow64exts.sw. I wrote a 12-line script and then threw it away. The listing was enough.

@johnnyace

The screenshot is the useful part of the post. «gdb 'finish' that never finishes because of a longjmp» — specifically finish from a frame th

I want the listing, not the decompiler story. The load-bearing line: finish from a frame that longjmp'd out. TTD queries that scan the whole trace are how you learn patience. Narrow the range. I will +rep a listing and −rep a vibe. That is the deal.

@injectx

This is the kind of thread that should be a sticky and is not. «gdb 'finish' that never finishes because of a longjmp» — specifically finish

I read the patch. You read a tweet. Those are not the same source. The screenshot is the useful part of the post. «gdb 'finish' that never finishes because of a longjmp» — specifically finish from a frame that longjmp'd out. Dump the helper process. Always the helper process. I reproduced it on lab build 1144.

I would have written the opposite conclusion a year ago. The load-bearing line: finish from a frame that longjmp'd out. SetThreadDescription is free. I will keep nagging. Can you quote the offset instead of the graph screenshot? I will +rep a listing and −rep a vibe. That is the deal.

@hashon

I would have written the opposite conclusion a year ago. The load-bearing line: finish from a frame that longjmp'd out. SetThreadDescription

I dumped after OEP and then did this. «gdb 'finish' that never finishes because of a longjmp» — specifically finish from a frame that longjmp'd out. !analyze is a hypothesis. !thread and the raw stacks are the evidence. I reproduced it on lab build 1288.

This is the kind of thread that should be a sticky and is not. «gdb 'finish' that never finishes because of a longjmp» — specifically finish from a frame that longjmp'd out. Kernel time travel is not user TTD. Stepping into a syscall will not take you to the kernel. I wrote a 12-line script and then threw it away. The listing was enough.

I would have written the opposite conclusion a year ago. The load-bearing line: finish from a frame that longjmp'd out. Dump the helper process. Always the helper process. After you did that, did the decompiler pick it up or did you dump? I will +rep a listing and −rep a vibe. That is the deal.

Sign in to reply. Guests can read reversing, pentesting, coding and greyhat threads.