This is the mail archive of the
gdb-prs@sourceware.org
mailing list for the GDB project.
[Bug c++/18888] New: unable to evaluate NULL
- From: "msebor at redhat dot com" <sourceware-bugzilla at sourceware dot org>
- To: gdb-prs at sourceware dot org
- Date: Fri, 28 Aug 2015 21:49:55 +0000
- Subject: [Bug c++/18888] New: unable to evaluate NULL
- Auto-submitted: auto-generated
https://sourceware.org/bugzilla/show_bug.cgi?id=18888
Bug ID: 18888
Summary: unable to evaluate NULL
Product: gdb
Version: 7.8
Status: NEW
Severity: normal
Priority: P2
Component: c++
Assignee: unassigned at sourceware dot org
Reporter: msebor at redhat dot com
Target Milestone: ---
GNU gdb (GDB) Fedora 7.8.2-38.fc21 doesn't seem to know about GCC's __null
extension used to implement the NULL macro. When the NULL macro is used in the
definition of a function like macro as happens to be the case with some of the
GCC tree checking macros such as DECL_ASSEMBLER_NAME_SET_P, GDB issues the
cryptic error 'No symbol "__null" in current context.' when an attempt is to
evaluate an invocation of the macro. This makes GCC debugging harder than it
would be otherwise.
(gdb) p DECL_ASSEMBLER_NAME_SET_P(expr)
No symbol "__null" in current context.
Test case:
$ cat t.c && g++ -g3 t.c && gdb -batch -ex 'b main' -ex 'r' -ex 'macro expand
FOO(p, 1, 2)' -ex 'p FOO(p, 1, 2)' a.out
#include <stdlib.h>
#define FOO(a, b, c) a == NULL ? b : c
int main ()
{
void *p = NULL;
int n;
n = FOO (p, 1, 2);
return n;
}
Breakpoint 1 at 0x4005ba: file t.c, line 7.
Breakpoint 1, main () at t.c:7
7 void *p = NULL;
expands to: p == __null ? 1 : 2
No symbol "__null" in current context.
--
You are receiving this mail because:
You are on the CC list for the bug.