Re: Several regressions and we branch soon.

Walfred Tedeschi
2015-07-01T09:30:29Z

Hello Yao,

Thank you for your feedback!

See below:

> This command was proposed initially as an standalone like:
> Set-mpx-bound and show-mpx-bound. Recommendation was to introduce it
> in the sets and shows, which I have agreed. Also because "set" is also
> used to set values of variables when used alone. Which is similar to
> what "set mpx bound" is doing, In this sense it can be considered as
> the right category to have it, as Joel indicated. About the show, well
> that is the natural counterpart of the set, right? Also, I agree with
> Yao patch. I would use a "warning" instead. Initialization of the
> command can be placed in a different location. I could think of adding
> them at the validation of the tdesc, i.e. I386_validate_tdesc_p and
> amd64_validate_tdesc_p. Would you agree with that? Open questions are:
> 1. Command call. Should they still be called "set mpx bound" / "show
> mpx bound"
> Command "show mpx bound" expects an argument, which is an address. Is this argument mandatory? In other words, can gdb scan bound directory and bound table from inferior memory and print all entries? this would be slow, but "show mpx bound" doesn't need an argument.
Though slow i think it could be done. In case of displaying all entries
there will be no context for the user. It means he will se a big table
of numbers. Therefore we decided to display only for the pointer desired.
In case you guys think that it might be also interesting we could spand
the command work in that way.
> After I read intel mpx doc and the patch, I have more questions in my mind,
>
> - if program doesn't set mpx bounds at all, GDB attaches to the program,
> and set mpx bounds, when GDB detaches from this program, does GDB
> need to clear these mpx bounds it sets?
In case program does not set bounds GDB will also not able to set
bounds. Basically idea is to have bounds as variables.
Once user has modified its done.
> - if program does set mpx bounds too (through mpx instructions or
> compiler builtins), do we expect GDB to show these mpx bounds too?
No. Same as above.
> - If program sets mpx bounds through mxp instructions and GDB sets mpx
> bounds too, does this interfere each other? or program's mxp bounds
> setting is stored in bnd0-bnd3, but GDB's mpx bound setting is bound
> directory and bound table, so this doesn't interfere each other?

Yes. Like it happens with variables location dependent variables.
To be able to to set bounds also on registers and tables and make them
sync we need debug information.
The solution by now is without. In this sense user has to know a bit of
assembler to know where to set the bounds, for the case it being debugged.

>> 2. Should initialization move to the validation routine?
> If we do so, commands are not shown up on the target doesn't meet the requirements of commands. After some thinking, I prefer registering mpx commands unconditionally even target doesn't support mpx. The "show" command still can tell user that this command doesn't work on this target. Otherwise, it should be confusing that some commands disappear silently
> --
> Yao (齐尧)

Hope I have answered your questions.

Thanks a lot and best regards,
-Fred
Intel GmbH
Dornacher Strasse 1
85622 Feldkirchen/Muenchen, Deutschland
Sitz der Gesellschaft: Feldkirchen bei Muenchen
Geschaeftsfuehrer: Christian Lamprechter, Hannes Schwaderer, Douglas Lusk
Registergericht: Muenchen HRB 47456
Ust.-IdNr./VAT Registration No.: DE129385895
Citibank Frankfurt a.M. (BLZ 502 109 00) 600119052