Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c > #146399
| Path | csiph.com!aioe.org!.POSTED.IXP4sbumLrdkG2n6/syALg.user.gioia.aioe.org!not-for-mail |
|---|---|
| From | Louis Valence <lvalence@example.com> |
| Newsgroups | comp.lang.c |
| Subject | Re: on gdb's sizeof versus gcc's sizeof |
| Date | Sat, 28 Sep 2019 16:57:37 -0300 |
| Organization | Aioe.org NNTP Server |
| Lines | 73 |
| Message-ID | <86pnjki47i.fsf@example.com> (permalink) |
| References | <867e5vkgw2.fsf@example.com> <a03jF.4165$hU2.239@fx20.iad> <lnpnjm4y80.fsf@kst-u.example.com> |
| NNTP-Posting-Host | IXP4sbumLrdkG2n6/syALg.user.gioia.aioe.org |
| Mime-Version | 1.0 |
| Content-Type | text/plain |
| X-Complaints-To | abuse@aioe.org |
| User-Agent | Gnus/5.13 (Gnus v5.13) Emacs/24.3 (windows-nt) |
| X-Notice | Filtered by postfilter v. 0.9.2 |
| Cancel-Lock | sha1:0rY+mjXBmIfboa2AMSq4rIotgQU= |
| Xref | csiph.com comp.lang.c:146399 |
Show key headers only | View raw
Keith Thompson <kst-u@mib.org> writes:
> scott@slp53.sl.home (Scott Lurndal) writes:
>> Louis Valence <lvalence@example.com> writes:
>>>Can you explain this? I don't get it.
>>>
>>>%cat sizeof-long.c
>>>#include <stdio.h>
>>>
>>>int main() {
>>> printf("sizeof unsigned long: %ld\n", sizeof (unsigned long));
>>> printf("sizeof long: %ld\n", sizeof (long));
>>>}
>>>
>>>%./sizeof-long
>>>sizeof unsigned long: 8
>>>sizeof long: 8
>>>
>>>%gdb
>>>GNU gdb (Ubuntu 8.0.1-0ubuntu1) 8.0.1
>>>
>>>[...]
>>>
>>>(gdb) p sizeof (unsigned long)
>>>$1 = 4
>>
>> You may want to use a 64-bit build of GDB instead of the 32-bit:
>>
>> (gdb) print sizeof(unsigned long)
>> $1 = 0x8
>> (gdb) quit
>
> I don't believe that's the issue.
>
> Were you debugging a program when you got that result, or did you invoke
> gdb with no arguments as Louis and I both did?
>
> On my system:
>
> $ echo 'print sizeof (long)' | gdb
> GNU gdb (Ubuntu 8.1-0ubuntu3.1) 8.1.0.20180409-git
> [...]
> This GDB was configured as "x86_64-linux-gnu".
> [...]
> (gdb) $1 = 4
> (gdb) quit
> $
>
> As far as I can tell, gdb uses the environment of the program it's
> debugging, falling back to some default environment if it's not given
> a program to debug. In that default -- at least on my system --
> long is 4 bytes.
Thanks for the investigation, Keith. I think you're correct here.
Here's some evidence.
--8<---------------cut here---------------start------------->8---
%gdb
GNU gdb (Ubuntu 8.0.1-0ubuntu1) 8.0.1
[..]
(gdb) p sizeof (unsigned long)
$1 = 4
(gdb) set architecture
Requires an argument. Valid arguments are i386, i386:x86-64,
i386:x64-32, i8086, i386:intel, i386:x86-64:intel, i386:x64-32:intel,
i386:nacl, i386:x86-64:nacl, i386:x64-32:nacl, auto.
(gdb) set architecture i386:x86-64
The target architecture is assumed to be i386:x86-64
(gdb) p sizeof (unsigned long)
$2 = 8
(gdb) quit
%
--8<---------------cut here---------------end--------------->8---
Back to comp.lang.c | Previous | Next — Previous in thread | Find similar | Unroll thread
on gdb's sizeof versus gcc's sizeof Louis Valence <lvalence@example.com> - 2019-09-25 22:03 -0300
Re: on gdb's sizeof versus gcc's sizeof Keith Thompson <kst-u@mib.org> - 2019-09-25 19:22 -0700
Re: on gdb's sizeof versus gcc's sizeof scott@slp53.sl.home (Scott Lurndal) - 2019-09-26 13:26 +0000
Re: on gdb's sizeof versus gcc's sizeof Keith Thompson <kst-u@mib.org> - 2019-09-26 13:08 -0700
Re: on gdb's sizeof versus gcc's sizeof Louis Valence <lvalence@example.com> - 2019-09-28 16:57 -0300
csiph-web