From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by mx.groups.io with SMTP id smtpd.web10.1695.1592461679085201480 for ; Wed, 17 Jun 2020 23:27:59 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@intel.onmicrosoft.com header.s=selector2-intel-onmicrosoft-com header.b=Pxm6nyIW; spf=pass (domain: intel.com, ip: 192.55.52.151, mailfrom: eric.dong@intel.com) IronPort-SDR: smD0u749zz1UxU59trnvpE81PDkRh72ntLeKJqzWxdqVxcHeYPuUshO5BGmKjbKjv5ZRF5bouP JM9sUbiVr6BQ== X-IronPort-AV: E=McAfee;i="6000,8403,9655"; a="122684197" X-IronPort-AV: E=Sophos;i="5.73,525,1583222400"; d="scan'208";a="122684197" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 17 Jun 2020 23:27:58 -0700 IronPort-SDR: 4dFFgeCxBNKYmbQkityH6PO95nfGr/ff8BOBKpumewQNnjV89TiYR4rVw/YsnpHpTiT7LIzdG9 27K22C8Ibe7A== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.73,525,1583222400"; d="scan'208";a="263507763" Received: from orsmsx104.amr.corp.intel.com ([10.22.225.131]) by fmsmga008.fm.intel.com with ESMTP; 17 Jun 2020 23:27:58 -0700 Received: from orsmsx601.amr.corp.intel.com (10.22.229.14) by ORSMSX104.amr.corp.intel.com (10.22.225.131) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 17 Jun 2020 23:27:58 -0700 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX601.amr.corp.intel.com (10.22.229.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Wed, 17 Jun 2020 23:27:57 -0700 Received: from ORSEDG001.ED.cps.intel.com (10.7.248.4) by orsmsx611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.1.1713.5 via Frontend Transport; Wed, 17 Jun 2020 23:27:57 -0700 Received: from NAM11-CO1-obe.outbound.protection.outlook.com (104.47.56.171) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (TLS) id 14.3.439.0; Wed, 17 Jun 2020 23:27:50 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=QGWIxq4/C7pTeM+/Vaway6bzqwYEPjvVUHwKgOlnsNf8le3iTUoAqv8xwQagsEAa+gqwxTL73y62/QDYrmPufzdrosAxUjJpa1lNnjx9vR/3obYvWNBOC2tob7jvnVyeRkBRjcUN7NRial4yzimKCUBCiU5iPA4PlFHeNjLzlKHhHlnpW2RA2R374Go4O9PmCsPCqslBwQjllVZHzVu8hh2c2rIkODu3oehkntbKODGqEXnxt8TwrYEMsTmWaystG7+yETnkxe2i86hLS46zJnG4pd9pYRdrd0caEN97otj2kr3VtYPaqwyt/kwEI2FyNxeW/8K9i4s2Cn5U7HAE5g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=CdilmEbbZ2MkSh5Rpg/WfLTFe4V3HMo1dT3It1Q/9YA=; b=C9A93xKouxr/M+tmNC8rvyLQO+m1/4EMelUHBVM9djqGQEkyFBoFFimCpeDukMAlkOxcxUQTBK3aaxFoIdqG1wWb88pH4eKZpacTcstnsOL4AFd0VqbGyNdaHy4TaeyZd8DZ5dY0f4Se3TuEELyTiaJJqyUtQWejqJZWtihckSpHyz33XC0iDXIGrNOoyvszaWdNAy2mh7VRn/YC+wrvztYdc0TaRIXZhR4X+UyXGdRKgllCVFcX0k1xRov+ma6523iUTz0bg0rbsMGabcWWNwUu7ygotdSOwHB1GgQNdPiwmh6RRuqedRqq0shW7VE/UerHSuL5Yxb5pznlpnnlDg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=CdilmEbbZ2MkSh5Rpg/WfLTFe4V3HMo1dT3It1Q/9YA=; b=Pxm6nyIW4RDGFjn9seAF8UN0pe1FLRYEAnzYtUYQa0g+KmA8RavkbvzDlxosT8gycZ01wojYkoTGTUWSTp8vKpCFFI2LDurOnu/R1V/7TEBbEqJyAUUlZ2Qxd27/mFZHrFn1W+z5/W+nKtEQCK79tHaVEvgJbO9jqltcw6sEUhM= Received: from DM6PR11MB3274.namprd11.prod.outlook.com (2603:10b6:5:b::26) by DM5PR11MB1819.namprd11.prod.outlook.com (2603:10b6:3:10a::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3109.21; Thu, 18 Jun 2020 06:27:49 +0000 Received: from DM6PR11MB3274.namprd11.prod.outlook.com ([fe80::cc01:6f05:1402:e7d7]) by DM6PR11MB3274.namprd11.prod.outlook.com ([fe80::cc01:6f05:1402:e7d7%6]) with mapi id 15.20.3109.021; Thu, 18 Jun 2020 06:27:49 +0000 From: "Dong, Eric" To: "Bi, Dandan" , "devel@edk2.groups.io" CC: "Gao, Liming" Subject: Re: [patch] MdeModulePkg/DisplayEngine: Add Debug message to show mismatch menu info Thread-Topic: [patch] MdeModulePkg/DisplayEngine: Add Debug message to show mismatch menu info Thread-Index: AQHWRR/5WIOx4Vp3J02or9fHkmpSDKjd5/CQ Date: Thu, 18 Jun 2020 06:27:49 +0000 Message-ID: References: <20200618032410.106828-1-dandan.bi@intel.com> In-Reply-To: <20200618032410.106828-1-dandan.bi@intel.com> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=intel.com; x-originating-ip: [192.55.46.36] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 60ce44e8-31a4-485a-97cc-08d81350b939 x-ms-traffictypediagnostic: DM5PR11MB1819: x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:194; x-forefront-prvs: 0438F90F17 x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: dDoMlbDa5OmRlfu7E11S7PiRwyPe26vwwMJv6NsGT7Jy4JsU8SPWJ4/vQu84yGIq+ttVcDkcxFlbC6ztI6ZF1oe9y6h2H3ED9ItQLY0USF88q/DhSLt9MtcVlVBTmgltfajFalyOwjOxEHPV+YW9rhRkiWsgrrtH9VMkAdww+4V0wWtd8gpgykcDHPhyLSW+VJ3D/5/rT6cyM6oY7eTBdOdo6uvtBuslZCKOjUzQGtrcb0uzPD7tdd0bZIQ7cwuAGBuA7taCpUUuH71oG4yx7wO3RjOH6v7M+fnjxFw3mytaYbvHxf72gwi5f5k+bYbFY0sZXJsahqsuz+ufzlSdELkKsiu2VrL98BvQomJ5BtNyWjIneoB/69VmorE3wOWi6+7+oNOuUsI6kDmwoGvU9w== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DM6PR11MB3274.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFTY:;SFS:(4636009)(396003)(376002)(366004)(39860400002)(346002)(136003)(66476007)(66946007)(76116006)(66446008)(66556008)(64756008)(86362001)(5660300002)(52536014)(15650500001)(33656002)(4326008)(107886003)(55016002)(71200400001)(9686003)(966005)(19627235002)(2906002)(26005)(8676002)(53546011)(110136005)(316002)(186003)(8936002)(83380400001)(7696005)(478600001)(6506007);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata: oRypWEIvZjW8eD3drRCIHWam9gaQxzPnBiF+UDIBndio0PHIqz14R5NN4llIfCjHwL2UIkYSyLSSRQ/aIIX/cTLCfwhaQ2uWXLc3e/ebUwmxRnhQAwfX1ZvUkPuCaxMh9w6ZnRGVWHHdzDhVZmqdmnv7nj9LzBFglpeHMc+/fz/GEZ3PhIHkqFND1nEaDhbruMsIU3RsF+nHhhA7e7JERQhZasYqipXRSlIhbp8dmmO59uRsGYas+iTrlTRhn478Hz2NURRM4E3HE29FHJvhcdijh81h4N1JZGq30jr/Ba7HnB95/X4JcbwNOwJ7oBrCR6iI99pOSodMzVbvLsSHoBzXgqdBn8pZXsUXVQjSZqMOIXml2Z2Z4bkqD9zbIGQ2qmvRAvVIkyDIZbzQ2ZkJdhBPj1TbM3lVwSm+25AsMWug5N7VxJlSXm+21aVgbzurTmGmwdhMpmIuqA/p0K5+5vsoKdyiIemPopitVwDmvbY= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 60ce44e8-31a4-485a-97cc-08d81350b939 X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Jun 2020 06:27:49.4178 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: LhnThOVnarRcygDB2P0tvUnwKylNgDcUv2XEAIW8f4F2wrHffuXgtEl7avHEEvvr2l6cRQXNLvQEjvkslDWhRg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR11MB1819 Return-Path: eric.dong@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi Dandan, It's good to show more info about the mismatch error. Current end user does= n't know which question need to check if this error appears. Can you post an example about the error message for one of and for ordered = list? We need to make sure the message is easy to be understood and the end= user knows what need to do to fix this error. Thanks, Eric > -----Original Message----- > From: Bi, Dandan > Sent: Thursday, June 18, 2020 11:24 AM > To: devel@edk2.groups.io > Cc: Gao, Liming ; Dong, Eric > Subject: [patch] MdeModulePkg/DisplayEngine: Add Debug message to > show mismatch menu info >=20 > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D2326 >=20 > Currently when meet mismatch case for one-of and ordered-list menu, just > show a popup window to indicate mismatch, no more info for debugging. > This patch is to add more debug message about mismatch menu info which is > helpful to debug. >=20 > Cc: Liming Gao > Cc: Eric Dong > Signed-off-by: Dandan Bi > --- > .../DisplayEngineDxe/ProcessOptions.c | 78 +++++++++++++++++++ > 1 file changed, 78 insertions(+) >=20 > diff --git a/MdeModulePkg/Universal/DisplayEngineDxe/ProcessOptions.c > b/MdeModulePkg/Universal/DisplayEngineDxe/ProcessOptions.c > index e7306f6d04..4331b2903c 100644 > --- a/MdeModulePkg/Universal/DisplayEngineDxe/ProcessOptions.c > +++ b/MdeModulePkg/Universal/DisplayEngineDxe/ProcessOptions.c > @@ -911,10 +911,73 @@ PasswordProcess ( > FreePool (StringPtr); >=20 > return Status; > } >=20 > +/** > + Print some debug message about mismatched menu info. > + > + @param MenuOption The MenuOption for this Question. > + > +**/ > +VOID > +PrintMismatchMenuInfo ( > + IN UI_MENU_OPTION *MenuOption > +) > +{ > + CHAR16 *FormTitleStr; > + CHAR16 *OneOfOptionStr; > + CHAR16 *QuestionName; > + LIST_ENTRY *Link; > + FORM_DISPLAY_ENGINE_STATEMENT *Question; > + EFI_IFR_ORDERED_LIST *OrderList; > + UINTN Index; > + EFI_HII_VALUE HiiValue; > + EFI_HII_VALUE *QuestionValue; > + DISPLAY_QUESTION_OPTION *Option; > + UINT8 *ValueArray; > + UINT8 ValueType; > + > + Question =3D MenuOption->ThisTag; > + FormTitleStr =3D GetToken (gFormData->FormTitle, gFormData->HiiHandle)= ; > + > + DEBUG ((DEBUG_ERROR, "\n[DisplayEngine]: Mismatch Formset : > Formset Guid =3D %g.\n", &gFormData->FormSetGuid)); > + DEBUG ((DEBUG_ERROR, "[DisplayEngine]: Mismatch Form : FormId > =3D %d, Form title =3D %s.\n", gFormData->FormId, FormTitleStr)); > + > + if (Question->OpCode->OpCode =3D=3D EFI_IFR_ORDERED_LIST_OP) { > + QuestionName =3D GetToken (((EFI_IFR_ORDERED_LIST*)MenuOption- > >ThisTag->OpCode)->Question.Header.Prompt, gFormData->HiiHandle); > + Link =3D GetFirstNode (&Question->OptionListHead); > + Option =3D DISPLAY_QUESTION_OPTION_FROM_LINK (Link); > + ValueType =3D Option->OptionOpCode->Type; > + > + DEBUG ((DEBUG_ERROR, "[DisplayEngine]: Mismatch OrderedList: Name > =3D %s.\n", QuestionName)); > + DEBUG ((DEBUG_ERROR, "[DisplayEngine]: Mismatch OrderedList: Value > + Arrary:\n")); > + > + OrderList =3D (EFI_IFR_ORDERED_LIST *) Question->OpCode; > + for (Index =3D 0; Index < OrderList->MaxContainers; Index++) { > + ValueArray =3D Question->CurrentValue.Buffer; > + HiiValue.Value.u64 =3D GetArrayData (ValueArray, ValueType, Index)= ; > + DEBUG ((DEBUG_ERROR, " Value= [%d] =3D%d.\n",Index, > HiiValue.Value.u64)); > + } > + } else if (Question->OpCode->OpCode =3D=3D EFI_IFR_ONE_OF_OP) { > + QuestionName =3D GetToken (((EFI_IFR_ONE_OF*)MenuOption->ThisTag- > >OpCode)->Question.Header.Prompt, gFormData->HiiHandle); > + QuestionValue =3D &Question->CurrentValue;; > + DEBUG ((DEBUG_ERROR, "[DisplayEngine]: Mismatch OneOf : Named > =3D %s.\n", QuestionName)); > + DEBUG ((DEBUG_ERROR, "[DisplayEngine]: Mismatch OneOf : Current > value =3D %d.\n",QuestionValue->Value.u8)); > + } > + > + Index =3D 0; > + Link =3D GetFirstNode (&Question->OptionListHead); > + while (!IsNull (&Question->OptionListHead, Link)) { > + Option =3D DISPLAY_QUESTION_OPTION_FROM_LINK (Link); > + OneOfOptionStr =3D GetToken (Option->OptionOpCode->Option, > gFormData->HiiHandle); > + DEBUG ((DEBUG_ERROR, "[DisplayEngine]: Option %d : Option > Name =3D %s. Option Value =3D %d.\n",Index,OneOfOptionStr,Option- > >OptionOpCode->Value.u8)); > + Link =3D GetNextNode (&Question->OptionListHead, Link); > + Index++; > + } > +} > + > /** > Process a Question's Option (whether selected or un-selected). >=20 > @param MenuOption The MenuOption for this Question. > @param Selected TRUE: if Question is selected. > @@ -1010,10 +1073,15 @@ ProcessOptions ( > break; > } >=20 > OneOfOption =3D ValueToOption (Question, &HiiValue); > if (OneOfOption =3D=3D NULL) { > + // > + // Print debug msg for the mistach menu. > + // > + PrintMismatchMenuInfo (MenuOption); > + > if (SkipErrorValue) { > // > // Just try to get the option string, skip the value which n= ot has option. > // > continue; > @@ -1102,10 +1170,15 @@ ProcessOptions ( > continue; > } >=20 > if (!ValueInvalid) { > ValueInvalid =3D TRUE; > + // > + // Print debug msg for the mistach menu. > + // > + PrintMismatchMenuInfo (MenuOption); > + > // > // Show error message > // > do { > CreateDialog (&Key, gEmptyString, gOptionMismatch, gPressEnt= er, > gEmptyString, NULL); @@ -1152,10 +1225,15 @@ ProcessOptions ( > *OptionString =3D AllocateZeroPool (BufferSize); > ASSERT (*OptionString); >=20 > OneOfOption =3D ValueToOption (Question, QuestionValue); > if (OneOfOption =3D=3D NULL) { > + // > + // Print debug msg for the mistach menu. > + // > + PrintMismatchMenuInfo (MenuOption); > + > if (SkipErrorValue) { > // > // Not report error, just get the correct option string info. > // > Link =3D GetFirstNode (&Question->OptionListHead); > -- > 2.18.0.windows.1