This is the mail archive of the
gdb-prs@sourceware.org
mailing list for the GDB project.
fortran/2174: PATCH: Support DW_TAG_entry_point
- From: hjl at lucon dot org
- To: gdb-gnats at sources dot redhat dot com
- Date: 21 Sep 2006 16:55:30 -0000
- Subject: fortran/2174: PATCH: Support DW_TAG_entry_point
- Reply-to: hjl at lucon dot org
>Number: 2174
>Category: fortran
>Synopsis: PATCH: Support DW_TAG_entry_point
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: patch
>Submitter-Id: net
>Arrival-Date: Thu Sep 21 16:58:01 UTC 2006
>Closed-Date:
>Last-Modified:
>Originator: hjl@lucon.org
>Release: 6.5.50.20060920-cvs
>Organization:
>Environment:
Red Hat Enterprise Linux AS release 4 (Nahant Update 4)
>Description:
Some Fortran compilers use DW_TAG_entry_point for entry
point. This patch adds support for DW_TAG_entry_point.
>How-To-Repeat:
[hjl@gnu-26 bug84]$ cat test.f
implicit none
call wkinit(10)
call wkprnt(5)
end
subroutine wkinit(wksize)
implicit none
integer wksize, nsize
integer jpr
integer jprint
save jpr
jpr = wksize
print *, 'On entry, wksize = ',wksize
nsize = wksize
return
entry wkprnt(jprint)
print *, 'On entry, jpr = ',jpr
print *, 'On entry, jprint = ',jprint
if (jprint.eq.2) then
jpr = 1-jpr
else
jpr = jprint
endif
print *, 'jpr = ',jpr
return
end
[hjl@gnu-26 bug84]$
Use a Fortran compiler with DW_TAG_entry_point support,
like ifor 9.1, and set breakpoint at entry point.
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: text/x-patch; name="gdb-6.4-entry-1.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="gdb-6.4-entry-1.patch"
LS0tIGdkYi9kd2FyZjJyZWFkLmMuZW50cnkJMjAwNi0wNC0wNiAwNjo1OToxMi4wMDAwMDAwMDAg
LTA3MDAKKysrIGdkYi9kd2FyZjJyZWFkLmMJMjAwNi0wNC0wNiAwNzowMDozNS4wMDAwMDAwMDAg
LTA3MDAKQEAgLTE3MDIsNiArMTcwMiw3IEBAIHNjYW5fcGFydGlhbF9zeW1ib2xzIChzdHJ1Y3Qg
cGFydGlhbF9kaWUKIAkgIHN3aXRjaCAocGRpLT50YWcpCiAJICAgIHsKIAkgICAgY2FzZSBEV19U
QUdfc3VicHJvZ3JhbToKKwkgICAgY2FzZSBEV19UQUdfZW50cnlfcG9pbnQ6CiAJICAgICAgaWYg
KHBkaS0+aGFzX3BjX2luZm8pCiAJCXsKIAkJICBpZiAocGRpLT5sb3dwYyA8ICpsb3dwYykKQEAg
LTE3NTAsNiArMTc1MSwxNCBAQCBzY2FuX3BhcnRpYWxfc3ltYm9scyAoc3RydWN0IHBhcnRpYWxf
ZGllCiAJICAgICAgYnJlYWs7CiAJICAgIH0KIAl9CisgICAgICAKKyAgICAgIC8qIEEgRFdfVEFH
X3N1YnByb2dyYW0gRElFIG1heSBoYXZlIERXX1RBR19lbnRyeV9wb2ludCBESUVzCisJIGFzIGNo
aWxkcmVuLiAgKi8gCisgICAgICBpZiAocGRpLT50YWcgPT0gRFdfVEFHX3N1YnByb2dyYW0KKwkg
ICYmIHBkaS0+aGFzX2NoaWxkcmVuCisJICAmJiBwZGktPmRpZV9jaGlsZAorCSAgJiYgcGRpLT5k
aWVfY2hpbGQtPnRhZyA9PSBEV19UQUdfZW50cnlfcG9pbnQpCisJc2Nhbl9wYXJ0aWFsX3N5bWJv
bHMgKHBkaS0+ZGllX2NoaWxkLCBsb3dwYywgaGlnaHBjLCBjdSk7CiAKICAgICAgIC8qIElmIHRo
ZSBkaWUgaGFzIGEgc2libGluZywgc2tpcCB0byB0aGUgc2libGluZy4gICovCiAKQEAgLTE4OTks
NiArMTkwOCwyOSBAQCBhZGRfcGFydGlhbF9zeW1ib2wgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pCiAJ
CQkJICAgICAgY3UtPmxhbmd1YWdlLCBvYmpmaWxlKTsKIAl9CiAgICAgICBicmVhazsKKyAgICBj
YXNlIERXX1RBR19lbnRyeV9wb2ludDoKKyAgICAgIGlmIChwZGktPmRpZV9wYXJlbnQtPnRhZyA9
PSBEV19UQUdfc3VicHJvZ3JhbSkKKwl7CisJICBpZiAocGRpLT5kaWVfcGFyZW50LT5pc19leHRl
cm5hbCkKKwkgICAgLypwcmltX3JlY29yZF9taW5pbWFsX3N5bWJvbCAoYWN0dWFsX25hbWUsIHBk
aS0+bG93cGMgKyBiYXNlYWRkciwKKwkgICAgICBtc3RfdGV4dCwgb2JqZmlsZSk7ICovCisJICAg
IHBzeW0gPSBhZGRfcHN5bWJvbF90b19saXN0IChhY3R1YWxfbmFtZSwKKwkJCQkJc3RybGVuIChh
Y3R1YWxfbmFtZSksCisJCQkJCVZBUl9ET01BSU4sIExPQ19CTE9DSywKKwkJCQkJJm9iamZpbGUt
Pmdsb2JhbF9wc3ltYm9scywKKwkJCQkJMCwgcGRpLT5sb3dwYyArIGJhc2VhZGRyLAorCQkJCQlj
dS0+bGFuZ3VhZ2UsIG9iamZpbGUpOworCSAgZWxzZQorCSAgICAvKnByaW1fcmVjb3JkX21pbmlt
YWxfc3ltYm9sIChhY3R1YWxfbmFtZSwgcGRpLT5sb3dwYyArIGJhc2VhZGRyLAorCSAgICAgIG1z
dF9maWxlX3RleHQsIG9iamZpbGUpOyAqLworCSAgICBwc3ltID0gYWRkX3BzeW1ib2xfdG9fbGlz
dCAoYWN0dWFsX25hbWUsCisJCQkJCXN0cmxlbiAoYWN0dWFsX25hbWUpLAorCQkJCQlWQVJfRE9N
QUlOLCBMT0NfQkxPQ0ssCisJCQkJCSZvYmpmaWxlLT5zdGF0aWNfcHN5bWJvbHMsCisJCQkJCTAs
IHBkaS0+bG93cGMgKyBiYXNlYWRkciwKKwkJCQkJY3UtPmxhbmd1YWdlLCBvYmpmaWxlKTsKKwl9
CisgICAgICBicmVhazsKICAgICBjYXNlIERXX1RBR192YXJpYWJsZToKICAgICAgIGlmIChwZGkt
PmlzX2V4dGVybmFsKQogCXsKQEAgLTI2MzIsNiArMjY2NCw3IEBAIHByb2Nlc3NfZGllIChzdHJ1
Y3QgZGllX2luZm8gKmRpZSwgc3RydWMKICAgICAgIHJlYWRfZmlsZV9zY29wZSAoZGllLCBjdSk7
CiAgICAgICBicmVhazsKICAgICBjYXNlIERXX1RBR19zdWJwcm9ncmFtOgorICAgIGNhc2UgRFdf
VEFHX2VudHJ5X3BvaW50OgogICAgICAgcmVhZF9zdWJyb3V0aW5lX3R5cGUgKGRpZSwgY3UpOwog
ICAgICAgcmVhZF9mdW5jX3Njb3BlIChkaWUsIGN1KTsKICAgICAgIGJyZWFrOwpAQCAtMzE1OCw2
ICszMTkxLDI3IEBAIGR3YXJmMl9nZXRfcGNfYm91bmRzIChzdHJ1Y3QgZGllX2luZm8gKmQKIAog
CSAgcmV0ID0gLTE7CiAJfQorICAgICAgZWxzZSBpZiAoZGllLT50YWcgPT0gRFdfVEFHX2VudHJ5
X3BvaW50KQorCXsKKwkgIC8qIERXX1RBR19lbnRyeV9wb2ludCBESUUgb25seSBoYXMgRFdfQVRf
bG93X3BjLiBXZSBnZXQKKwkgICAgIEhJR0ggZnJvbSBpdHMgcGFyZW50LiAgKi8KKwkgIGF0dHIg
PSBkd2FyZjJfYXR0ciAoZGllLCBEV19BVF9sb3dfcGMsIGN1KTsKKwkgIGlmIChhdHRyKQorCSAg
ICB7CisJICAgICAgbG93ID0gRFdfQUREUiAoYXR0cik7CisJICAgICAgaWYgKGRpZS0+cGFyZW50
LT50YWcgPT0gRFdfVEFHX3N1YnByb2dyYW0pCisJCXsKKwkJICBDT1JFX0FERFIgcGFyZW50X2xv
dyA9IDA7CisJCSAgQ09SRV9BRERSIHBhcmVudF9oaWdoID0gMDsKKwkJICBpZiAoZHdhcmYyX2dl
dF9wY19ib3VuZHMgKGRpZS0+cGFyZW50LCAmcGFyZW50X2xvdywKKwkJCQkJICAgICZwYXJlbnRf
aGlnaCwgY3UpKQorCQkgICAgeworCQkgICAgICBoaWdoID0gcGFyZW50X2hpZ2g7CisJCSAgICAg
IHJldCA9IDE7CisJCSAgICB9CisJCX0KKwkgICAgfSAKKwl9CiAgICAgfQogCiAgIGlmIChoaWdo
IDwgbG93KQpAQCAtMzIwNSw2ICszMjU5LDcgQEAgZ2V0X3Njb3BlX3BjX2JvdW5kcyAoc3RydWN0
IGRpZV9pbmZvICpkaQogCXsKIAkgIHN3aXRjaCAoY2hpbGQtPnRhZykgewogCSAgY2FzZSBEV19U
QUdfc3VicHJvZ3JhbToKKwkgIGNhc2UgRFdfVEFHX2VudHJ5X3BvaW50OgogCSAgICBpZiAoZHdh
cmYyX2dldF9wY19ib3VuZHMgKGNoaWxkLCAmY3VycmVudF9sb3csICZjdXJyZW50X2hpZ2gsIGN1
KSkKIAkgICAgICB7CiAJCWJlc3RfbG93ID0gbWluIChiZXN0X2xvdywgY3VycmVudF9sb3cpOwpA
QCAtNTIwMyw2ICs1MjU4LDcgQEAgbG9hZF9wYXJ0aWFsX2RpZXMgKGJmZCAqYWJmZCwgZ2RiX2J5
dGUgKgogCSAgJiYgIWlzX3R5cGVfdGFnX2Zvcl9wYXJ0aWFsIChhYmJyZXYtPnRhZykKIAkgICYm
IGFiYnJldi0+dGFnICE9IERXX1RBR19lbnVtZXJhdG9yCiAJICAmJiBhYmJyZXYtPnRhZyAhPSBE
V19UQUdfc3VicHJvZ3JhbQorCSAgJiYgYWJicmV2LT50YWcgIT0gRFdfVEFHX2VudHJ5X3BvaW50
CiAJICAmJiBhYmJyZXYtPnRhZyAhPSBEV19UQUdfdmFyaWFibGUKIAkgICYmIGFiYnJldi0+dGFn
ICE9IERXX1RBR19uYW1lc3BhY2UKIAkgICYmIGFiYnJldi0+dGFnICE9IERXX1RBR19tZW1iZXIp
CkBAIC01MzEwLDYgKzUzNjYsNyBAQCBsb2FkX3BhcnRpYWxfZGllcyAoYmZkICphYmZkLCBnZGJf
Ynl0ZSAqCiAKICAgICAgIGlmIChsb2FkX2FsbAogCSAgfHwgYWJicmV2LT50YWcgPT0gRFdfVEFH
X3N1YnByb2dyYW0KKwkgIHx8IGFiYnJldi0+dGFnID09IERXX1RBR19lbnRyeV9wb2ludAogCSAg
fHwgYWJicmV2LT50YWcgPT0gRFdfVEFHX3ZhcmlhYmxlCiAJICB8fCBhYmJyZXYtPnRhZyA9PSBE
V19UQUdfbmFtZXNwYWNlCiAJICB8fCBwYXJ0X2RpZS0+aXNfZGVjbGFyYXRpb24pCkBAIC01MzMz
LDcgKzUzOTAsOCBAQCBsb2FkX3BhcnRpYWxfZGllcyAoYmZkICphYmZkLCBnZGJfYnl0ZSAqCiAJ
ICAgICAgfHwgbGFzdF9kaWUtPnRhZyA9PSBEV19UQUdfbmFtZXNwYWNlCiAJICAgICAgfHwgbGFz
dF9kaWUtPnRhZyA9PSBEV19UQUdfZW51bWVyYXRpb25fdHlwZQogCSAgICAgIHx8IChjdS0+bGFu
Z3VhZ2UgIT0gbGFuZ3VhZ2VfYwotCQkgICYmIChsYXN0X2RpZS0+dGFnID09IERXX1RBR19jbGFz
c190eXBlCisJCSAgJiYgKGxhc3RfZGllLT50YWcgPT0gRFdfVEFHX3N1YnByb2dyYW0gCisJCSAg
ICAgIHx8IGxhc3RfZGllLT50YWcgPT0gRFdfVEFHX2NsYXNzX3R5cGUKIAkJICAgICAgfHwgbGFz
dF9kaWUtPnRhZyA9PSBEV19UQUdfc3RydWN0dXJlX3R5cGUKIAkJICAgICAgfHwgbGFzdF9kaWUt
PnRhZyA9PSBEV19UQUdfdW5pb25fdHlwZSkpKSkKIAl7CkBAIC01NTg5LDYgKzU2NDcsMTYgQEAg
Zml4dXBfcGFydGlhbF9kaWUgKHN0cnVjdCBwYXJ0aWFsX2RpZV9pbgogICAgICAgfHwgcGFydF9k
aWUtPnRhZyA9PSBEV19UQUdfY2xhc3NfdHlwZQogICAgICAgfHwgcGFydF9kaWUtPnRhZyA9PSBE
V19UQUdfdW5pb25fdHlwZSkKICAgICBndWVzc19zdHJ1Y3R1cmVfbmFtZSAocGFydF9kaWUsIGN1
KTsKKworICBpZiAocGFydF9kaWUtPnRhZyA9PSBEV19UQUdfZW50cnlfcG9pbnQpCisgICAgewor
ICAgICAgaWYgKHBhcnRfZGllLT5kaWVfcGFyZW50LT50YWcgPT0gRFdfVEFHX3N1YnByb2dyYW0p
CisJeworCSAgcGFydF9kaWUtPmhpZ2hwYyA9IHBhcnRfZGllLT5kaWVfcGFyZW50LT5oaWdocGM7
CisJICBpZiAocGFydF9kaWUtPmxvd3BjIDwgcGFydF9kaWUtPmhpZ2hwYykKKwkgICAgcGFydF9k
aWUtPmhhc19wY19pbmZvID0gMTsKKwl9CisgICAgfQogfQogCiAvKiBSZWFkIHRoZSBkaWUgZnJv
bSB0aGUgLmRlYnVnX2luZm8gc2VjdGlvbiBidWZmZXIuICBTZXQgRElFUCB0bwpAQCAtNjg4Nyw2
ICs2OTU1LDE5IEBAIG5ld19zeW1ib2wgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1Y3QKIAkg
ICAgICBhZGRfc3ltYm9sX3RvX2xpc3QgKHN5bSwgY3UtPmxpc3RfaW5fc2NvcGUpOwogCSAgICB9
CiAJICBicmVhazsKKwljYXNlIERXX1RBR19lbnRyeV9wb2ludDoKKwkgIGlmIChkaWUtPnBhcmVu
dC0+dGFnID09IERXX1RBR19zdWJwcm9ncmFtKQorCSAgICB7CisJICAgICAgLyogU1lNQk9MX0JM
T0NLX1ZBTFVFIChzeW0pIHdpbGwgYmUgZmlsbGVkIGluIGxhdGVyIGJ5CisJCSBmaW5pc2hfYmxv
Y2suICAqLworCSAgICAgIFNZTUJPTF9DTEFTUyAoc3ltKSA9IExPQ19CTE9DSzsKKwkgICAgICBh
dHRyMiA9IGR3YXJmMl9hdHRyIChkaWUtPnBhcmVudCwgRFdfQVRfZXh0ZXJuYWwsIGN1KTsKKwkg
ICAgICBpZiAoYXR0cjIgJiYgKERXX1VOU05EIChhdHRyMikgIT0gMCkpCisJCWFkZF9zeW1ib2xf
dG9fbGlzdCAoc3ltLCAmZ2xvYmFsX3N5bWJvbHMpOworCSAgICAgIGVsc2UKKwkJYWRkX3N5bWJv
bF90b19saXN0IChzeW0sIGN1LT5saXN0X2luX3Njb3BlKTsKKwkgICAgfQorCSAgYnJlYWs7CiAJ
Y2FzZSBEV19UQUdfdmFyaWFibGU6CiAJICAvKiBDb21waWxhdGlvbiB3aXRoIG1pbmltYWwgZGVi
dWcgaW5mbyBtYXkgcmVzdWx0IGluIHZhcmlhYmxlcwogCSAgICAgd2l0aCBtaXNzaW5nIHR5cGUg
ZW50cmllcy4gQ2hhbmdlIHRoZSBtaXNsZWFkaW5nIGB2b2lkJyB0eXBlCkBAIC03MjgyLDYgKzcz
NjMsNyBAQCByZWFkX3R5cGVfZGllIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RyCiAgICAgICBi
cmVhazsKICAgICBjYXNlIERXX1RBR19zdWJwcm9ncmFtOgogICAgIGNhc2UgRFdfVEFHX3N1YnJv
dXRpbmVfdHlwZToKKyAgICBjYXNlIERXX1RBR19lbnRyeV9wb2ludDoKICAgICAgIHJlYWRfc3Vi
cm91dGluZV90eXBlIChkaWUsIGN1KTsKICAgICAgIGJyZWFrOwogICAgIGNhc2UgRFdfVEFHX2Fy
cmF5X3R5cGU6Cg==