From owner-freebsd-hackers@freebsd.org Tue Apr 19 16:47:22 2016 Return-Path: Delivered-To: freebsd-hackers@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1CBEFB134B2; Tue, 19 Apr 2016 16:47:22 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: from mail-oi0-f65.google.com (mail-oi0-f65.google.com [209.85.218.65]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D9F61168E; Tue, 19 Apr 2016 16:47:21 +0000 (UTC) (envelope-from cse.cem@gmail.com) Received: by mail-oi0-f65.google.com with SMTP id r186so2002610oie.2; Tue, 19 Apr 2016 09:47:21 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:reply-to:in-reply-to:references :date:message-id:subject:from:to:cc; bh=plKItJ4SwUszM7mWddeQoN/3iytUwLj2y1QSjZGtfRc=; b=YWkbXxGkUInOR125+A/mdjoAaUlKzEV4uemlcdY2/MAKRXUuP45AKRvZTPaABneuGR wRS9DU8Vd3z2wfzMg57+1FAID7o2wrSo34CDQak8KEKJ65JJ9apGf6w1pv1WzMCTU1tc Zb4MoRs5FWF0h0SAKsPgpQ8TyOGksM6MJS/ZPfOb8HZrVRmz6EFAZtkhWnPsSj6PO7mr Ma3Z4HOE8/UJwuSHdgDIQd2sx2c0M9443DNjUAnbzNIE6om2Efz+DXYaGvNb+ihBIFtO kkRgvIYLk8BCYV7dcLR2t8CqP4GppqxK2cRjyhtsktxAajeGDC6dwxfJW0/Y3qJDxjtn svMQ== X-Gm-Message-State: AOPr4FWmcawpBCqm+B9wIbYYYm+TjmsVnYfUDhCPW2GxmhBsk9yh7FVg6DWEPxdPia6vnQ== X-Received: by 10.202.57.133 with SMTP id g127mr1616077oia.120.1461084435530; Tue, 19 Apr 2016 09:47:15 -0700 (PDT) Received: from mail-oi0-f47.google.com (mail-oi0-f47.google.com. [209.85.218.47]) by smtp.gmail.com with ESMTPSA id 40sm21288241otg.28.2016.04.19.09.47.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 19 Apr 2016 09:47:15 -0700 (PDT) Received: by mail-oi0-f47.google.com with SMTP id p188so16645699oih.2; Tue, 19 Apr 2016 09:47:14 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.157.6.65 with SMTP id 59mr1840353otn.39.1461084434580; Tue, 19 Apr 2016 09:47:14 -0700 (PDT) Reply-To: cem@FreeBSD.org Received: by 10.157.22.215 with HTTP; Tue, 19 Apr 2016 09:47:14 -0700 (PDT) In-Reply-To: References: Date: Tue, 19 Apr 2016 09:47:14 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: Toggling between remote KGDB and local DDB within a debugging session From: Conrad Meyer To: Aijaz Baig Cc: FreeBSD Hackers , freebsd-stable@freebsd.org Content-Type: text/plain; charset=UTF-8 X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Apr 2016 16:47:22 -0000 On Tue, Apr 19, 2016 at 9:35 AM, Aijaz Baig wrote: > On Tue, Apr 19, 2016 at 9:08 PM, Conrad Meyer wrote: >> On Tue, Apr 19, 2016 at 5:49 AM, Aijaz Baig wrote: >>> I would like to know if there is indeed a way to toggle between gdb >>> and ddb while debugging a remote kernel. I am already at the gdb (or >>> rather kgdb) prompt. From here how do I switch to local ddb on the >>> debugged machine?? >> >> Ctrl-c on the serial console. > For me I merely see 'Quit' being spat out when I do a ctrl-c Ctrl-C on the serial console, not in GDB. It looks like this: # sysctl debug.kdb.enter=1 debug.kdb.enter:KDB: enter: sysctl debug.kdb.enter [ thread pid 21907 tid 102340 ] Stopped at kdb_sysctl_enter+0x87: movq $0,kdb_why db> gdb (ctrl-c will return control to ddb) Switching to gdb back-end Received ^C; trying to switch back to ddb. using longjmp, hope it works! KDB: reentering KDB: stack backtrace: db_trace_self_wrapper() at db_trace_self_wrapper+0x2b/frame 0xfffffea79d0e6140 kdb_backtrace() at kdb_backtrace+0x39/frame 0xfffffea79d0e61f0 kdb_reenter() at kdb_reenter+0x33/frame 0xfffffea79d0e6200 gdb_tx_end() at gdb_tx_end+0x28a/frame 0xfffffea79d0e6240 gdb_trap() at gdb_trap+0x1f9/frame 0xfffffea79d0e6390 kdb_trap() at kdb_trap+0x169/frame 0xfffffea79d0e63f0 trap() at trap+0x71d/frame 0xfffffea79d0e6600 calltrap() at calltrap+0x8/frame 0xfffffea79d0e6600 --- trap 0x3, rip = 0xffffffff8058f177, rsp = 0xfffffea79d0e66c0, rbp = 0xfffffea79d0e66f0 --- kdb_sysctl_enter() at kdb_sysctl_enter+0x87/frame 0xfffffea79d0e66f0 sysctl_root() at sysctl_root+0x24a/frame 0xfffffea79d0e6740 userland_sysctl() at userland_sysctl+0x1d2/frame 0xfffffea79d0e67f0 sys___sysctl() at sys___sysctl+0x74/frame 0xfffffea79d0e68a0 amd64_syscall() at amd64_syscall+0x397/frame 0xfffffea79d0e6ab0 Xfast_syscall() at Xfast_syscall+0xfb/frame 0xfffffea79d0e6ab0 --- syscall (202, FreeBSD ELF64, sys___sysctl), rip = 0x80095ed4a, rsp = 0x7fffffffc948, rbp = 0x7fffffffc980 --- gdb_trap bailing, hopefully back to ddb! Switching to ddb back-end [ thread pid 21907 tid 102340 ] Stopped at kdb_sysctl_enter+0x87: movq $0,kdb_why db> c 0 -> 0 Best, Conrad