Changeset 97696ab in mainline


Ignore:
Timestamp:
2016-05-19T18:46:03Z (9 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
2112a79
Parents:
9c07c3d
Message:

In case of dltest failure, print out variable addresses for better diagnosis.

Location:
uspace
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • uspace/app/dltest/dltest.c

    r9c07c3d r97696ab  
    9696{
    9797        int (*p_dl_get_private_var)(void);
     98        int *(*p_dl_get_private_var_addr)(void);
    9899        int val;
    99100
     
    106107        }
    107108
     109        p_dl_get_private_var_addr = dlsym(handle, "dl_get_private_var_addr");
     110        if (p_dl_get_private_var_addr == NULL) {
     111                printf("FAILED\n");
     112                return false;
     113        }
     114
    108115        val = p_dl_get_private_var();
    109116
    110117        printf("Got %d, expected %d... ", val, dl_private_var_val);
    111118        if (val != dl_private_var_val) {
     119                printf("dl_get_private_var_addr -> %p\n",
     120                    p_dl_get_private_var_addr());
    112121                printf("FAILED\n");
    113122                return false;
     
    124133{
    125134        int (*p_dl_get_private_uvar)(void);
     135        int *(*p_dl_get_private_uvar_addr)(void);
    126136        int val;
    127137
     
    134144        }
    135145
     146        p_dl_get_private_uvar_addr = dlsym(handle, "dl_get_private_uvar_addr");
     147        if (p_dl_get_private_uvar_addr == NULL) {
     148                printf("FAILED\n");
     149                return false;
     150        }
     151
    136152        val = p_dl_get_private_uvar();
    137153
    138154        printf("Got %d, expected %d... ", val, 0);
    139155        if (val != 0) {
     156                printf("dl_get_private_uvar_addr -> %p\n",
     157                    p_dl_get_private_uvar_addr());
    140158                printf("FAILED\n");
    141159                return false;
     
    152170{
    153171        int (*p_dl_get_public_var)(void);
     172        int *(*p_dl_get_public_var_addr)(void);
    154173        int val;
    155174
     
    162181        }
    163182
     183        p_dl_get_public_var_addr = dlsym(handle, "dl_get_public_var_addr");
     184        if (p_dl_get_public_var_addr == NULL) {
     185                printf("FAILED\n");
     186                return false;
     187        }
     188
    164189        val = p_dl_get_public_var();
    165190
    166191        printf("Got %d, expected %d... ", val, dl_public_var_val);
    167192        if (val != dl_public_var_val) {
     193                printf("dl_get_public_var_addr -> %p\n",
     194                    p_dl_get_public_var_addr());
    168195                printf("FAILED\n");
    169196                return false;
     
    180207{
    181208        int (*p_dl_get_public_uvar)(void);
     209        int *(*p_dl_get_public_uvar_addr)(void);
    182210        int val;
    183211
     
    190218        }
    191219
     220        p_dl_get_public_uvar_addr = dlsym(handle, "dl_get_public_uvar_addr");
     221        if (p_dl_get_public_uvar_addr == NULL) {
     222                printf("FAILED\n");
     223                return false;
     224        }
     225
    192226        val = p_dl_get_public_uvar();
    193227
    194228        printf("Got %d, expected %d... ", val, 0);
    195229        if (val != 0) {
     230                printf("dl_get_public_uvar_addr -> %p\n",
     231                    p_dl_get_public_uvar_addr());
    196232                printf("FAILED\n");
    197233                return false;
     
    208244{
    209245        int *p_dl_public_var;
     246        int *(*p_dl_get_public_var_addr)(void);
    210247        int val;
    211248
     
    218255        }
    219256
     257        p_dl_get_public_var_addr = dlsym(handle, "dl_get_public_var_addr");
     258        if (p_dl_get_public_var_addr == NULL) {
     259                printf("FAILED\n");
     260                return false;
     261        }
     262
    220263        val = *p_dl_public_var;
    221264
    222265        printf("Got %d, expected %d... ", val, dl_public_var_val);
    223266        if (val != dl_public_var_val) {
     267                printf("&dl_public_var = %p, "
     268                    "dl_get_public_var_addr -> %p\n",
     269                    p_dl_public_var, p_dl_get_public_var_addr());
    224270                printf("FAILED\n");
    225271                return false;
     
    236282{
    237283        int *p_dl_public_uvar;
     284        int *(*p_dl_get_public_uvar_addr)(void);
    238285        int val;
    239286
     
    246293        }
    247294
     295        p_dl_get_public_uvar_addr = dlsym(handle, "dl_get_public_uvar_addr");
     296        if (p_dl_get_public_uvar_addr == NULL) {
     297                printf("FAILED\n");
     298                return false;
     299        }
     300
    248301        val = *p_dl_public_uvar;
    249302
    250303        printf("Got %d, expected %d... ", val, 0);
    251304        if (val != 0) {
     305                printf("&dl_public_uvar = %p, "
     306                    "dl_get_public_uvar_addr -> %p\n",
     307                    p_dl_public_uvar, p_dl_get_public_uvar_addr());
    252308                printf("FAILED\n");
    253309                return false;
     
    264320{
    265321        int (*p_dl_get_private_fib_var)(void);
     322        int *(*p_dl_get_private_fib_var_addr)(void);
    266323        int val;
    267324
     
    274331        }
    275332
     333        p_dl_get_private_fib_var_addr = dlsym(handle, "dl_get_private_fib_var_addr");
     334        if (p_dl_get_private_fib_var_addr == NULL) {
     335                printf("FAILED\n");
     336                return false;
     337        }
     338
    276339        val = p_dl_get_private_fib_var();
    277340
    278341        printf("Got %d, expected %d... ", val, dl_private_fib_var_val);
    279342        if (val != dl_private_fib_var_val) {
     343                printf("dl_get_private_fib_var_addr -> %p\n",
     344                    p_dl_get_private_fib_var_addr());
    280345                printf("FAILED\n");
    281346                return false;
     
    292357{
    293358        int (*p_dl_get_private_fib_uvar)(void);
     359        int *(*p_dl_get_private_fib_uvar_addr)(void);
    294360        int val;
    295361
     
    302368        }
    303369
     370        p_dl_get_private_fib_uvar_addr = dlsym(handle, "dl_get_private_fib_uvar_addr");
     371        if (p_dl_get_private_fib_uvar_addr == NULL) {
     372                printf("FAILED\n");
     373                return false;
     374        }
     375
    304376        val = p_dl_get_private_fib_uvar();
    305377
    306378        printf("Got %d, expected %d... ", val, 0);
    307379        if (val != 0) {
     380                printf("dl_get_private_fib_uvar_addr -> %p\n",
     381                    p_dl_get_private_fib_uvar_addr());
    308382                printf("FAILED\n");
    309383                return false;
     
    320394{
    321395        int (*p_dl_get_public_fib_var)(void);
     396        int *(*p_dl_get_public_fib_var_addr)(void);
    322397        int val;
    323398
     
    330405        }
    331406
     407        p_dl_get_public_fib_var_addr = dlsym(handle, "dl_get_public_fib_var_addr");
     408        if (p_dl_get_public_fib_var_addr == NULL) {
     409                printf("FAILED\n");
     410                return false;
     411        }
     412
    332413        val = p_dl_get_public_fib_var();
    333414
    334415        printf("Got %d, expected %d... ", val, dl_public_fib_var_val);
    335416        if (val != dl_public_fib_var_val) {
     417                printf("dl_get_public_fib_var_addr -> %p\n",
     418                    p_dl_get_public_fib_var_addr());
    336419                printf("FAILED\n");
    337420                return false;
     
    348431{
    349432        int (*p_dl_get_public_fib_uvar)(void);
     433        int *(*p_dl_get_public_fib_uvar_addr)(void);
    350434        int val;
    351435
     
    358442        }
    359443
     444        p_dl_get_public_fib_uvar_addr = dlsym(handle, "dl_get_public_fib_uvar_addr");
     445        if (p_dl_get_public_fib_uvar_addr == NULL) {
     446                printf("FAILED\n");
     447                return false;
     448        }
     449
    360450        val = p_dl_get_public_fib_uvar();
    361451
    362452        printf("Got %d, expected %d... ", val, 0);
    363453        if (val != 0) {
     454                printf("dl_get_public_fib_uvar_addr -> %p\n",
     455                    p_dl_get_public_fib_uvar_addr());
    364456                printf("FAILED\n");
    365457                return false;
     
    376468{
    377469        int *p_dl_public_fib_var;
     470        int *(*p_dl_get_public_fib_var_addr)(void);
    378471        int val;
    379472
     
    386479        }
    387480
     481        p_dl_get_public_fib_var_addr = dlsym(handle, "dl_get_public_fib_var_addr");
     482        if (p_dl_get_public_fib_var_addr == NULL) {
     483                printf("FAILED\n");
     484                return false;
     485        }
     486
    388487        val = *p_dl_public_fib_var;
    389488
    390489        printf("Got %d, expected %d... ", val, dl_public_fib_var_val);
    391490        if (val != dl_public_fib_var_val) {
     491                printf("&dl_public_fib_var = %p, "
     492                    "dl_get_public_fib_var_addr -> %p\n",
     493                    p_dl_public_fib_var, p_dl_get_public_fib_var_addr());
    392494                printf("FAILED\n");
    393495                return false;
     
    404506{
    405507        int *p_dl_public_fib_uvar;
     508        int *(*p_dl_get_public_fib_uvar_addr)(void);
    406509        int val;
    407510
     
    414517        }
    415518
     519        p_dl_get_public_fib_uvar_addr = dlsym(handle, "dl_get_public_fib_uvar_addr");
     520        if (p_dl_get_public_fib_uvar_addr == NULL) {
     521                printf("FAILED\n");
     522                return false;
     523        }
     524
    416525        val = *p_dl_public_fib_uvar;
    417526
    418527        printf("Got %d, expected %d... ", val, 0);
    419528        if (val != 0) {
     529                printf("&dl_public_fib_uvar = %p, "
     530                    "dl_get_public_fib_uvar_addr -> %p\n",
     531                    p_dl_public_fib_uvar, p_dl_get_public_fib_uvar_addr());
    420532                printf("FAILED\n");
    421533                return false;
     
    460572        printf("Got %d, expected %d... ", val, dl_private_var_val);
    461573        if (val != dl_private_var_val) {
     574                printf("dl_get_private_var_addr -> %p\n",
     575                    dl_get_private_var_addr());
    462576                printf("FAILED\n");
    463577                return false;
     
    481595        printf("Got %d, expected %d... ", val, 0);
    482596        if (val != 0) {
     597                printf("dl_get_private_uvar_addr -> %p\n",
     598                    dl_get_private_uvar_addr());
    483599                printf("FAILED\n");
    484600                return false;
     
    502618        printf("Got %d, expected %d... ", val, dl_public_var_val);
    503619        if (val != dl_public_var_val) {
     620                printf("dl_get_public_var_addr -> %p\n",
     621                    dl_get_public_var_addr());
    504622                printf("FAILED\n");
    505623                return false;
     
    523641        printf("Got %d, expected %d... ", val, 0);
    524642        if (val != 0) {
     643                printf("dl_get_public_uvar_addr -> %p\n",
     644                    dl_get_public_uvar_addr());
    525645                printf("FAILED\n");
    526646                return false;
     
    542662        printf("Got %d, expected %d... ", val, dl_public_var_val);
    543663        if (val != dl_public_var_val) {
     664                printf("&dl_public_var = %p, dl_get_public_var_addr -> %p\n",
     665                    &dl_public_var, dl_get_public_var_addr());
    544666                printf("FAILED\n");
    545667                return false;
     
    561683        printf("Got %d, expected %d... ", val, 0);
    562684        if (val != 0) {
     685                printf("&dl_public_uvar = %p, dl_get_public_uvar_addr -> %p\n",
     686                    &dl_public_uvar, dl_get_public_uvar_addr());
    563687                printf("FAILED\n");
    564688                return false;
     
    582706        printf("Got %d, expected %d... ", val, dl_private_fib_var_val);
    583707        if (val != dl_private_fib_var_val) {
     708                printf("dl_get_private_fib_var_addr -> %p\n",
     709                    dl_get_private_fib_var_addr());
    584710                printf("FAILED\n");
    585711                return false;
     
    603729        printf("Got %d, expected %d... ", val, 0);
    604730        if (val != 0) {
     731                printf("dl_get_private_fib_uvar_addr -> %p\n",
     732                    dl_get_private_fib_var_addr());
    605733                printf("FAILED\n");
    606734                return false;
     
    624752        printf("Got %d, expected %d... ", val, dl_public_fib_var_val);
    625753        if (val != dl_public_fib_var_val) {
     754                printf("dl_get_public_fib_var_addr -> %p\n",
     755                    dl_get_public_fib_var_addr());
    626756                printf("FAILED\n");
    627757                return false;
     
    645775        printf("Got %d, expected %d... ", val, 0);
    646776        if (val != 0) {
     777                printf("dl_get_public_fib_uvar_addr -> %p\n",
     778                    dl_get_public_fib_uvar_addr());
    647779                printf("FAILED\n");
    648780                return false;
     
    664796        printf("Got %d, expected %d... ", val, dl_public_fib_var_val);
    665797        if (val != dl_public_fib_var_val) {
     798                printf("&dl_public_fib_var = %p, "
     799                    "dl_get_public_fib_var_addr -> %p\n",
     800                    &dl_public_fib_var, dl_get_public_fib_var_addr());
    666801                printf("FAILED\n");
    667802                return false;
     
    683818        printf("Got %d, expected %d... ", val, 0);
    684819        if (val != 0) {
     820                printf("&dl_public_fib_uvar = %p, "
     821                    "dl_get_public_fib_uvar_addr -> %p\n",
     822                    &dl_public_fib_uvar, dl_get_public_fib_uvar_addr());
    685823                printf("FAILED\n");
    686824                return false;
  • uspace/lib/dltest/dltest.c

    r9c07c3d r97696ab  
    6969}
    7070
     71/** Return address of private initialized variable */
     72int *dl_get_private_var_addr(void)
     73{
     74        return &private_var;
     75}
     76
    7177/** Return value of private uninitialized variable */
    7278int dl_get_private_uvar(void)
    7379{
    7480        return private_uvar;
     81}
     82
     83/** Return vaddress of private uninitialized variable */
     84int *dl_get_private_uvar_addr(void)
     85{
     86        return &private_uvar;
    7587}
    7688
     
    8193}
    8294
     95/** Return address of public initialized variable */
     96int *dl_get_public_var_addr(void)
     97{
     98        return &dl_public_var;
     99}
     100
    83101/** Return value of public uninitialized variable */
    84102int dl_get_public_uvar(void)
    85103{
    86104        return dl_public_uvar;
     105}
     106
     107/** Return address of public uninitialized variable */
     108int *dl_get_public_uvar_addr(void)
     109{
     110        return &dl_public_uvar;
    87111}
    88112
     
    93117}
    94118
     119/** Return address of private initialized fibril-local variable */
     120int *dl_get_private_fib_var_addr(void)
     121{
     122        return &dl_private_fib_var;
     123}
     124
    95125/** Return value of private uninitialized fibril-local variable */
    96126int dl_get_private_fib_uvar(void)
    97127{
    98128        return dl_private_fib_uvar;
     129}
     130
     131/** Return address of private uninitialized fibril-local variable */
     132int *dl_get_private_fib_uvar_addr(void)
     133{
     134        return &dl_private_fib_uvar;
    99135}
    100136
     
    105141}
    106142
     143/** Return value of public initialized fibril-local variable */
     144int *dl_get_public_fib_var_addr(void)
     145{
     146        return &dl_public_fib_var;
     147}
     148
    107149/** Return value of public uninitialized fibril-local variable */
    108150int dl_get_public_fib_uvar(void)
     
    111153}
    112154
     155/** Return value of public uninitialized fibril-local variable */
     156int *dl_get_public_fib_uvar_addr(void)
     157{
     158        return &dl_public_fib_uvar;
     159}
     160
    113161/**
    114162 * @}
  • uspace/lib/dltest/libdltest.h

    r9c07c3d r97696ab  
    4949extern int dl_get_constant(void);
    5050extern int dl_get_private_var(void);
     51extern int *dl_get_private_var_addr(void);
    5152extern int dl_get_private_uvar(void);
     53extern int *dl_get_private_uvar_addr(void);
    5254extern int dl_get_public_var(void);
     55extern int *dl_get_public_var_addr(void);
    5356extern int dl_get_public_uvar(void);
     57extern int *dl_get_public_uvar_addr(void);
    5458extern int dl_get_private_fib_var(void);
     59extern int *dl_get_private_fib_var_addr(void);
    5560extern int dl_get_private_fib_uvar(void);
     61extern int *dl_get_private_fib_uvar_addr(void);
    5662extern int dl_get_public_fib_var(void);
     63extern int *dl_get_public_fib_var_addr(void);
    5764extern int dl_get_public_fib_uvar(void);
     65extern int *dl_get_public_fib_uvar_addr(void);
    5866
    5967extern int dl_public_var;
Note: See TracChangeset for help on using the changeset viewer.