سؤال

وهناك الكثير من الكتابة / أدوات لحساب سطر من التعليمات البرمجية، وبعض لحساب وظائف حجم من حيث سطر من التعليمات البرمجية. ولكن هنا أنا أبحث لوسيلة لقياس حجم وظيفة من حيث بايت من الشفرة التي تم إنشاؤها.

لا أحد يعرف طريقة / أدوات لاستخراج هذه المعلومات من .LIB أو ملف .dll؟

وعلى سبيل المثال، وأنا أعرف كيفية إدراج اسم وظيفة من .LIB أو. DLL، وعنوان البداية، ولكن لم أجد وسيلة بعد للحصول على البصمة ذاكرتهم.

وPS: أنا ابحث عن حل على منصة ويندوز، ولكن أي إجابة على نظام بديل هو موضع ترحيب

هل كانت مفيدة؟

المحلول

ولست متأكدا من أنها تماما ما كنت بعد، ولكن قد تتمكن من محاولة تحليل ملف خريطة حسب <لأ href = "http://home.hiwaay.net/~georgech/WhitePapers/MapFiles/MapFiles. هتم "يختلط =" نوفولو noreferrer "> هذا البرنامج التعليمي .

وأيضا، إذا كنت بعد حل المدفوع ل، و النمل التعريف من البوابة الحمراء معقول.

نصائح أخرى

في يونكس، الأمر size يعطيك معلومات حول ما يلي:

Black JL: size /usr/lib/libc.so.1
909301 + 32017 + 6731 = 948049
Black JL: size ~/lib/libjl.a
/work1/jleffler/lib/libjl.a[affbak.o]: 4849 + 44 + 4 = 4897
/work1/jleffler/lib/libjl.a[affstd.o]: 5488 + 48 + 4 = 5540
/work1/jleffler/lib/libjl.a[base64.o]: 8772 + 9 + 320 = 9101
/work1/jleffler/lib/libjl.a[basedigit.o]: 841 + 0 + 0 = 841
/work1/jleffler/lib/libjl.a[basename.o]: 996 + 0 + 0 = 996
/work1/jleffler/lib/libjl.a[bitmap.o]: 3876 + 8 + 4096 = 7980
...lots of entries omitted...
Black JL: size ~/bin/sqlcmd.64
169694 + 17728 + 8280 = 195702
Black JL: size cc3e_*.o | so
cc3e_fixed_from_gregorian.o: 1906 + 0 + 0 = 1906
cc3e_gregorian_date.o: 684 + 0 + 0 = 684
cc3e_gregorian_epoch.o: 707 + 0 + 0 = 707
cc3e_gregorian_from_fixed.o: 1729 + 0 + 0 = 1729
cc3e_gregorian_year_from_fixed.o: 1625 + 0 + 0 = 1625
cc3e_last_kday.o: 742 + 0 + 0 = 742
cc3e_nth_kday.o: 1123 + 0 + 0 = 1123
Black JL:

والملفات شبه عشوائية من جميع أنحاء نظام بلدي - وهو أحد SPARC تشغيل سولاريس 10، وذلك باستخدام size من /usr/ccs/bin (وليس النسخة GNU، ولكن من المرجح أن تعطي معلومات مماثلة)

وGNU size تحت سيغوين يقول:

$ size libjl.a
text    data     bss     dec     hex filename
 800      64      16     880     370 affbak.o (ex libjl.a)
1008      64      16    1088     440 affstd.o (ex libjl.a)
 176       0       0     176      b0 basedigit.o (ex libjl.a)
 208       0       0     208      d0 basename.o (ex libjl.a)
 544     320    4096    4960    1360 bitmap.o (ex libjl.a)
 816       0      16     832     340 block.o (ex libjl.a)

ولكن، قد لا يساعد كثيرا - عند تشغيل على DLL (C: \ WINDOWS \ twain.dll)، ويقول GNU size أنها لا تعترف نوع الملف. OTOH، فإنه لا يبدو أن نفهم الملفات ".LIB ':

jleffler@IBM-027DF09B37F /cygdrive/c/notes/jvm/bin
$ size jawt.lib
   text    data     bss     dec     hex filename
     63      30       0      93      5d jawt.dll (ex jawt.lib)
     63      20       0      83      53 jawt.dll (ex jawt.lib)
     63       8       0      71      47 jawt.dll (ex jawt.lib)
      8      26       0      34      22 jawt.dll (ex jawt.lib)

jleffler@IBM-027DF09B37F /cygdrive/c/notes/jvm/bin
$ ls -l jawt.lib
-rwxrwxrwx+ 1 jleffler None 1692 Oct 25  2007 jawt.lib
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top