* [PATCH] UefiCpuPkg/SecCore: Use %x to print stack information
@ 2016-11-15 8:32 Jeff Fan
2016-11-15 8:37 ` Tian, Feng
2016-11-15 16:59 ` Laszlo Ersek
0 siblings, 2 replies; 7+ messages in thread
From: Jeff Fan @ 2016-11-15 8:32 UTC (permalink / raw)
To: edk2-devel; +Cc: Feng Tian, Michael D Kinney
SecCoreData->StackBase is VOID * type and SecCoreData->StackSize is UINTN type.
We should use %x to dump their value instead of %lx.
Cast pointer type to UINTN before print it.
Cc: Feng Tian <feng.tian@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com>
---
UefiCpuPkg/SecCore/SecMain.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/UefiCpuPkg/SecCore/SecMain.c b/UefiCpuPkg/SecCore/SecMain.c
index 2ebbc22..4d08f48 100644
--- a/UefiCpuPkg/SecCore/SecMain.c
+++ b/UefiCpuPkg/SecCore/SecMain.c
@@ -239,9 +239,9 @@ SecStartupPhase2(
DEBUG ((
DEBUG_INFO,
- "%a() Stack Base: 0x%lx, Stack Size: 0x%lx\n",
+ "%a() Stack Base: 0x%x, Stack Size: 0x%x\n",
__FUNCTION__,
- SecCoreData->StackBase,
+ (UINTN) SecCoreData->StackBase,
SecCoreData->StackSize
));
--
2.9.3.windows.2
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH] UefiCpuPkg/SecCore: Use %x to print stack information
2016-11-15 8:32 [PATCH] UefiCpuPkg/SecCore: Use %x to print stack information Jeff Fan
@ 2016-11-15 8:37 ` Tian, Feng
2016-11-15 16:59 ` Laszlo Ersek
1 sibling, 0 replies; 7+ messages in thread
From: Tian, Feng @ 2016-11-15 8:37 UTC (permalink / raw)
To: Fan, Jeff, edk2-devel@ml01.01.org; +Cc: Kinney, Michael D, Tian, Feng
Reviewed-by: Feng Tian <feng.tian@intel.com>
Thanks
Feng
-----Original Message-----
From: Fan, Jeff
Sent: Tuesday, November 15, 2016 4:32 PM
To: edk2-devel@ml01.01.org
Cc: Tian, Feng <feng.tian@intel.com>; Kinney, Michael D <michael.d.kinney@intel.com>
Subject: [PATCH] UefiCpuPkg/SecCore: Use %x to print stack information
SecCoreData->StackBase is VOID * type and SecCoreData->StackSize is UINTN type.
We should use %x to dump their value instead of %lx.
Cast pointer type to UINTN before print it.
Cc: Feng Tian <feng.tian@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com>
---
UefiCpuPkg/SecCore/SecMain.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/UefiCpuPkg/SecCore/SecMain.c b/UefiCpuPkg/SecCore/SecMain.c index 2ebbc22..4d08f48 100644
--- a/UefiCpuPkg/SecCore/SecMain.c
+++ b/UefiCpuPkg/SecCore/SecMain.c
@@ -239,9 +239,9 @@ SecStartupPhase2(
DEBUG ((
DEBUG_INFO,
- "%a() Stack Base: 0x%lx, Stack Size: 0x%lx\n",
+ "%a() Stack Base: 0x%x, Stack Size: 0x%x\n",
__FUNCTION__,
- SecCoreData->StackBase,
+ (UINTN) SecCoreData->StackBase,
SecCoreData->StackSize
));
--
2.9.3.windows.2
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] UefiCpuPkg/SecCore: Use %x to print stack information
2016-11-15 8:32 [PATCH] UefiCpuPkg/SecCore: Use %x to print stack information Jeff Fan
2016-11-15 8:37 ` Tian, Feng
@ 2016-11-15 16:59 ` Laszlo Ersek
2016-11-15 17:47 ` Andrew Fish
1 sibling, 1 reply; 7+ messages in thread
From: Laszlo Ersek @ 2016-11-15 16:59 UTC (permalink / raw)
To: Jeff Fan, edk2-devel; +Cc: Michael D Kinney, Feng Tian
On 11/15/16 09:32, Jeff Fan wrote:
> SecCoreData->StackBase is VOID * type and SecCoreData->StackSize is UINTN type.
> We should use %x to dump their value instead of %lx.
>
> Cast pointer type to UINTN before print it.
>
> Cc: Feng Tian <feng.tian@intel.com>
> Cc: Michael D Kinney <michael.d.kinney@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Jeff Fan <jeff.fan@intel.com>
> ---
> UefiCpuPkg/SecCore/SecMain.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/UefiCpuPkg/SecCore/SecMain.c b/UefiCpuPkg/SecCore/SecMain.c
> index 2ebbc22..4d08f48 100644
> --- a/UefiCpuPkg/SecCore/SecMain.c
> +++ b/UefiCpuPkg/SecCore/SecMain.c
> @@ -239,9 +239,9 @@ SecStartupPhase2(
>
> DEBUG ((
> DEBUG_INFO,
> - "%a() Stack Base: 0x%lx, Stack Size: 0x%lx\n",
> + "%a() Stack Base: 0x%x, Stack Size: 0x%x\n",
> __FUNCTION__,
> - SecCoreData->StackBase,
> + (UINTN) SecCoreData->StackBase,
> SecCoreData->StackSize
> ));
>
>
Not disagreeing, just mentioning for completeness: we can also use %p
for printing (VOID*) directly.
Thanks
Laszlo
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] UefiCpuPkg/SecCore: Use %x to print stack information
2016-11-15 16:59 ` Laszlo Ersek
@ 2016-11-15 17:47 ` Andrew Fish
2016-11-15 18:11 ` Laszlo Ersek
2016-11-16 1:01 ` Fan, Jeff
0 siblings, 2 replies; 7+ messages in thread
From: Andrew Fish @ 2016-11-15 17:47 UTC (permalink / raw)
To: Laszlo Ersek, Jeff Fan, Feng Tian, Mike Kinney; +Cc: edk2-devel@lists.01.org
> On Nov 15, 2016, at 8:59 AM, Laszlo Ersek <lersek@redhat.com> wrote:
>
> On 11/15/16 09:32, Jeff Fan wrote:
>> SecCoreData->StackBase is VOID * type and SecCoreData->StackSize is UINTN type.
>> We should use %x to dump their value instead of %lx.
>>
>> Cast pointer type to UINTN before print it.
>>
>> Cc: Feng Tian <feng.tian@intel.com>
>> Cc: Michael D Kinney <michael.d.kinney@intel.com>
>> Contributed-under: TianoCore Contribution Agreement 1.0
>> Signed-off-by: Jeff Fan <jeff.fan@intel.com>
>> ---
>> UefiCpuPkg/SecCore/SecMain.c | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/UefiCpuPkg/SecCore/SecMain.c b/UefiCpuPkg/SecCore/SecMain.c
>> index 2ebbc22..4d08f48 100644
>> --- a/UefiCpuPkg/SecCore/SecMain.c
>> +++ b/UefiCpuPkg/SecCore/SecMain.c
>> @@ -239,9 +239,9 @@ SecStartupPhase2(
>>
>> DEBUG ((
>> DEBUG_INFO,
>> - "%a() Stack Base: 0x%lx, Stack Size: 0x%lx\n",
>> + "%a() Stack Base: 0x%x, Stack Size: 0x%x\n",
>> __FUNCTION__,
>> - SecCoreData->StackBase,
>> + (UINTN) SecCoreData->StackBase,
>> SecCoreData->StackSize
>> ));
>>
>>
>
> Not disagreeing, just mentioning for completeness: we can also use %p
> for printing (VOID*) directly.
>
%x is sizeof(int) not sizeof(UINTN)? So it seems %p would be more correct? Or we should just use UINT32 if that is what is intended.
https://github.com/tianocore/edk2/blob/master/MdePkg/Include/Library/PrintLib.h#L80
- x
- The argument is an unsigned hexadecimal number. The characters used are 0..9 and
A..F. If the flag 'L' is not specified, then the argument is assumed
to be size int. This does not follow ANSI C.
Thanks,
Andrew Fish
> Thanks
> Laszlo
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org <mailto:edk2-devel@lists.01.org>
> https://lists.01.org/mailman/listinfo/edk2-devel <https://lists.01.org/mailman/listinfo/edk2-devel>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] UefiCpuPkg/SecCore: Use %x to print stack information
2016-11-15 17:47 ` Andrew Fish
@ 2016-11-15 18:11 ` Laszlo Ersek
2016-11-15 18:33 ` Andrew Fish
2016-11-16 1:01 ` Fan, Jeff
1 sibling, 1 reply; 7+ messages in thread
From: Laszlo Ersek @ 2016-11-15 18:11 UTC (permalink / raw)
To: Andrew Fish, Jeff Fan, Feng Tian, Mike Kinney; +Cc: edk2-devel@lists.01.org
On 11/15/16 18:47, Andrew Fish wrote:
>
>> On Nov 15, 2016, at 8:59 AM, Laszlo Ersek <lersek@redhat.com
>> <mailto:lersek@redhat.com>> wrote:
>>
>> On 11/15/16 09:32, Jeff Fan wrote:
>>> SecCoreData->StackBase is VOID * type and SecCoreData->StackSize is
>>> UINTN type.
>>> We should use %x to dump their value instead of %lx.
>>>
>>> Cast pointer type to UINTN before print it.
>>>
>>> Cc: Feng Tian <feng.tian@intel.com <mailto:feng.tian@intel.com>>
>>> Cc: Michael D Kinney <michael.d.kinney@intel.com
>>> <mailto:michael.d.kinney@intel.com>>
>>> Contributed-under: TianoCore Contribution Agreement 1.0
>>> Signed-off-by: Jeff Fan <jeff.fan@intel.com <mailto:jeff.fan@intel.com>>
>>> ---
>>> UefiCpuPkg/SecCore/SecMain.c | 4 ++--
>>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/UefiCpuPkg/SecCore/SecMain.c b/UefiCpuPkg/SecCore/SecMain.c
>>> index 2ebbc22..4d08f48 100644
>>> --- a/UefiCpuPkg/SecCore/SecMain.c
>>> +++ b/UefiCpuPkg/SecCore/SecMain.c
>>> @@ -239,9 +239,9 @@ SecStartupPhase2(
>>>
>>> DEBUG ((
>>> DEBUG_INFO,
>>> - "%a() Stack Base: 0x%lx, Stack Size: 0x%lx\n",
>>> + "%a() Stack Base: 0x%x, Stack Size: 0x%x\n",
>>> __FUNCTION__,
>>> - SecCoreData->StackBase,
>>> + (UINTN) SecCoreData->StackBase,
>>> SecCoreData->StackSize
>>> ));
>>>
>>>
>>
>> Not disagreeing, just mentioning for completeness: we can also use %p
>> for printing (VOID*) directly.
>>
>
> %x is sizeof(int) not sizeof(UINTN)?
Sigh, you are correct, of course. "%x" is not portable for printing UINTN.
In fact we recently discussed just that:
[edk2] What is the right way to print a UINTN?
https://lists.01.org/pipermail/edk2-devel/2016-September/002091.html
(There seem to be issues with my focus / attention recently... This is
now the second near-trivial issue I've missed in a couple of days. :( I
guess I should get more sleep.)
> So it seems %p would be more
> correct? Or we should just use UINT32 if that is what is intended.
>
> https://github.com/tianocore/edk2/blob/master/MdePkg/Include/Library/PrintLib.h#L80
>
> - x
> - The argument is an unsigned hexadecimal number. The characters used
> are 0..9 and
> A..F. If the flag 'L' is not specified, then the argument is assumed
> to be size int. This does not follow ANSI C.
>
Right, %p is the most direct choice.
Thank you Andrew!
Laszlo
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] UefiCpuPkg/SecCore: Use %x to print stack information
2016-11-15 18:11 ` Laszlo Ersek
@ 2016-11-15 18:33 ` Andrew Fish
0 siblings, 0 replies; 7+ messages in thread
From: Andrew Fish @ 2016-11-15 18:33 UTC (permalink / raw)
To: Laszlo Ersek; +Cc: edk2-devel@lists.01.org
> On Nov 15, 2016, at 10:11 AM, Laszlo Ersek <lersek@redhat.com> wrote:
>
> [edk2] What is the right way to print a UINTN?
>
> https://lists.01.org/pipermail/edk2-devel/2016-September/002091.html <https://lists.01.org/pipermail/edk2-devel/2016-September/002091.html>
>
> (There seem to be issues with my focus / attention recently... This is
> now the second near-trivial issue I've missed in a couple of days. :( I
> guess I should get more sleep.)
Laszlo,
No worries that is why more eye balls is better.
There is a lot of scientific work on mental/information overload and pilots. https://www.ucl.ac.uk/news/news-articles/170314-Information-overload-dims-our-lights
Thanks,
Andrew Fish
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH] UefiCpuPkg/SecCore: Use %x to print stack information
2016-11-15 17:47 ` Andrew Fish
2016-11-15 18:11 ` Laszlo Ersek
@ 2016-11-16 1:01 ` Fan, Jeff
1 sibling, 0 replies; 7+ messages in thread
From: Fan, Jeff @ 2016-11-16 1:01 UTC (permalink / raw)
To: afish@apple.com, Laszlo Ersek, Tian, Feng, Kinney, Michael D
Cc: edk2-devel@lists.01.org
Andrew,
Yes. %P is more correct for VOID * type print. We cannot use UINT32 here because SEC could support x64 arch.
Thanks!
Jeff
From: afish@apple.com [mailto:afish@apple.com]
Sent: Wednesday, November 16, 2016 1:47 AM
To: Laszlo Ersek; Fan, Jeff; Tian, Feng; Kinney, Michael D
Cc: edk2-devel@lists.01.org
Subject: Re: [edk2] [PATCH] UefiCpuPkg/SecCore: Use %x to print stack information
On Nov 15, 2016, at 8:59 AM, Laszlo Ersek <lersek@redhat.com<mailto:lersek@redhat.com>> wrote:
On 11/15/16 09:32, Jeff Fan wrote:
SecCoreData->StackBase is VOID * type and SecCoreData->StackSize is UINTN type.
We should use %x to dump their value instead of %lx.
Cast pointer type to UINTN before print it.
Cc: Feng Tian <feng.tian@intel.com<mailto:feng.tian@intel.com>>
Cc: Michael D Kinney <michael.d.kinney@intel.com<mailto:michael.d.kinney@intel.com>>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com<mailto:jeff.fan@intel.com>>
---
UefiCpuPkg/SecCore/SecMain.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/UefiCpuPkg/SecCore/SecMain.c b/UefiCpuPkg/SecCore/SecMain.c
index 2ebbc22..4d08f48 100644
--- a/UefiCpuPkg/SecCore/SecMain.c
+++ b/UefiCpuPkg/SecCore/SecMain.c
@@ -239,9 +239,9 @@ SecStartupPhase2(
DEBUG ((
DEBUG_INFO,
- "%a() Stack Base: 0x%lx, Stack Size: 0x%lx\n",
+ "%a() Stack Base: 0x%x, Stack Size: 0x%x\n",
__FUNCTION__,
- SecCoreData->StackBase,
+ (UINTN) SecCoreData->StackBase,
SecCoreData->StackSize
));
Not disagreeing, just mentioning for completeness: we can also use %p
for printing (VOID*) directly.
%x is sizeof(int) not sizeof(UINTN)? So it seems %p would be more correct? Or we should just use UINT32 if that is what is intended.
https://github.com/tianocore/edk2/blob/master/MdePkg/Include/Library/PrintLib.h#L80
- x
- The argument is an unsigned hexadecimal number. The characters used are 0..9 and
A..F. If the flag 'L' is not specified, then the argument is assumed
to be size int. This does not follow ANSI C.
Thanks,
Andrew Fish
Thanks
Laszlo
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org<mailto:edk2-devel@lists.01.org>
https://lists.01.org/mailman/listinfo/edk2-devel
^ permalink raw reply related [flat|nested] 7+ messages in thread
end of thread, other threads:[~2016-11-16 1:01 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-15 8:32 [PATCH] UefiCpuPkg/SecCore: Use %x to print stack information Jeff Fan
2016-11-15 8:37 ` Tian, Feng
2016-11-15 16:59 ` Laszlo Ersek
2016-11-15 17:47 ` Andrew Fish
2016-11-15 18:11 ` Laszlo Ersek
2016-11-15 18:33 ` Andrew Fish
2016-11-16 1:01 ` Fan, Jeff
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox