From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 32417 invoked by alias); 26 Jun 2011 20:00:50 -0000 Received: (qmail 32407 invoked by uid 22791); 26 Jun 2011 20:00:48 -0000 X-SWARE-Spam-Status: No, hits=-2.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: sourceware.org Received: from mail-ww0-f43.google.com (HELO mail-ww0-f43.google.com) (74.125.82.43) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sun, 26 Jun 2011 20:00:32 +0000 Received: by wwg12 with SMTP id 12so3413171wwg.12 for ; Sun, 26 Jun 2011 13:00:30 -0700 (PDT) MIME-Version: 1.0 Received: by 10.216.229.222 with SMTP id h72mr247998weq.34.1309118428976; Sun, 26 Jun 2011 13:00:28 -0700 (PDT) Received: by 10.216.159.197 with HTTP; Sun, 26 Jun 2011 13:00:28 -0700 (PDT) Date: Sun, 26 Jun 2011 20:00:00 -0000 Message-ID: Subject: [patch] GDB 7.2: new feature for "backtrace" that cuts path to file (remain filename) From: iam ahal To: gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=0016364d2085ed97c204a6a2e267 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2011-06/txt/msg00385.txt.bz2 --0016364d2085ed97c204a6a2e267 Content-Type: text/plain; charset=ISO-8859-1 Content-length: 2006 Some build systems (e.g. mozilla firefox) provides build of source code with only full path to files (i.e. pass to gcc full path to file). Sometimes it's difficult to change build (especially if it's huge project). If you debug compiled program you may see full path in backtraces, like this: (gdb) backtrace #0 main (argc=4, argv=0xbffff884) at /media/25b7639d-9a70-42ca-aaa7-28f4d1f417fd/firefox-dev/mozilla-central/browser/app/nsBrowserApp.cpp:204 I'm uncomfortable to read such backtraces. I've implemented the new feature (patch for gdb-7.2 release from "02-Sep-2010 20:12"): New argument for "backtrace" called "nopath". If you run "backtrace nopath" you will see something like this: (gdb) backtrace nopath #0 main (argc=4, argv=0xbffff884) at nsBrowserApp.cpp:204 (instead above result) "nopath" argument just cuts full path to file and remains only filename. If you think that this feature is useful for somebody you can see ChangeLog and patch in attachment. If it's useful feature but i made some mistakes (e.g. made ugly names) i will change it if you want. P.S. Sorry for my poor english. ChangeLog: 2011-06-26 Eldar Gaynetdinov : * stack.c (backtrace_command): Created new variable "nofull_path" for implementation of "backtrace nopath" command. It has similar logic as "fulltrace_arg" for "backtrace full" command. (backtrace_full_command): nofull_path is just zero (i.e. it's not used there). (backtrace_command_stub): just pass new argument ("args->nofull_path") to backtrace_command_1 (backtrace_command_1): if "nofull_path" is enabled (by "backtrace nopath") then call print_frame_info with LOC_NO_FULLPATH. (print_frame_info): work with LOC_NO_FULLPATH same as LOCATION (because it's almost same thing). (print_frame): if LOC_NO_FULLPATH was passed then cut fullpath (if exist) and remain only filename. * frame.h (enum print_what): Added LOC_NO_FULLPATH with comment. --0016364d2085ed97c204a6a2e267 Content-Type: text/x-patch; charset=US-ASCII; name="gdb-7.2-nofull-path.patch" Content-Disposition: attachment; filename="gdb-7.2-nofull-path.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gpedwime0 Content-length: 7406 ZGlmZiAtcnVwIC14IGNvbmZpZ3VyZSBnZGItNy4yLW9yaWcvZ2RiL2ZyYW1l LmggZ2RiLTcuMi9nZGIvZnJhbWUuaAotLS0gZ2RiLTcuMi1vcmlnL2dkYi9m cmFtZS5oCTIwMTAtMDEtMDEgMTA6MzE6MzIuMDAwMDAwMDAwICswMzAwCisr KyBnZGItNy4yL2dkYi9mcmFtZS5oCTIwMTEtMDYtMjYgMjE6NTY6NTIuMDAw MDAwMDAwICswNDAwCkBAIC01ODIsNyArNTgyLDEwIEBAIGVudW0gcHJpbnRf d2hhdAogICAgIC8qIFByaW50IGJvdGggb2YgdGhlIGFib3ZlLiAqLwogICAg IFNSQ19BTkRfTE9DLCAKICAgICAvKiBQcmludCBsb2NhdGlvbiBvbmx5LCBi dXQgYWx3YXlzIGluY2x1ZGUgdGhlIGFkZHJlc3MuICovCi0gICAgTE9DX0FO RF9BRERSRVNTIAorICAgIExPQ19BTkRfQUREUkVTUywKKyAgICAvKiBQcmlu dCBvbmx5IHRoZSBsb2NhdGlvbiBidXQgd2l0aG91dCB0aGUgZnVsbCBwYXRo IHRvIGZpbGUsICAgICAgICAgKgorICAgICAqIGkuZS4gcHJpbnQgb25seSBm aWxlbmFtZSBldmVuIGlmIGZ1bGwgcGF0aCBpcyBkZWZpbmVkIGluIHN5bXRh YmxlLiAqLworICAgIExPQ19OT19GVUxMUEFUSAogICB9OwogCiAvKiBBbGxv Y2F0ZSB6ZXJvIGluaXRpYWxpemVkIG1lbW9yeSBmcm9tIHRoZSBmcmFtZSBj YWNoZSBvYnN0YWNrLgpkaWZmIC1ydXAgLXggY29uZmlndXJlIGdkYi03LjIt b3JpZy9nZGIvc3RhY2suYyBnZGItNy4yL2dkYi9zdGFjay5jCi0tLSBnZGIt Ny4yLW9yaWcvZ2RiL3N0YWNrLmMJMjAxMC0wNy0wMSAxOTozNjoxNy4wMDAw MDAwMDAgKzA0MDAKKysrIGdkYi03LjIvZ2RiL3N0YWNrLmMJMjAxMS0wNi0y NiAyMjozNjo0MS4wMDAwMDAwMDAgKzA0MDAKQEAgLTU5Miw3ICs1OTIsOCBA QCBwcmludF9mcmFtZV9pbmZvIChzdHJ1Y3QgZnJhbWVfaW5mbyAqZnJhCiAK ICAgbG9jYXRpb25fcHJpbnQgPSAocHJpbnRfd2hhdCA9PSBMT0NBVElPTiAK IAkJICAgIHx8IHByaW50X3doYXQgPT0gTE9DX0FORF9BRERSRVNTCi0JCSAg ICB8fCBwcmludF93aGF0ID09IFNSQ19BTkRfTE9DKTsKKwkJICAgIHx8IHBy aW50X3doYXQgPT0gU1JDX0FORF9MT0MKKyAgICAgICAgICAgIHx8IHByaW50 X3doYXQgPT0gTE9DX05PX0ZVTExQQVRIKTsKIAogICBpZiAobG9jYXRpb25f cHJpbnQgfHwgIXNhbC5zeW10YWIpCiAgICAgcHJpbnRfZnJhbWUgKGZyYW1l LCBwcmludF9sZXZlbCwgcHJpbnRfd2hhdCwgcHJpbnRfYXJncywgc2FsKTsK QEAgLTY1Miw3ICs2NTMsNyBAQCBwcmludF9mcmFtZV9pbmZvIChzdHJ1Y3Qg ZnJhbWVfaW5mbyAqZnJhCiAJZG9fZ2RiX2Rpc2Fzc2VtYmx5IChnZXRfZnJh bWVfYXJjaCAoZnJhbWUpLCAtMSwgc2FsLnBjLCBzYWwuZW5kKTsKICAgICB9 CiAKLSAgaWYgKHByaW50X3doYXQgIT0gTE9DQVRJT04pCisgIGlmIChwcmlu dF93aGF0ICE9IExPQ0FUSU9OIHx8IHByaW50X3doYXQgIT0gTE9DX05PX0ZV TExQQVRIKQogICAgIHNldF9kZWZhdWx0X2JyZWFrcG9pbnQgKDEsIHNhbC5w c3BhY2UsCiAJCQkgICAgZ2V0X2ZyYW1lX3BjIChmcmFtZSksIHNhbC5zeW10 YWIsIHNhbC5saW5lKTsKIApAQCAtODEwLDExICs4MTEsMjQgQEAgcHJpbnRf ZnJhbWUgKHN0cnVjdCBmcmFtZV9pbmZvICpmcmFtZSwgaQogICB1aV9vdXRf dGV4dCAodWlvdXQsICIpIik7CiAgIGlmIChzYWwuc3ltdGFiICYmIHNhbC5z eW10YWItPmZpbGVuYW1lKQogICAgIHsKKyAgICAgIGNvbnN0IGNoYXIgKmZp bGVuYW1lOworCiAgICAgICBhbm5vdGF0ZV9mcmFtZV9zb3VyY2VfYmVnaW4g KCk7CiAgICAgICB1aV9vdXRfd3JhcF9oaW50ICh1aW91dCwgIiAgICIpOwog ICAgICAgdWlfb3V0X3RleHQgKHVpb3V0LCAiIGF0ICIpOwogICAgICAgYW5u b3RhdGVfZnJhbWVfc291cmNlX2ZpbGUgKCk7Ci0gICAgICB1aV9vdXRfZmll bGRfc3RyaW5nICh1aW91dCwgImZpbGUiLCBzYWwuc3ltdGFiLT5maWxlbmFt ZSk7CisKKyAgICAgIGZpbGVuYW1lID0gTlVMTDsKKyAgICAgIGlmIChwcmlu dF93aGF0ID09IExPQ19OT19GVUxMUEFUSCkKKyAgICAgeworICAgICAgZmls ZW5hbWUgPSBzdHJyY2hyKCBzYWwuc3ltdGFiLT5maWxlbmFtZSwgJy8nICk7 CisgICAgICBpZiAoZmlsZW5hbWUgIT0gTlVMTCkKKyAgICAgICAgZmlsZW5h bWUrKzsKKyAgICAgfQorICAgICAgaWYgKGZpbGVuYW1lID09IE5VTEwgfHwg KmZpbGVuYW1lID09ICdcMCcpCisgICAgICAgIGZpbGVuYW1lID0gc2FsLnN5 bXRhYi0+ZmlsZW5hbWU7CisKKyAgICAgIHVpX291dF9maWVsZF9zdHJpbmcg KHVpb3V0LCAiZmlsZSIsIGZpbGVuYW1lKTsKICAgICAgIGlmICh1aV9vdXRf aXNfbWlfbGlrZV9wICh1aW91dCkpCiAJewogCSAgY29uc3QgY2hhciAqZnVs bG5hbWUgPSBzeW10YWJfdG9fZnVsbG5hbWUgKHNhbC5zeW10YWIpOwpAQCAt MTI2OSw3ICsxMjgzLDcgQEAgZnJhbWVfaW5mbyAoY2hhciAqYWRkcl9leHAs IGludCBmcm9tX3R0eQogICAgZnJhbWVzLiAgKi8KIAogc3RhdGljIHZvaWQK LWJhY2t0cmFjZV9jb21tYW5kXzEgKGNoYXIgKmNvdW50X2V4cCwgaW50IHNo b3dfbG9jYWxzLCBpbnQgZnJvbV90dHkpCitiYWNrdHJhY2VfY29tbWFuZF8x IChjaGFyICpjb3VudF9leHAsIGludCBzaG93X2xvY2FscywgaW50IGZyb21f dHR5LCBpbnQgbm9mdWxsX3BhdGgpCiB7CiAgIHN0cnVjdCBmcmFtZV9pbmZv ICpmaTsKICAgaW50IGNvdW50OwpAQCAtMTM0NSw3ICsxMzU5LDExIEBAIGJh Y2t0cmFjZV9jb21tYW5kXzEgKGNoYXIgKmNvdW50X2V4cCwgaW4KICAgICAg ICAgIG1lYW5zIGZ1cnRoZXIgYXR0ZW1wdHMgdG8gYmFja3RyYWNlIHdvdWxk IGZhaWwgKG9uIHRoZSBvdGhlcgogICAgICAgICAgaGFuZCwgcGVyaGFwcyB0 aGUgY29kZSBkb2VzIG9yIGNvdWxkIGJlIGZpeGVkIHRvIG1ha2Ugc3VyZQog ICAgICAgICAgdGhlIGZyYW1lLT5wcmV2IGZpZWxkIGdldHMgc2V0IHRvIE5V TEwgaW4gdGhhdCBjYXNlKS4gICovCi0gICAgICBwcmludF9mcmFtZV9pbmZv IChmaSwgMSwgTE9DQVRJT04sIDEpOworICAgICAgaWYgKG5vZnVsbF9wYXRo KQorICAgICAgICBwcmludF9mcmFtZV9pbmZvIChmaSwgMSwgTE9DX05PX0ZV TExQQVRILCAxKTsKKyAgICAgIGVsc2UKKyAgICAgICAgcHJpbnRfZnJhbWVf aW5mbyAoZmksIDEsIExPQ0FUSU9OLCAxKTsKKwogICAgICAgaWYgKHNob3df bG9jYWxzKQogCXByaW50X2ZyYW1lX2xvY2FsX3ZhcnMgKGZpLCAxLCBnZGJf c3Rkb3V0KTsKIApAQCAtMTM3NSw2ICsxMzkzLDcgQEAgc3RydWN0IGJhY2t0 cmFjZV9jb21tYW5kX2FyZ3MKICAgY2hhciAqY291bnRfZXhwOwogICBpbnQg c2hvd19sb2NhbHM7CiAgIGludCBmcm9tX3R0eTsKKyAgaW50IG5vZnVsbF9w YXRoOwogfTsKIAogLyogU3R1YiBmb3IgY2F0Y2hfZXJyb3JzLiAgKi8KQEAg LTEzODQsNyArMTQwMyw3IEBAIGJhY2t0cmFjZV9jb21tYW5kX3N0dWIgKHZv aWQgKmRhdGEpCiB7CiAgIHN0cnVjdCBiYWNrdHJhY2VfY29tbWFuZF9hcmdz ICphcmdzID0gZGF0YTsKIAotICBiYWNrdHJhY2VfY29tbWFuZF8xIChhcmdz LT5jb3VudF9leHAsIGFyZ3MtPnNob3dfbG9jYWxzLCBhcmdzLT5mcm9tX3R0 eSk7CisgIGJhY2t0cmFjZV9jb21tYW5kXzEgKGFyZ3MtPmNvdW50X2V4cCwg YXJncy0+c2hvd19sb2NhbHMsIGFyZ3MtPmZyb21fdHR5LCBhcmdzLT5ub2Z1 bGxfcGF0aCk7CiAgIHJldHVybiAwOwogfQogCkBAIC0xMzkyLDcgKzE0MTEs NyBAQCBzdGF0aWMgdm9pZAogYmFja3RyYWNlX2NvbW1hbmQgKGNoYXIgKmFy ZywgaW50IGZyb21fdHR5KQogewogICBzdHJ1Y3QgY2xlYW51cCAqb2xkX2No YWluID0gTlVMTDsKLSAgaW50IGZ1bGx0cmFjZV9hcmcgPSAtMSwgYXJnbGVu ID0gMCwgYXJnYyA9IDA7CisgIGludCBmdWxsdHJhY2VfYXJnID0gLTEsIGFy Z2xlbiA9IDAsIGFyZ2MgPSAwLCBub2Z1bGxfcGF0aCA9IC0xOwogICBzdHJ1 Y3QgYmFja3RyYWNlX2NvbW1hbmRfYXJncyBidGFyZ3M7CiAKICAgaWYgKGFy ZykKQEAgLTE0MTIsNiArMTQzMSw4IEBAIGJhY2t0cmFjZV9jb21tYW5kIChj aGFyICphcmcsIGludCBmcm9tX3QKIAogCSAgaWYgKGZ1bGx0cmFjZV9hcmcg PCAwICYmIHN1YnNldF9jb21wYXJlIChhcmd2W2ldLCAiZnVsbCIpKQogCSAg ICBmdWxsdHJhY2VfYXJnID0gYXJnYzsKKyAgICAgIGVsc2UgaWYgKG5vZnVs bF9wYXRoIDwgMCAmJiBzdWJzZXRfY29tcGFyZSAoYXJndltpXSwgIm5vcGF0 aCIpKQorICAgICAgICBub2Z1bGxfcGF0aCA9IGFyZ2M7CiAJICBlbHNlCiAJ ICAgIHsKIAkgICAgICBhcmdsZW4gKz0gc3RybGVuIChhcmd2W2ldKTsKQEAg LTE0MTksNyArMTQ0MCw3IEBAIGJhY2t0cmFjZV9jb21tYW5kIChjaGFyICph cmcsIGludCBmcm9tX3QKIAkgICAgfQogCX0KICAgICAgIGFyZ2xlbiArPSBh cmdjOwotICAgICAgaWYgKGZ1bGx0cmFjZV9hcmcgPj0gMCkKKyAgICAgIGlm IChmdWxsdHJhY2VfYXJnID49IDAgfHwgbm9mdWxsX3BhdGggPj0gMCkKIAl7 CiAJICBpZiAoYXJnbGVuID4gMCkKIAkgICAgewpAQCAtMTQyNyw3ICsxNDQ4 LDcgQEAgYmFja3RyYWNlX2NvbW1hbmQgKGNoYXIgKmFyZywgaW50IGZyb21f dAogCSAgICAgIG1lbXNldCAoYXJnLCAwLCBhcmdsZW4gKyAxKTsKIAkgICAg ICBmb3IgKGkgPSAwOyBpIDwgKGFyZ2MgKyAxKTsgaSsrKQogCQl7Ci0JCSAg aWYgKGkgIT0gZnVsbHRyYWNlX2FyZykKKwkJICBpZiAoaSAhPSBmdWxsdHJh Y2VfYXJnICYmIGkgIT0gbm9mdWxsX3BhdGgpCiAJCSAgICB7CiAJCSAgICAg IHN0cmNhdCAoYXJnLCBhcmd2W2ldKTsKIAkJICAgICAgc3RyY2F0IChhcmcs ICIgIik7CkBAIC0xNDQyLDkgKzE0NjMsMTAgQEAgYmFja3RyYWNlX2NvbW1h bmQgKGNoYXIgKmFyZywgaW50IGZyb21fdAogICBidGFyZ3MuY291bnRfZXhw ID0gYXJnOwogICBidGFyZ3Muc2hvd19sb2NhbHMgPSAoZnVsbHRyYWNlX2Fy ZyA+PSAwKTsKICAgYnRhcmdzLmZyb21fdHR5ID0gZnJvbV90dHk7CisgIGJ0 YXJncy5ub2Z1bGxfcGF0aCA9IChub2Z1bGxfcGF0aCA+PSAwKTsKICAgY2F0 Y2hfZXJyb3JzIChiYWNrdHJhY2VfY29tbWFuZF9zdHViLCAmYnRhcmdzLCAi IiwgUkVUVVJOX01BU0tfRVJST1IpOwogCi0gIGlmIChmdWxsdHJhY2VfYXJn ID49IDAgJiYgYXJnbGVuID4gMCkKKyAgaWYgKChmdWxsdHJhY2VfYXJnID49 IDAgfHwgbm9mdWxsX3BhdGggPj0gMCkgJiYgYXJnbGVuID4gMCkKICAgICB4 ZnJlZSAoYXJnKTsKIAogICBpZiAob2xkX2NoYWluKQpAQCAtMTQ1OSw2ICsx NDgxLDcgQEAgYmFja3RyYWNlX2Z1bGxfY29tbWFuZCAoY2hhciAqYXJnLCBp bnQgZgogICBidGFyZ3MuY291bnRfZXhwID0gYXJnOwogICBidGFyZ3Muc2hv d19sb2NhbHMgPSAxOwogICBidGFyZ3MuZnJvbV90dHkgPSBmcm9tX3R0eTsK KyAgYnRhcmdzLm5vZnVsbF9wYXRoID0gMDsKICAgY2F0Y2hfZXJyb3JzIChi YWNrdHJhY2VfY29tbWFuZF9zdHViLCAmYnRhcmdzLCAiIiwgUkVUVVJOX01B U0tfRVJST1IpOwogfQogDAo= --0016364d2085ed97c204a6a2e267--