Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 2020-06

call stack

3 messages · 3 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Luca Olivetti
to Евгений Кадисов

El 18/6/20 a les 10:52, Евгений Кадисов via lazarus ha escrit:

Hi everybody. In what cases can be such a situation. The call stack is full of strange stuff and does not contain any string of the debugged code.

That's because it's either an external library or some pascal code with no debug information (i.e. the freepascal rtl/fcl is distributed without debug information).
In the latter case you'll have to rebuild the rtl/fcl with debug information (I defer to the experts on how to do this, every time I have to search duckduckgo/google to see how to do it), if the former and you're using linux, you'll have to install the debug/dbgsym packages of the libraries as well as the sources (again, duckduckgo/google is your friend).
I noticed that lazarus has some limited support to step through C code, that's nice when you're struggling to see why an external library is failing.

It could also be that the code has debug information but in a different format that your application.

Bye

Luca Olivetti Wetron Automation Technology http://www.wetron.es/ Tel. +34 93 5883004 (Ext.3010) Fax +34 93 5883007

Reply by email

Martin Frb
to Евгений Кадисов: Hi everybody. In what cases can be such a situation. The call stack is full of strange…
Евгений Кадисов wrote
Hi everybody. In what cases can be such a situation. The call stack is full of strange stuff and does not contain any string of the debugged code.

Make sure to open the threads window, and set each thread to current. Even if your app does not have threads, there may be some.

How did your app stop/pause?

Did you single step?
Did you hit the pause button?
Did the app report an error?

The pause button:
Unless your app is 100% busy (form does not respond), the pause button will probably pause your app in the kernel.
Otherwise it may be in the wrong thread.

App reported Error.
This can be in a library. Sometimes libraries produces stacks that can not be read by the debugger. But also make sure you show more than 10 frame, if available.
Or this can be a SigSegV, which can (one of many reasons) be due to a corrupt stack. In that case there is no stack no more. (Make sure you compile with range checking)

Reply by email