[PATCH 2/3] (patch 2/4, v2) [nto] Implement TARGET_OBJECT_AUXV.

Aleksandar Ristovski aristovski@qnx.com
Tue Oct 20 16:03:00 GMT 2015


On 15-10-20 11:20 AM, Pedro Alves wrote:
> Does this result in any visible improvement?  I assume that
> at least, "info auxv" now works [1] [2].  It'd be really nice to have a
> blurb in the commit log mentioning what motivated this.

Yes, info auxv works on a live process. For the core I have other
patches that need to go in first, but the mechanism of getting auxv
remains the same; only determining initial stack changes.

I will add something to the commit log.
"Fix 'info auxv' for nto."


> 
> [1] - BTW, if you enable gdb.base/auxv.exp on NTO, does it pass?
> 

It fails since we have AT_* entries that are specific to nto, and get
printed as ??? which causes regex to not match. I have it patched
internally and print them out, but didn't think it would be acceptable
upstream.

(gdb) PASS: gdb.base/auxv.exp: continue
info auxv^M
3    AT_PHDR              Program headers for program    0x8048034^M
4    AT_PHENT             Size of program header entry   32^M
5    AT_PHNUM             Number of program headers      8^M
9    AT_ENTRY             Entry point of program         0x8048668^M
6    AT_PAGESZ            System page size               4096^M
7    AT_BASE              Base address of interpreter    0xb0300000^M
12   AT_EUID              Effective user ID              2050^M
13   AT_GID               Real group ID                  3221225482^M
47   ???                                                 0x8047f7d^M
WARNING: Unrecognized tag value: 47   ???
                  0x8047f7d^M

(gdb) FAIL: gdb.base/auxv.exp: info auxv on live process


> On 10/20/2015 03:28 PM, Aleksandar Ristovski wrote:
>> gdb/ChangeLog:
>>
>> 	* nto-procfs.c (sys/auxv.h): Include.
>> 	(procfs_xfer_partial): Implement TARGET_OBJECT_AUXV.
>> 	* gdb/nto-tdep.c (nto_read_auxv_from_initial_stack): New function.
>> 	* gdb/nto-tdep.h (nto_read_auxv_from_initial_stack): New declaration.
> 
> Drop the "gdb/" in the file paths.
> 

Ok, sorry. Used 'mklog' script and didn't remove gdb/.

>> @@ -885,6 +887,40 @@ procfs_xfer_partial (struct target_ops *ops, enum target_object object,
>>      {
...
>> +	  /* Similar as in the case of a core file, we read auxv from
>> +	     initial_stack.  */
> 
> Hmm, where's this "similar" you refer to?  AFAICS, for cores, BFD
> extracts it from the NT_AUVX note.

We don't dump it in the note, we dump initial stack page containing it.

> 
>> +	  initial_stack = procinfo.initial_stack;
>> +
>> +	  /* procfs is always 'self-hosted', no byte-order manipulation. */
> 
> Double-space after period.
> 

Ok.

> Otherwise looks OK.
> 

Attaching the patch with double-space fix and added "what was fixed" in
commit message.


Thank you,

Aleksandar Ristovski
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-nto-Implement-TARGET_OBJECT_AUXV.patch
Type: text/x-patch
Size: 5531 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/gdb-patches/attachments/20151020/3066df74/attachment.bin>


More information about the Gdb-patches mailing list